Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: chrome/ext/background.js

Issue 29366526: Issue 4680 - Use runtime.openOptionsPage when available (Closed)
Patch Set: Created Dec. 1, 2016, 10:13 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/ext/background.js
diff --git a/chrome/ext/background.js b/chrome/ext/background.js
index e61c20ffd175d697f149aa726a6528b747ec238f..62f15c233420a1ad77ab9f79cc2e828c717d45ea 100644
--- a/chrome/ext/background.js
+++ b/chrome/ext/background.js
@@ -612,38 +612,47 @@
/* Options */
- ext.showOptions = function(callback)
+ if ("openOptionsPage" in chrome.runtime)
{
- chrome.windows.getLastFocused(function(win)
+ ext.showOptions = chrome.runtime.openOptionsPage;
Sebastian Noack 2016/12/08 15:26:42 I wonder how/whether this can work? The old code (
kzar 2016/12/09 09:11:02 Damn you're right. Sorry I'll open a review to fix
+ }
+ else
+ {
+ // Edge does not yet support runtime.openOptionsPage (tested version 38)
+ // and so this workaround needs to stay for now.
+ ext.showOptions = function(callback)
{
- var optionsUrl = chrome.extension.getURL("options.html");
- var queryInfo = {url: optionsUrl};
+ 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;
+ // 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)
+ chrome.tabs.query(queryInfo, function(tabs)
{
- var tab = tabs[0];
+ if (tabs.length > 0)
+ {
+ var tab = tabs[0];
- chrome.windows.update(tab.windowId, {focused: true});
- chrome.tabs.update(tab.id, {active: true});
+ chrome.windows.update(tab.windowId, {focused: true});
+ chrome.tabs.update(tab.id, {active: true});
- if (callback)
- callback(new Page(tab));
- }
- else
- {
- ext.pages.open(optionsUrl, callback);
- }
+ if (callback)
+ callback(new Page(tab));
+ }
+ else
+ {
+ ext.pages.open(optionsUrl, callback);
+ }
+ });
});
- });
- };
+ };
+ }
/* Windows */
ext.windows = {
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld