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

Unified Diff: ext/background.js

Issue 29536764: Issue 5587, 5748 - Use mobile options page on Firefox for Android (Closed) Base URL: https://hg.adblockplus.org/adblockpluschrome/
Patch Set: Use ping messages to sync up Created Sept. 26, 2017, 8:22 p.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
Index: ext/background.js
===================================================================
--- a/ext/background.js
+++ b/ext/background.js
@@ -312,26 +312,16 @@
chrome.tabs.onActivated.addListener(details =>
{
ext.pages.onActivated._dispatch(new Page({id: details.tabId}));
});
/* Browser actions */
- // On Firefox for Android, open the options page directly when the browser
- // action is clicked.
- if (!("getPopup" in chrome.browserAction))
- {
- chrome.browserAction.onClicked.addListener(() =>
- {
- ext.showOptions();
- });
- }
-
let BrowserAction = function(tabId)
{
this._tabId = tabId;
this._changes = null;
};
BrowserAction.prototype = {
_applyChanges()
{
@@ -690,94 +680,16 @@
},
remove(key, callback)
{
chrome.storage.local.remove(key, callback);
},
onChanged: chrome.storage.onChanged
};
- /* Options */
-
- ext.showOptions = callback =>
- {
- let info = require("info");
-
- if ("openOptionsPage" in chrome.runtime &&
- // Some versions of Firefox for Android before version 57 do have a
- // runtime.openOptionsPage but it doesn't do anything.
- // https://bugzilla.mozilla.org/show_bug.cgi?id=1364945
- (info.application != "fennec" ||
- parseInt(info.applicationVersion, 10) >= 57))
- {
- if (!callback)
- {
- chrome.runtime.openOptionsPage();
- }
- else
- {
- chrome.runtime.openOptionsPage(() =>
- {
- if (chrome.runtime.lastError)
- return;
-
- chrome.tabs.query({active: true, lastFocusedWindow: true}, tabs =>
- {
- if (tabs.length > 0)
- {
- if (tabs[0].status == "complete")
- callback(new Page(tabs[0]));
- else
- afterTabLoaded(callback)(tabs[0]);
- }
- });
- });
- }
- }
- else if ("windows" in chrome)
- {
- // Edge does not yet support runtime.openOptionsPage (tested version 38)
- // and so this workaround needs to stay for now.
- // We are not using extension.getURL to get the absolute path here
- // because of the Edge issue:
- // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10276332/
- let optionsUrl = "options.html";
- let fullOptionsUrl = ext.getURL(optionsUrl);
-
- chrome.tabs.query({}, tabs =>
- {
- // We find a tab ourselves because Edge has a bug when quering tabs
- // with extension URL protocol:
- // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8094141/
- // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8604703/
- let tab = tabs.find(element => element.url == fullOptionsUrl);
- if (tab)
- {
- 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);
- }
- });
- }
- else
- {
- // Firefox for Android before version 57 does not support
- // runtime.openOptionsPage, nor does it support the windows API. Since
- // there is effectively only one window on the mobile browser, there's no
- // need to bring it into focus.
- ext.pages.open("options.html", callback);
- }
- };
-
/* Windows */
ext.windows = {
create(createData, callback)
{
chrome.windows.create(createData, createdWindow =>
{
afterTabLoaded(callback)(createdWindow.tabs[0]);
});

Powered by Google App Engine
This is Rietveld