| Index: safari/ext/background.js | 
| diff --git a/safari/ext/background.js b/safari/ext/background.js | 
| index e154aff029b37cedb5b06df6ed19f287e003aa48..7d97aeb36857ac40565dfaa6e64d6a58fc25f1bb 100644 | 
| --- a/safari/ext/background.js | 
| +++ b/safari/ext/background.js | 
| @@ -154,6 +154,10 @@ | 
| if (!(event.target instanceof SafariBrowserTab)) | 
| return; | 
| + var activeTab = event.target.browserWindow.activeTab; | 
| + var pageId = addPage(activeTab, activeTab.url, false); | 
| + ext.pages.onActivated._dispatch(pages[pageId]); | 
| + | 
| // update the toolbar item for the page visible in the tab that just | 
| // became active. If we can't find that page (e.g. when a page was | 
| // opened in a new tab, and our content script didn't run yet), the | 
| @@ -171,7 +175,7 @@ | 
| { | 
| this._id = id; | 
| this._tab = tab; | 
| - this._frames = [{url: new URL(url), parent: null}]; | 
| + this._frames = [{url: new URL(url || "about:blank"), parent: null}]; | 
| if (tab.page) | 
| this._messageProxy = new ext._MessageProxy(tab.page); | 
| @@ -293,7 +297,8 @@ | 
| callback(matchedPages); | 
| }, | 
| - onLoading: new ext._EventTarget() | 
| + onLoading: new ext._EventTarget(), | 
| + onActivated: new ext._EventTarget(), | 
| }; | 
| safari.application.addEventListener("close", function(event) |