diff --git a/js/background.js b/js/background.js index 1ab2e5edd1..b91f8c4568 100644 --- a/js/background.js +++ b/js/background.js @@ -222,4 +222,7 @@ console.log('got delivery receipt for unknown message', pushMessage.source, timestamp); }); }; + + extension.on('log', console.log.bind(console)); + })(); diff --git a/js/conversation_panel.js b/js/conversation_panel.js index 5d28581fac..56feab887f 100644 --- a/js/conversation_panel.js +++ b/js/conversation_panel.js @@ -24,31 +24,33 @@ conversation.fetch().then(function () { new Whisper.ConversationView({ model: conversation}).render().$el.appendTo($('#conversation-container')); }); - - // clean 'er up - conversationInfo = undefined; }; - var conversationInfo = { - id: '', - idPairs: {} - }; + var windowId, windowMap = {}; - extension.on('loadConversation', function (message) { - debugger; - if (conversationInfo.id) { - if (message.windowId === conversationInfo.id) { - loadConversation(message.conversationId); + extension.trigger('log', 'loaded page'); + + window.addEventListener('storage', function (e) { + extension.trigger('log', 'got storage event'); + if (e.key = 'idPairs') { + windowMap = JSON.parse(e.newValue); + + if (windowId) { + var conversationId = windowMap[windowId]; + + if (conversationId) { + loadConversation(conversationId); + } } - } else { - conversationInfo.idPairs[message.windowId] = message.conversationId; } }); chrome.windows.getCurrent(function (windowInfo) { - window.document.title = conversationInfo.id = windowInfo.id; + window.document.title = windowId = windowInfo.id; - var conversationId = conversationInfo.idPairs[conversationInfo.id]; + extension.trigger('log', 'got page id'); + + var conversationId = windowMap[windowId]; if (typeof conversationId !== 'undefined') { loadConversation(conversationId); diff --git a/js/views/conversation_list_item_view.js b/js/views/conversation_list_item_view.js index 0107c050d0..d527a39076 100644 --- a/js/views/conversation_list_item_view.js +++ b/js/views/conversation_list_item_view.js @@ -52,11 +52,13 @@ var Whisper = Whisper || {}; width: 280, height: 420 }, function (windowInfo) { - debugger; - extension.trigger('loadConversation', { - windowId: windowInfo.id, - conversationId: modelId - }); + extension.trigger('log', 'maybe up here?'); + extension.trigger('log', localStorage.getItem('idPairs')); + + var idPairs = JSON.parse(localStorage.getItem('idPairs') || '{}'); + idPairs[windowInfo.id] = modelId; + localStorage.setItem('idPairs', JSON.stringify(idPairs)); + extension.trigger('log', 'set idPairs item'); }); this.model.collection.trigger('selected', this.view);