Index: chrome/ext/background.js |
=================================================================== |
--- a/chrome/ext/background.js |
+++ b/chrome/ext/background.js |
@@ -365,4 +365,40 @@ |
/* Storage */ |
ext.storage = localStorage; |
+ |
+ |
+ /* Options */ |
+ |
+ ext.showOptions = function(callback) |
+ { |
+ chrome.windows.getLastFocused(function(win) |
+ { |
+ var optionsUrl = chrome.extension.getURL("options.html"); |
+ var queryInfo = {url: optionsUrl}; |
+ |
+ // extension pages can't be accessed in incognito windows. In order to |
+ // correctly mimic the way in which Chrome opens extension options, |
+ // we have to focus the options page in any other window. |
+ if (!win.incognito) |
+ queryInfo.windowId = win.id; |
+ |
+ chrome.tabs.query(queryInfo, function(tabs) |
+ { |
+ if (tabs.length > 0) |
+ { |
+ var tab = tabs[0]; |
+ |
+ chrome.windows.update(tab.windowId, {focused: true}); |
+ chrome.tabs.update(tab.id, {selected: true}); |
+ |
+ if (callback) |
+ callback(new Page(tab)); |
+ } |
+ else |
+ { |
+ ext.pages.open(optionsUrl, callback); |
+ } |
+ }); |
+ }); |
+ }; |
})(); |