port to firefox 52.5.3 esr

This commit is contained in:
Michele Guerini Rocco 2018-01-07 17:12:58 +01:00
parent 2b8afb2e18
commit bdb61280e6
Signed by: rnhmjoj
GPG Key ID: 91BE884FBA4B591A
14 changed files with 868 additions and 1055 deletions

View File

@ -2,7 +2,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=285140
--- a/layout/style/nsStyleSet.cpp --- a/layout/style/nsStyleSet.cpp
+++ b/layout/style/nsStyleSet.cpp +++ b/layout/style/nsStyleSet.cpp
@@ -1125,9 +1125,7 @@ @@ -1130,9 +1130,7 @@ nsStyleSet::FileRules(nsIStyleRuleProcessor::EnumFunc aCollectorFunc,
bool haveImportantUARules = !aRuleWalker->GetCheckForImportantRules(); bool haveImportantUARules = !aRuleWalker->GetCheckForImportantRules();
aRuleWalker->SetLevel(SheetType::User, false, true); aRuleWalker->SetLevel(SheetType::User, false, true);
@ -13,7 +13,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=285140
(*aCollectorFunc)(mRuleProcessors[SheetType::User], aData); (*aCollectorFunc)(mRuleProcessors[SheetType::User], aData);
nsRuleNode* lastUserRN = aRuleWalker->CurrentNode(); nsRuleNode* lastUserRN = aRuleWalker->CurrentNode();
bool haveImportantUserRules = !aRuleWalker->GetCheckForImportantRules(); bool haveImportantUserRules = !aRuleWalker->GetCheckForImportantRules();
@@ -1145,7 +1143,7 @@ @@ -1154,7 +1152,7 @@ nsStyleSet::FileRules(nsIStyleRuleProcessor::EnumFunc aCollectorFunc,
static_cast<ElementDependentRuleProcessorData*>(aData), static_cast<ElementDependentRuleProcessorData*>(aData),
&cutOffInheritance); &cutOffInheritance);
} }
@ -22,7 +22,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=285140
mRuleProcessors[SheetType::Doc]) mRuleProcessors[SheetType::Doc])
(*aCollectorFunc)(mRuleProcessors[SheetType::Doc], aData); (*aCollectorFunc)(mRuleProcessors[SheetType::Doc], aData);
nsRuleNode* lastDocRN = aRuleWalker->CurrentNode(); nsRuleNode* lastDocRN = aRuleWalker->CurrentNode();
@@ -1153,7 +1151,7 @@ @@ -1162,7 +1160,7 @@ nsStyleSet::FileRules(nsIStyleRuleProcessor::EnumFunc aCollectorFunc,
nsTArray<nsRuleNode*> lastScopedRNs; nsTArray<nsRuleNode*> lastScopedRNs;
nsTArray<bool> haveImportantScopedRules; nsTArray<bool> haveImportantScopedRules;
bool haveAnyImportantScopedRules = false; bool haveAnyImportantScopedRules = false;
@ -31,7 +31,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=285140
aElement && aElement->IsElementInStyleScope()) { aElement && aElement->IsElementInStyleScope()) {
lastScopedRNs.SetLength(mScopedDocSheetRuleProcessors.Length()); lastScopedRNs.SetLength(mScopedDocSheetRuleProcessors.Length());
haveImportantScopedRules.SetLength(mScopedDocSheetRuleProcessors.Length()); haveImportantScopedRules.SetLength(mScopedDocSheetRuleProcessors.Length());
@@ -1288,8 +1286,7 @@ @@ -1297,8 +1295,7 @@ nsStyleSet::WalkRuleProcessors(nsIStyleRuleProcessor::EnumFunc aFunc,
if (mRuleProcessors[SheetType::Agent]) if (mRuleProcessors[SheetType::Agent])
(*aFunc)(mRuleProcessors[SheetType::Agent], aData); (*aFunc)(mRuleProcessors[SheetType::Agent], aData);
@ -41,7 +41,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=285140
(*aFunc)(mRuleProcessors[SheetType::User], aData); (*aFunc)(mRuleProcessors[SheetType::User], aData);
if (mRuleProcessors[SheetType::PresHint]) if (mRuleProcessors[SheetType::PresHint])
@@ -1304,7 +1301,7 @@ @@ -1316,7 +1313,7 @@ nsStyleSet::WalkRuleProcessors(nsIStyleRuleProcessor::EnumFunc aFunc,
mBindingManager->WalkRules(aFunc, aData, &cutOffInheritance); mBindingManager->WalkRules(aFunc, aData, &cutOffInheritance);
} }
} }
@ -50,4 +50,3 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=285140
if (mRuleProcessors[SheetType::Doc]) // NOTE: different if (mRuleProcessors[SheetType::Doc]) // NOTE: different
(*aFunc)(mRuleProcessors[SheetType::Doc], aData); (*aFunc)(mRuleProcessors[SheetType::Doc], aData);
if (aData->mElement->IsElementInStyleScope()) { if (aData->mElement->IsElementInStyleScope()) {
f (aData->mElement->IsElementInStyleScope()) {

View File

@ -1,7 +1,7 @@
{ pkgs ? import <nixpkgs> { } }: { pkgs ? import <nixpkgs> { } }:
let let
firefox = pkgs.firefox-unwrapped.override { firefox = pkgs.firefox-esr-unwrapped.override {
gtk3Support = true; gtk3Support = true;
enableOfficialBranding = true; enableOfficialBranding = true;
privacySupport = true; privacySupport = true;
@ -11,7 +11,6 @@ let
patched = firefox.overrideDerivation (base: { patched = firefox.overrideDerivation (base: {
patches = base.patches ++ [ patches = base.patches ++ [
./allow-anonymous-user-style.patch ./allow-anonymous-user-style.patch
./enable-legacy-addons.patch
./disable-datasharing-infobar.patch ./disable-datasharing-infobar.patch
./disable-locationservice.patch ./disable-locationservice.patch
./disable-sponsored-tiles.patch ./disable-sponsored-tiles.patch
@ -23,6 +22,7 @@ let
./disable-pdfjs.patch ./disable-pdfjs.patch
./disable-dbus.patch ./disable-dbus.patch
./preferences.patch ./preferences.patch
./mitigate-spectre.patch
]; ];
postPatch = '' postPatch = ''

View File

@ -1,11 +1,12 @@
--- a/browser/base/content/browser.js --- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js +++ b/browser/base/content/browser.js
@@ -1548,9 +1548,6 @@ @@ -1353,9 +1353,6 @@ var gBrowserInit = {
MenuTouchModeObserver.init(); gSyncUI.init();
} gFxAccounts.init();
- if (AppConstants.MOZ_DATA_REPORTING) - if (AppConstants.MOZ_DATA_REPORTING)
- gDataNotificationInfoBar.init(); - gDataNotificationInfoBar.init();
- -
if (!AppConstants.MOZILLA_OFFICIAL) gBrowserThumbnails.init();
DevelopmentHelpers.init();
gMenuButtonBadgeManager.init();

View File

@ -1,18 +1,31 @@
--- a/browser/confvars.sh
+++ b/browser/confvars.sh
@@ -29,6 +29,10 @@ if test "$OS_ARCH" = "WINNT"; then
fi
fi
+MOZ_ENABLE_DBUS=0
+NECKO_WIFI=0
+NECKO_WIFI_DBUS=0
+
# Enable building ./signmar and running libmar signature tests
MOZ_ENABLE_SIGNMAR=1
--- a/ipc/moz.build --- a/ipc/moz.build
+++ b/ipc/moz.build +++ b/ipc/moz.build
@@ -11,9 +11,6 @@ @@ -11,9 +11,6 @@ DIRS += [
'testshell', 'testshell',
] ]
-if CONFIG['MOZ_ENABLE_DBUS']: -if CONFIG['MOZ_ENABLE_DBUS']:
- DIRS += ['dbus'] - DIRS += ['dbus']
- -
if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'android': if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
DIRS += ['contentproc'] DIRS += ['unixfd', 'unixsocket']
--- a/netwerk/moz.build --- a/netwerk/moz.build
+++ b/netwerk/moz.build +++ b/netwerk/moz.build
@@ -27,10 +27,7 @@ @@ -25,9 +25,6 @@ if CONFIG['MOZ_SRTP']:
if CONFIG['MOZ_SCTP']: if CONFIG['MOZ_SCTP']:
DIRS += ['sctp/src', 'sctp/datachannel'] DIRS += ['sctp/src', 'sctp/datachannel']
@ -22,17 +35,3 @@
DIRS += ['locales'] DIRS += ['locales']
DIRS += ['build'] DIRS += ['build']
TEST_DIRS += ['test']
--- a/browser/confvars.sh
+++ b/browser/confvars.sh
@@ -60,6 +60,10 @@
ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-release
MAR_CHANNEL_ID=firefox-mozilla-release
fi
+MOZ_ENABLE_DBUS=0
+NECKO_WIFI=0
+NECKO_WIFI_DBUS=0
+
MOZ_PROFILE_MIGRATOR=1
# Enable checking that add-ons are signed by the trusted root

View File

@ -1,6 +1,6 @@
--- a/toolkit/components/search/nsSearchService.js --- a/toolkit/components/search/nsSearchService.js
+++ b/toolkit/components/search/nsSearchService.js +++ b/toolkit/components/search/nsSearchService.js
@@ -380,6 +380,10 @@ @@ -421,6 +421,10 @@ function migrateRegionPrefs() {
return; return;
} }
@ -11,9 +11,9 @@
// If we have 'isUS' but no 'countryCode' then we are almost certainly // If we have 'isUS' but no 'countryCode' then we are almost certainly
// a profile from Fx 34/35 that set 'isUS' based purely on a timezone // a profile from Fx 34/35 that set 'isUS' based purely on a timezone
// check. If this said they were US, we force region to be US. // check. If this said they were US, we force region to be US.
@@ -463,6 +467,10 @@ @@ -507,6 +511,10 @@ var ensureKnownCountryCode = Task.async(function* (ss) {
// If we have a country-code already stored in our prefs we trust it. countryCode = Services.prefs.getCharPref("browser.search.countryCode");
let countryCode = Services.prefs.getCharPref("browser.search.countryCode", ""); } catch (e) {}
+ // No countryCode set, use US as default, don't contact location.services.mozilla.com + // No countryCode set, use US as default, don't contact location.services.mozilla.com
+ Services.prefs.setCharPref("browser.search.countryCode", "US"); + Services.prefs.setCharPref("browser.search.countryCode", "US");

View File

@ -1,17 +1,17 @@
--- a/browser/components/nsBrowserGlue.js --- a/browser/components/nsBrowserGlue.js
+++ b/browser/components/nsBrowserGlue.js +++ b/browser/components/nsBrowserGlue.js
@@ -47,7 +47,6 @@ @@ -46,7 +46,6 @@ XPCOMUtils.defineLazyServiceGetter(this, "AlertsService", "@mozilla.org/alerts-s
OS: "resource://gre/modules/osfile.jsm", ["NewTabUtils", "resource://gre/modules/NewTabUtils.jsm"],
PageActions: "resource:///modules/PageActions.jsm", ["OS", "resource://gre/modules/osfile.jsm"],
PageThumbs: "resource://gre/modules/PageThumbs.jsm", ["PageThumbs", "resource://gre/modules/PageThumbs.jsm"],
- PdfJs: "resource://pdf.js/PdfJs.jsm", - ["PdfJs", "resource://pdf.js/PdfJs.jsm"],
PermissionUI: "resource:///modules/PermissionUI.jsm", ["PermissionUI", "resource:///modules/PermissionUI.jsm"],
PingCentre: "resource:///modules/PingCentre.jsm", ["PlacesBackups", "resource://gre/modules/PlacesBackups.jsm"],
PlacesBackups: "resource://gre/modules/PlacesBackups.jsm", ["PlacesUtils", "resource://gre/modules/PlacesUtils.jsm"],
@@ -505,14 +504,6 @@ @@ -930,20 +929,6 @@ BrowserGlue.prototype = {
this._updateFxaBadges();
break; // the first browser window has finished initializing
case "handlersvc-store-initialized": _onFirstWindowLoaded: function BG__onFirstWindowLoaded(aWindow) {
- // Initialize PdfJs when running in-process and remote. This only - // Initialize PdfJs when running in-process and remote. This only
- // happens once since PdfJs registers global hooks. If the PdfJs - // happens once since PdfJs registers global hooks. If the PdfJs
- // extension is installed the init method below will be overridden - // extension is installed the init method below will be overridden
@ -20,22 +20,12 @@
- // pdf content handler, and initializes parent side message manager - // pdf content handler, and initializes parent side message manager
- // shim for privileged api access. - // shim for privileged api access.
- PdfJs.init(true); - PdfJs.init(true);
break; - // child only: similar to the call above for parent - register content
case "shield-init-complete": - // handler and init message manager child shim for privileged api access.
this._sendMainPingCentrePing(); - // With older versions of the extension installed, this load will fail
@@ -866,15 +857,6 @@ - // passively.
// the first browser window has finished initializing
_onFirstWindowLoaded: function BG__onFirstWindowLoaded(aWindow) {
- // Set up listeners and, if PdfJs is enabled, register the PDF stream converter.
- // We delay all of the parent's initialization other than stream converter
- // registration, because it requires file IO from nsHandlerService-json.js
- Services.ppmm.loadProcessScript("resource://pdf.js/pdfjschildbootstrap.js", true); - Services.ppmm.loadProcessScript("resource://pdf.js/pdfjschildbootstrap.js", true);
- if (PdfJs.enabled) {
- PdfJs.ensureRegistered();
- Services.ppmm.loadProcessScript("resource://pdf.js/pdfjschildbootstrap-enabled.js", true);
- }
- -
TabCrashHandler.init(); if (AppConstants.platform == "win") {
if (AppConstants.MOZ_CRASHREPORTER) { // For Windows 7, initialize the jump list module.
PluginCrashReporter.init(); const WINTASKBAR_CONTRACTID = "@mozilla.org/windows-taskbar;1";

View File

@ -1,15 +1,6 @@
--- a/browser/app/profile/firefox.js --- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js
@@ -200,7 +200,7 @@ @@ -1525,8 +1525,6 @@ pref("browser.migrate.chrome.history.maxAgeInDays", 0);
pref("extensions.{972ce4c6-7e08-4474-a285-3208198ce6fd}.description", "chrome://browser/locale/browser.properties");
pref("extensions.webextensions.themes.enabled", true);
-pref("extensions.webextensions.themes.icons.buttons", "back,forward,reload,stop,bookmark_star,bookmark_menu,downloads,home,app_menu,cut,copy,paste,new_window,new_private_window,save_page,print,history,full_screen,find,options,addons,developer,synced_tabs,open_file,sidebars,share_page,subscribe,text_encoding,email_link,forget,pocket");
+pref("extensions.webextensions.themes.icons.buttons", "back,forward,reload,stop,bookmark_star,bookmark_menu,downloads,home,app_menu,cut,copy,paste,new_window,new_private_window,save_page,print,history,full_screen,find,options,addons,developer,synced_tabs,open_file,sidebars,share_page,subscribe,text_encoding,email_link,forget");
pref("lightweightThemes.update.enabled", true);
pref("lightweightThemes.getMoreURL", "https://addons.mozilla.org/%LOCALE%/firefox/themes");
@@ -1648,8 +1648,6 @@
// Enable browser frames for use on desktop. Only exposed to chrome callers. // Enable browser frames for use on desktop. Only exposed to chrome callers.
pref("dom.mozBrowserFramesEnabled", true); pref("dom.mozBrowserFramesEnabled", true);
@ -18,47 +9,188 @@
pref("signon.schemeUpgrades", true); pref("signon.schemeUpgrades", true);
// "Simplify Page" feature in Print Preview. This feature is disabled by default // "Simplify Page" feature in Print Preview. This feature is disabled by default
--- a/browser/base/content/test/general/browser_contextmenu.js
+++ b/browser/base/content/test/general/browser_contextmenu.js
@@ -10,7 +10,6 @@ let LOGIN_FILL_ITEMS = [
"fill-login-saved-passwords", true
], null,
];
-let hasPocket = Services.prefs.getBoolPref("extensions.pocket.enabled");
let hasContainers = Services.prefs.getBoolPref("privacy.userContext.enabled");
const example_base = "http://example.com/browser/browser/base/content/test/general/";
@@ -35,7 +34,6 @@ add_task(function* test_xul_text_link_label() {
"---", null,
"context-bookmarklink", true,
"context-savelink", true,
- ...(hasPocket ? ["context-savelinktopocket", true] : []),
"context-copylink", true,
"context-searchselect", true
]
@@ -79,7 +77,6 @@ add_task(function* test_plaintext() {
"context-bookmarkpage", true], null,
"---", null,
"context-savepage", true,
- ...(hasPocket ? ["context-pocket", true] : []),
"---", null,
"context-viewbgimage", false,
"context-selectall", true,
@@ -102,7 +99,6 @@ add_task(function* test_link() {
"---", null,
"context-bookmarklink", true,
"context-savelink", true,
- ...(hasPocket ? ["context-savelinktopocket", true] : []),
"context-copylink", true,
"context-searchselect", true
]
@@ -248,7 +244,6 @@ add_task(function* test_iframe() {
"context-bookmarkpage", true], null,
"---", null,
"context-savepage", true,
- ...(hasPocket ? ["context-pocket", true] : []),
"---", null,
"context-viewbgimage", false,
"context-selectall", true,
@@ -554,7 +549,6 @@ add_task(function* test_pagemenu() {
"+Checkbox", {type: "checkbox", icon: "", checked: false, disabled: false}], null,
"---", null,
"context-savepage", true,
- ...(hasPocket ? ["context-pocket", true] : []),
"---", null,
"context-viewbgimage", false,
"context-selectall", true,
@@ -585,7 +579,6 @@ add_task(function* test_dom_full_screen() {
"context-leave-dom-fullscreen", true,
"---", null,
"context-savepage", true,
- ...(hasPocket ? ["context-pocket", true] : []),
"---", null,
"context-viewbgimage", false,
"context-selectall", true,
@@ -631,7 +624,6 @@ add_task(function* test_pagemenu2() {
"context-bookmarkpage", true], null,
"---", null,
"context-savepage", true,
- ...(hasPocket ? ["context-pocket", true] : []),
"---", null,
"context-viewbgimage", false,
"context-selectall", true,
@@ -708,7 +700,6 @@ add_task(function* test_imagelink() {
"---", null,
"context-bookmarklink", true,
"context-savelink", true,
- ...(hasPocket ? ["context-savelinktopocket", true] : []),
"context-copylink", true,
"---", null,
"context-viewimage", true,
@@ -811,7 +802,6 @@ add_task(function* test_click_to_play_blocked_plugin() {
"context-ctp-hide", true,
"---", null,
"context-savepage", true,
- ...(hasPocket ? ["context-pocket", true] : []),
"---", null,
"context-viewbgimage", false,
"context-selectall", true,
@@ -855,7 +845,6 @@ add_task(function* test_srcdoc() {
"context-bookmarkpage", true], null,
"---", null,
"context-savepage", true,
- ...(hasPocket ? ["context-pocket", true] : []),
"---", null,
"context-viewbgimage", false,
"context-selectall", true,
--- a/browser/components/customizableui/CustomizableUI.jsm
+++ b/browser/components/customizableui/CustomizableUI.jsm
@@ -64,7 +64,6 @@ var kVersion = 6;
* version the button is removed in as the value. e.g. "pocket-button": 5
*/
var ObsoleteBuiltinButtons = {
- "pocket-button": 6
};
/**
@@ -247,13 +246,6 @@ var CustomizableUIInternal = {
navbarPlacements.push("webide-button");
}
- // Place this last, when createWidget is called for pocket, it will
- // append to the toolbar.
- if (Services.prefs.getPrefType("extensions.pocket.enabled") != Services.prefs.PREF_INVALID &&
- Services.prefs.getBoolPref("extensions.pocket.enabled")) {
- navbarPlacements.push("pocket-button");
- }
-
this.registerArea(CustomizableUI.AREA_NAVBAR, {
legacy: true,
type: CustomizableUI.TYPE_TOOLBAR,
--- a/browser/components/uitour/UITour.jsm --- a/browser/components/uitour/UITour.jsm
+++ b/browser/components/uitour/UITour.jsm +++ b/browser/components/uitour/UITour.jsm
@@ -147,18 +147,6 @@ @@ -148,11 +148,6 @@ this.UITour = {
["help", {query: "#appMenu-help-button"}], query: "#panic-button",
["home", {query: "#home-button"}], widgetName: "panic-button",
["library", {query: "#appMenu-library-button"}], }],
- ["pocket", { - ["pocket", {
- allowAdd: true, - allowAdd: true,
- query: (aDocument) => { - query: "#pocket-button",
- // The pocket's urlbar page action button is pre-defined in the DOM. - widgetName: "pocket-button",
- // It would be hidden if toggled off from the urlbar.
- let node = aDocument.getElementById("pocket-button-box");
- if (node && node.hidden == false) {
- return node;
- }
- return aDocument.getElementById("pageAction-panel-pocket");
- },
- }], - }],
["privateWindow", {query: "#appMenu-private-window-button"}], ["privateWindow", {query: "#privatebrowsing-button"}],
["quit", {query: "#appMenu-quit-button"}], ["quit", {query: "#PanelUI-quit"}],
["search", { ["search", {
@@ -1427,12 +1415,6 @@ @@ -1662,46 +1657,6 @@ this.UITour = {
popup.addEventListener("popupshown", onPopupShown);
} }
aWindow.document.getElementById("identity-box").click(); aWindow.document.getElementById("identity-box").click();
} else if (aMenuName == "pocket") { - } else if (aMenuName == "pocket") {
- let pageAction = PageActions.actionForID("pocket"); - this.getTarget(aWindow, "pocket").then(Task.async(function* onPocketTarget(target) {
- if (!pageAction) { - let widgetGroupWrapper = CustomizableUI.getWidget(target.widgetName);
- log.error("Can't open the pocket menu without a page action"); - if (widgetGroupWrapper.type != "view" || !widgetGroupWrapper.viewId) {
- log.error("Can't open the pocket menu without a view");
- return; - return;
- } - }
- pageAction.doCommand(aWindow); - let placement = CustomizableUI.getPlacementOfWidget(target.widgetName);
} else if (aMenuName == "urlbar") { - if (!placement || !placement.area) {
this.getTarget(aWindow, "urlbar").then(target => { - log.error("Can't open the pocket menu without a placement");
let urlbar = target.node; - return;
- }
-
- if (placement.area == CustomizableUI.AREA_PANEL) {
- // Open the appMenu and wait for it if it's not already opened or showing a subview.
- yield new Promise((resolve, reject) => {
- if (aWindow.PanelUI.panel.state != "closed") {
- if (aWindow.PanelUI.multiView.showingSubView) {
- reject("A subview is already showing");
- return;
- }
-
- resolve();
- return;
- }
-
- aWindow.PanelUI.panel.addEventListener("popupshown", function onShown() {
- aWindow.PanelUI.panel.removeEventListener("popupshown", onShown);
- resolve();
- });
-
- aWindow.PanelUI.show();
- });
- }
-
- let widgetWrapper = widgetGroupWrapper.forWindow(aWindow);
- aWindow.PanelUI.showSubView(widgetGroupWrapper.viewId,
- widgetWrapper.anchor,
- placement.area);
- })).catch(log.error);
}
},
--- a/browser/extensions/moz.build --- a/browser/extensions/moz.build
+++ b/browser/extensions/moz.build +++ b/browser/extensions/moz.build
@@ -12,7 +12,6 @@ @@ -8,7 +8,6 @@ DIRS += [
'formautofill', 'aushelper',
'onboarding', 'e10srollout',
'pdfjs', 'pdfjs',
- 'pocket', - 'pocket',
'screenshots',
'shield-recipe-client',
'webcompat', 'webcompat',
]

View File

@ -8,45 +8,34 @@
<command id="cmd_find" <command id="cmd_find"
oncommand="gFindBar.onFindCommand();" oncommand="gFindBar.onFindCommand();"
observes="isImage"/> observes="isImage"/>
@@ -281,7 +280,6 @@ @@ -283,7 +282,6 @@
<key id="key_fullScreen_old" key="&fullScreenCmd.macCommandKey;" command="View:FullScreen" modifiers="accel,shift"/> <key id="key_fullScreen_old" key="&fullScreenCmd.macCommandKey;" command="View:FullScreen" modifiers="accel,shift"/>
<key keycode="VK_F11" command="View:FullScreen"/> <key keycode="VK_F11" command="View:FullScreen"/>
#endif #endif
- <key id="key_toggleReaderMode" key="&toggleReaderMode.key;" command="View:ReaderView" modifiers="accel,alt" disabled="true"/> - <key id="toggleReaderMode" key="&toggleReaderMode.key;" command="View:ReaderView" modifiers="accel,alt" disabled="true"/>
<key key="&reloadCmd.commandkey;" command="Browser:Reload" modifiers="accel" id="key_reload"/> <key key="&reloadCmd.commandkey;" command="Browser:Reload" modifiers="accel" id="key_reload"/>
<key key="&reloadCmd.commandkey;" command="Browser:ReloadSkipCache" modifiers="accel,shift"/> <key key="&reloadCmd.commandkey;" command="Browser:ReloadSkipCache" modifiers="accel,shift"/>
<key id="key_viewSource" key="&pageSourceCmd.commandkey;" command="View:PageSource" modifiers="accel"/> <key id="key_viewSource" key="&pageSourceCmd.commandkey;" command="View:PageSource" modifiers="accel"/>
--- a/browser/base/content/browser.js --- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js +++ b/browser/base/content/browser.js
@@ -46,8 +46,6 @@ @@ -37,8 +37,6 @@ Cu.import("resource://gre/modules/NotificationDB.jsm");
PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm", ["PrivateBrowsingUtils", "resource://gre/modules/PrivateBrowsingUtils.jsm"],
ProcessHangMonitor: "resource:///modules/ProcessHangMonitor.jsm", ["ProcessHangMonitor", "resource:///modules/ProcessHangMonitor.jsm"],
PromiseUtils: "resource://gre/modules/PromiseUtils.jsm", ["PromiseUtils", "resource://gre/modules/PromiseUtils.jsm"],
- ReaderMode: "resource://gre/modules/ReaderMode.jsm", - ["ReaderMode", "resource://gre/modules/ReaderMode.jsm"],
- ReaderParent: "resource:///modules/ReaderParent.jsm", - ["ReaderParent", "resource:///modules/ReaderParent.jsm"],
RecentWindow: "resource:///modules/RecentWindow.jsm", ["RecentWindow", "resource:///modules/RecentWindow.jsm"],
SafeBrowsing: "resource://gre/modules/SafeBrowsing.jsm", ["SessionStore", "resource:///modules/sessionstore/SessionStore.jsm"],
SessionStore: "resource:///modules/sessionstore/SessionStore.jsm", ["ShortcutUtils", "resource://gre/modules/ShortcutUtils.jsm"],
@@ -4753,7 +4751,6 @@ @@ -4576,7 +4574,6 @@ var XULBrowserWindow = {
} }
} }
UpdateBackForwardCommands(gBrowser.webNavigation); UpdateBackForwardCommands(gBrowser.webNavigation);
- ReaderParent.updateReaderButton(gBrowser.selectedBrowser); - ReaderParent.updateReaderButton(gBrowser.selectedBrowser);
if (!gMultiProcessBrowser) // Bug 1108553 - Cannot rotate images with e10s
gGestureSupport.restoreRotationState(); gGestureSupport.restoreRotationState();
@@ -5122,8 +5119,8 @@
aRequest.originalURI &&
(aRequest.originalURI.schemeIs("chrome") ||
(aRequest.originalURI.schemeIs("about") &&
- aWebProgress.isTopLevel &&
- !aRequest.originalURI.spec.startsWith("about:reader")))) {
+ aWebProgress.isTopLevel
+ ))) {
return false;
}
@@ -5195,9 +5192,6 @@ @@ -4877,9 +4874,6 @@ var TabsProgressListener = {
// Filter out location changes caused by anchor navigation // Filter out location changes caused by anchor navigation
// or history.push/pop/replaceState. // or history.push/pop/replaceState.
if (aFlags & Ci.nsIWebProgressListener.LOCATION_CHANGE_SAME_DOCUMENT) { if (aFlags & Ci.nsIWebProgressListener.LOCATION_CHANGE_SAME_DOCUMENT) {
@ -58,66 +47,132 @@
--- a/browser/base/content/browser.xul --- a/browser/base/content/browser.xul
+++ b/browser/base/content/browser.xul +++ b/browser/base/content/browser.xul
@@ -876,11 +876,6 @@ @@ -759,10 +759,6 @@
hidden="true" hidden="true"
tooltiptext="&pageReportIcon.tooltip;" tooltiptext="&pageReportIcon.tooltip;"
onmousedown="gPopupBlockerObserver.onReportButtonMousedown(event);"/> onmousedown="gPopupBlockerObserver.onReportButtonMousedown(event);"/>
- <image id="reader-mode-button" - <image id="reader-mode-button"
- class="urlbar-icon urlbar-page-action" - class="urlbar-icon"
- role="button"
- hidden="true" - hidden="true"
- onclick="ReaderParent.buttonClick(event);"/> - onclick="ReaderParent.buttonClick(event);"/>
<toolbarbutton id="urlbar-zoom-button" <toolbarbutton id="urlbar-zoom-button"
onclick="FullZoom.reset();" onclick="FullZoom.reset();"
tooltip="dynamic-shortcut-tooltip" tooltiptext="&urlbar.zoomReset.tooltip;"
--- a/browser/base/content/urlbarBindings.xml
+++ b/browser/base/content/urlbarBindings.xml
@@ -184,11 +184,6 @@ file, You can obtain one at http://mozilla.org/MPL/2.0/.
break;
}
}
- } else {
- let originalUrl = ReaderMode.getOriginalUrl(aValue);
- if (originalUrl) {
- returnValue = originalUrl;
- }
}
// Set the actiontype only if the user is not overriding actions.
@@ -773,12 +768,6 @@ file, You can obtain one at http://mozilla.org/MPL/2.0/.
return selectedVal;
}
- // Avoid copying 'about:reader?url=', and always provide the original URI:
- let readerOriginalURL = ReaderMode.getOriginalUrl(uri.spec);
- if (readerOriginalURL) {
- uri = uriFixup.createFixupURI(readerOriginalURL, Ci.nsIURIFixup.FIXUP_FLAG_NONE);
- }
-
// Only copy exposable URIs
try {
uri = uriFixup.createExposableURI(uri);
--- a/browser/components/nsBrowserGlue.js --- a/browser/components/nsBrowserGlue.js
+++ b/browser/components/nsBrowserGlue.js +++ b/browser/components/nsBrowserGlue.js
@@ -55,7 +55,6 @@ @@ -53,7 +53,6 @@ XPCOMUtils.defineLazyServiceGetter(this, "AlertsService", "@mozilla.org/alerts-s
PluralForm: "resource://gre/modules/PluralForm.jsm", ["PluralForm", "resource://gre/modules/PluralForm.jsm"],
PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm", ["PrivateBrowsingUtils", "resource://gre/modules/PrivateBrowsingUtils.jsm"],
ProcessHangMonitor: "resource:///modules/ProcessHangMonitor.jsm", ["ProcessHangMonitor", "resource:///modules/ProcessHangMonitor.jsm"],
- ReaderParent: "resource:///modules/ReaderParent.jsm", - ["ReaderParent", "resource:///modules/ReaderParent.jsm"],
RecentWindow: "resource:///modules/RecentWindow.jsm", ["RecentWindow", "resource:///modules/RecentWindow.jsm"],
RemotePrompt: "resource:///modules/RemotePrompt.jsm", ["RemotePrompt", "resource:///modules/RemotePrompt.jsm"],
SafeBrowsing: "resource://gre/modules/SafeBrowsing.jsm", ["SelfSupportBackend", "resource:///modules/SelfSupportBackend.jsm"],
@@ -145,9 +144,6 @@ @@ -685,7 +684,6 @@ BrowserGlue.prototype = {
"FormValidation:ShowPopup": ["FormValidationHandler"], ContentPrefServiceParent.init();
"FormValidation:HidePopup": ["FormValidationHandler"],
"Prompt:Open": ["RemotePrompt"], LoginManagerParent.init();
- "Reader:ArticleGet": ["ReaderParent"], - ReaderParent.init();
- "Reader:FaviconRequest": ["ReaderParent"], URLBarZoom.init();
- "Reader:UpdateReaderButton": ["ReaderParent"],
// PLEASE KEEP THIS LIST IN SYNC WITH THE MOBILE LISTENERS IN BrowserCLH.js SelfSupportBackend.init();
"RemoteLogins:findLogins": ["LoginManagerParent"], --- a/browser/components/uitour/UITour-lib.js
"RemoteLogins:findRecipes": ["LoginManagerParent"], +++ b/browser/components/uitour/UITour-lib.js
@@ -297,14 +297,6 @@ if (typeof Mozilla == 'undefined') {
});
};
- Mozilla.UITour.forceShowReaderIcon = function() {
- _sendEvent('forceShowReaderIcon');
- };
-
- Mozilla.UITour.toggleReaderMode = function() {
- _sendEvent('toggleReaderMode');
- };
-
Mozilla.UITour.openPreferences = function(pane) {
_sendEvent('openPreferences', {
pane: pane
--- a/browser/components/uitour/UITour.jsm --- a/browser/components/uitour/UITour.jsm
+++ b/browser/components/uitour/UITour.jsm +++ b/browser/components/uitour/UITour.jsm
@@ -30,8 +30,6 @@ @@ -32,19 +32,13 @@ XPCOMUtils.defineLazyModuleGetter(this, "BrowserUITelemetry",
"resource:///modules/BrowserUITelemetry.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "PrivateBrowsingUtils",
"resource://gre/modules/PrivateBrowsingUtils.jsm"); "resource://gre/modules/PrivateBrowsingUtils.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "ProfileAge", -XPCOMUtils.defineLazyModuleGetter(this, "ReaderMode",
"resource://gre/modules/ProfileAge.jsm"); - "resource://gre/modules/ReaderMode.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "ReaderParent", -XPCOMUtils.defineLazyModuleGetter(this, "ReaderParent",
- "resource:///modules/ReaderParent.jsm"); - "resource:///modules/ReaderParent.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "PageActions",
"resource:///modules/PageActions.jsm");
@@ -40,7 +38,6 @@ // See LOG_LEVELS in Console.jsm. Common examples: "All", "Info", "Warn", & "Error".
const PREF_LOG_LEVEL = "browser.uitour.loglevel";
const PREF_SEENPAGEIDS = "browser.uitour.seenPageIDs"; const PREF_SEENPAGEIDS = "browser.uitour.seenPageIDs";
-const PREF_READERVIEW_TRIGGER = "browser.uitour.readerViewTrigger";
const PREF_SURVEY_DURATION = "browser.uitour.surveyDuration";
const BACKGROUND_PAGE_ACTIONS_ALLOWED = new Set([ const BACKGROUND_PAGE_ACTIONS_ALLOWED = new Set([
- "forceShowReaderIcon", - "forceShowReaderIcon",
"getConfiguration", "getConfiguration",
"getTreatmentTag", "getTreatmentTag",
"hideHighlight", "hideHighlight",
@@ -164,7 +161,6 @@ @@ -161,7 +155,6 @@ this.UITour = {
}], }],
["privateWindow", {query: "#appMenu-private-window-button"}], ["privateWindow", {query: "#privatebrowsing-button"}],
["quit", {query: "#appMenu-quit-button"}], ["quit", {query: "#PanelUI-quit"}],
- ["readerMode-urlBar", {query: "#reader-mode-button"}], - ["readerMode-urlBar", {query: "#reader-mode-button"}],
["search", { ["search", {
infoPanelOffsetX: 18, infoPanelOffsetX: 18,
infoPanelPosition: "after_start", infoPanelPosition: "after_start",
@@ -653,15 +649,10 @@ @@ -297,21 +290,7 @@ this.UITour = {
JSON.stringify([...this.seenPageIDs]));
},
- get _readerViewTriggerRegEx() {
- delete this._readerViewTriggerRegEx;
- let readerViewUITourTrigger = Services.prefs.getCharPref(PREF_READERVIEW_TRIGGER);
- return this._readerViewTriggerRegEx = new RegExp(readerViewUITourTrigger, "i");
- },
-
onLocationChange: function(aLocation) {
- // The ReaderView tour page is expected to run in Reader View,
- // which disables JavaScript on the page. To get around that, we
- // automatically start a pre-defined tour on page load (for hysterical
- // raisins the ReaderView tour is known as "readinglist")
- let originalUrl = ReaderMode.getOriginalUrl(aLocation);
- if (this._readerViewTriggerRegEx.test(originalUrl)) {
- this.startSubTour("readinglist");
- }
},
onPageEvent: function(aMessage, aEvent) {
@@ -661,15 +640,10 @@ this.UITour = {
} }
case "forceShowReaderIcon": { case "forceShowReaderIcon": {
@ -133,159 +188,25 @@
break; break;
} }
--- a/browser/components/uitour/UITour-lib.js @@ -1947,12 +1921,8 @@ this.UITour = {
+++ b/browser/components/uitour/UITour-lib.js return;
@@ -119,7 +119,6 @@ }
* <li>pocket
* <li>privateWindow
* <li>quit
- * <li>readerMode-urlBar
* <li>screenshots
* <li>search
* <li>searchIcon
@@ -704,26 +703,6 @@
};
/** - if (aFeature == "readinglist") {
- * @summary Force the reader mode icon to appear in the address bar regardless of whether - ReaderParent.showReaderModeInfoPanel(browser);
- * heuristics determine it's appropriate.
- *
- * @description This is useful if you want to target an annotation (panel/highlight) on it
- * but the tour page doesn't have much textual content.
- */
- Mozilla.UITour.forceShowReaderIcon = function() {
- _sendEvent("forceShowReaderIcon");
- };
-
- /**
- * Toggle into reader mode for the current tab. Once the user enters reader
- * mode, the UITour document will not be active and therefore cannot call other
- * UITour APIs.
- */
- Mozilla.UITour.toggleReaderMode = function() {
- _sendEvent("toggleReaderMode");
- };
-
- /**
* @param {String} pane - Pane to open/switch the preferences to.
* Valid values match fragments on about:preferences and are subject to change e.g.:
*
--- a/browser/components/uitour/test/browser_UITour_toggleReaderMode.js
+++ b/browser/components/uitour/test/browser_UITour_toggleReaderMode.js
@@ -1,16 +0,0 @@
-"use strict";
-
-var gTestTab;
-var gContentAPI;
-var gContentWindow;
-
-add_task(setup_UITourTest);
-
-add_UITour_task(async function() {
- ok(!gBrowser.selectedBrowser.currentURI.spec.startsWith("about:reader"),
- "Should not be in reader mode at start of test.");
- await gContentAPI.toggleReaderMode();
- await waitForConditionPromise(() => gBrowser.selectedBrowser.currentURI.spec.startsWith("about:reader"));
- ok(gBrowser.selectedBrowser.currentURI.spec.startsWith("about:reader"),
- "Should be in reader mode now.");
-});
--- a/browser/components/uitour/test/browser.ini
+++ b/browser/components/uitour/test/browser.ini
@@ -34,7 +34,6 @@
[browser_UITour_annotation_size_attributes.js]
[browser_UITour_defaultBrowser.js]
[browser_UITour_detach_tab.js]
-[browser_UITour_forceReaderMode.js]
[browser_UITour_modalDialog.js]
skip-if = os != "mac" # modal dialog disabling only working on OS X.
[browser_UITour_observe.js]
@@ -46,4 +45,3 @@
[browser_UITour_resetProfile.js]
[browser_UITour_showNewTab.js]
[browser_UITour_sync.js]
-[browser_UITour_toggleReaderMode.js]
--- a/browser/components/sessionstore/test/browser.ini
+++ b/browser/components/sessionstore/test/browser.ini
@@ -31,7 +31,6 @@
browser_scrollPositions_sample.html
browser_scrollPositions_sample2.html
browser_scrollPositions_sample_frameset.html
- browser_scrollPositions_readerModeArticle.html
browser_sessionStorage.html
browser_speculative_connect.html
browser_248970_b_sample.html
@@ -111,7 +110,6 @@
[browser_restore_redirect.js]
[browser_restore_cookies_noOriginAttributes.js]
[browser_scrollPositions.js]
-[browser_scrollPositionsReaderMode.js]
[browser_sessionHistory.js]
support-files =
file_sessionHistory_hashchange.html
--- a/browser/base/content/urlbarBindings.xml
+++ b/browser/base/content/urlbarBindings.xml
@@ -230,11 +230,6 @@
break;
}
}
- } else { - } else {
- let originalUrl = ReaderMode.getOriginalUrlObjectForDisplay(aValue); - log.error("startSubTour: Unknown feature option specified");
- if (originalUrl) { - return;
- returnValue = originalUrl.displaySpec;
- } - }
} + log.error("startSubTour: Unknown feature option specified");
+ return;
},
// Set the actiontype only if the user is not overriding actions. addNavBarWidget: function (aTarget, aMessageManager, aCallbackID) {
@@ -947,26 +942,6 @@
]]></body>
</method>
- <method name="makeURIReadable">
- <parameter name="aURI"/>
- <body>
- <![CDATA[
- // Avoid copying 'about:reader?url=', and always provide the original URI:
- // Reader mode ensures we call createExposableURI itself.
- let readerStrippedURI = ReaderMode.getOriginalUrlObjectForDisplay(aURI.displaySpec);
- if (readerStrippedURI) {
- aURI = readerStrippedURI;
- } else {
- // Only copy exposable URIs
- try {
- aURI = Services.uriFixup.createExposableURI(aURI);
- } catch (ex) {}
- }
- return aURI;
- ]]>
- </body>
- </method>
-
<method name="_getSelectedValueForClipboard">
<body><![CDATA[
// Grab the actual input field's value, not our value, which could include moz-action:
@@ -1008,8 +983,6 @@
return selectedVal;
}
- uri = this.makeURIReadable(uri);
-
// If the entire URL is selected, just use the actual loaded URI,
// unless we want a decoded URI, or it's a data: or javascript: URI,
// since those are hard to read when encoded.
--- a/browser/modules/moz.build --- a/browser/modules/moz.build
+++ b/browser/modules/moz.build +++ b/browser/modules/moz.build
@@ -85,9 +85,6 @@ @@ -35,7 +35,6 @@ EXTRA_JS_MODULES += [
with Files("ProcessHangMonitor.jsm"): 'PermissionUI.jsm',
BUG_COMPONENT = ("Core", "DOM: Content Processes")
-with Files("ReaderParent.jsm"):
- BUG_COMPONENT = ("Toolkit", "Reader Mode")
-
with Files("Sanitizer.jsm"):
BUG_COMPONENT = ("Firefox", "Preferences")
@@ -149,7 +146,6 @@
'PingCentre.jsm',
'PluginContent.jsm', 'PluginContent.jsm',
'ProcessHangMonitor.jsm', 'ProcessHangMonitor.jsm',
- 'ReaderParent.jsm', - 'ReaderParent.jsm',

View File

@ -1,69 +1,6 @@
--- a/browser/base/content/browser.xul
+++ b/browser/base/content/browser.xul
@@ -102,13 +102,6 @@
hidden="true"
oncommand="gBrowser.openNonRemoteWindow(TabContextMenu.contextTab);"/>
#endif
- <menuseparator id="context_sendTabToDevice_separator"/>
- <menu id="context_sendTabToDevice" label="&sendTabToDevice.label;"
- accesskey="&sendTabToDevice.accesskey;">
- <menupopup id="context_sendTabToDevicePopupMenu"
- onpopupshowing="gSync.populateSendTabToDevicesMenu(event.target, TabContextMenu.contextTab.linkedBrowser.currentURI.spec, TabContextMenu.contextTab.linkedBrowser.contentTitle);"/>
- </menu>
- <menuseparator/>
<menuitem id="context_reloadAllTabs" label="&reloadAllTabs.label;" accesskey="&reloadAllTabs.accesskey;"
tbattr="tabbrowser-multiple-visible"
oncommand="gBrowser.reloadAllTabs();"/>
@@ -409,46 +402,6 @@
</hbox>
</panel>
- <panel id="pageActionPanel"
- class="cui-widget-panel"
- role="group"
- type="arrow"
- hidden="true"
- flip="slide"
- photon="true"
- position="bottomcenter topright"
- tabspecific="true"
- noautofocus="true"
- copyURL-title="&pageAction.copyLink.label;"
- emailLink-title="&emailPageCmd.label;"
- sendToDevice-title="&pageAction.sendTabToDevice.label;"
- sendToDevice-notReadyTitle="&sendToDevice.syncNotReady.label;">
- <photonpanelmultiview id="pageActionPanelMultiView"
- mainViewId="pageActionPanelMainView"
- viewCacheId="appMenu-viewCache">
- <panelview id="pageActionPanelMainView"
- context="pageActionPanelContextMenu"
- oncontextmenu="BrowserPageActions.onContextMenu(event);"
- class="PanelUI-subView">
- <vbox class="panel-subview-body"/>
- </panelview>
- </photonpanelmultiview>
- </panel>
- <panel id="pageActionFeedback"
- role="alert"
- type="arrow"
- hidden="true"
- flip="slide"
- position="bottomcenter topright"
- tabspecific="true"
- noautofocus="true"
- copyURLFeedback="&copyURLFeedback.label;"
- sendToDeviceFeedback="&sendToDeviceFeedback.label;">
- <hbox id="pageActionFeedbackAnimatableBox">
- <image id="pageActionFeedbackAnimatableImage"/>
- </hbox>
- <label id="pageActionFeedbackMessage"/>
- </panel>
<menupopup id="pageActionPanelContextMenu"
onpopupshowing="BrowserPageActions.onContextMenuShowing(event, this);">
--- a/browser/base/content/browser-context.inc --- a/browser/base/content/browser-context.inc
+++ b/browser/base/content/browser-context.inc +++ b/browser/base/content/browser-context.inc
@@ -258,14 +258,6 @@ @@ -279,14 +279,6 @@
label="&savePageCmd.label;" label="&savePageCmd.label;"
accesskey="&savePageCmd.accesskey2;" accesskey="&savePageCmd.accesskey2;"
oncommand="gContextMenu.savePageAs();"/> oncommand="gContextMenu.savePageAs();"/>
@ -73,323 +10,57 @@
- accesskey="&sendPageToDevice.accesskey;" - accesskey="&sendPageToDevice.accesskey;"
- hidden="true"> - hidden="true">
- <menupopup id="context-sendpagetodevice-popup" - <menupopup id="context-sendpagetodevice-popup"
- onpopupshowing="(() => { let browser = gBrowser || getPanelBrowser(); gSync.populateSendTabToDevicesMenu(event.target, browser.currentURI.spec, browser.contentTitle); })()"/> - onpopupshowing="(() => { let browser = gBrowser || getPanelBrowser(); gFxAccounts.populateSendTabToDevicesMenu(event.target, browser.currentURI.spec, browser.contentTitle); })()"/>
- </menu> - </menu>
<menuseparator id="context-sep-viewbgimage"/> <menuseparator id="context-sep-viewbgimage"/>
<menuitem id="context-viewbgimage" <menuitem id="context-viewbgimage"
label="&viewBGImageCmd.label;" label="&viewBGImageCmd.label;"
--- a/browser/base/content/test/sync/browser_contextmenu_sendtab.js @@ -326,14 +318,6 @@
+++ b/browser/base/content/test/sync/browser_contextmenu_sendtab.js oncommand="AddKeywordForSearchField();"/>
@@ -1,86 +0,0 @@ <menuitem id="context-searchselect"
-/* Any copyright is dedicated to the Public Domain. oncommand="BrowserSearch.loadSearchFromContext(this.searchTerms);"/>
- http://creativecommons.org/publicdomain/zero/1.0/ */ - <menuseparator id="context-sep-sendlinktodevice" hidden="true"/>
- - <menu id="context-sendlinktodevice"
-"use strict"; - label="&sendLinkToDevice.label;"
- - accesskey="&sendLinkToDevice.accesskey;"
-const chrome_base = "chrome://mochitests/content/browser/browser/base/content/test/general/"; - hidden="true">
-Services.scriptloader.loadSubScript(chrome_base + "head.js", this); - <menupopup id="context-sendlinktodevice-popup"
-/* import-globals-from ../general/head.js */ - onpopupshowing="gFxAccounts.populateSendTabToDevicesMenu(event.target, gContextMenu.linkURL, gContextMenu.linkTextStr);"/>
- - </menu>
-const remoteClientsFixture = [ { id: 1, name: "Foo"}, { id: 2, name: "Bar"} ]; <menuitem id="context-shareselect"
- label="&shareSelect.label;"
-let [testTab] = gBrowser.visibleTabs; accesskey="&shareSelect.accesskey;"
- --- a/browser/base/content/browser.xul
-add_task(async function setup() { +++ b/browser/base/content/browser.xul
- await promiseSyncReady(); @@ -104,13 +104,6 @@
- is(gBrowser.visibleTabs.length, 1, "there is one visible tab"); hidden="true"
-}); oncommand="gBrowser.openNonRemoteWindow(TabContextMenu.contextTab);"/>
- #endif
-// We are not testing the devices popup contents, since it is already tested by - <menuseparator id="context_sendTabToDevice_separator" hidden="true"/>
-// browser_contextmenu_sendpage.js and the code to populate it is the same. - <menu id="context_sendTabToDevice" label="&sendTabToDevice.label;"
- - accesskey="&sendTabToDevice.accesskey;" hidden="true">
-add_task(async function test_tab_contextmenu() { - <menupopup id="context_sendTabToDevicePopupMenu"
- const sandbox = setupSendTabMocks({ syncReady: true, clientsSynced: true, remoteClients: remoteClientsFixture, - onpopupshowing="gFxAccounts.populateSendTabToDevicesMenu(event.target, TabContextMenu.contextTab.linkedBrowser.currentURI.spec, TabContextMenu.contextTab.linkedBrowser.contentTitle);"/>
- state: UIState.STATUS_SIGNED_IN, isSendableURI: true }); - </menu>
- - <menuseparator/>
- await updateTabContextMenu(testTab); <menuitem id="context_reloadAllTabs" label="&reloadAllTabs.label;" accesskey="&reloadAllTabs.accesskey;"
- is(document.getElementById("context_sendTabToDevice").hidden, false, "Send tab to device is shown"); tbattr="tabbrowser-multiple-visible"
- is(document.getElementById("context_sendTabToDevice").disabled, false, "Send tab to device is enabled"); oncommand="gBrowser.reloadAllTabs();"/>
-
- sandbox.restore();
-});
-
-add_task(async function test_tab_contextmenu_unconfigured() {
- const sandbox = setupSendTabMocks({ syncReady: true, clientsSynced: true, remoteClients: remoteClientsFixture,
- state: UIState.STATUS_NOT_CONFIGURED, isSendableURI: true });
-
- await updateTabContextMenu(testTab);
- is(document.getElementById("context_sendTabToDevice").hidden, false, "Send tab to device is shown");
- is(document.getElementById("context_sendTabToDevice").disabled, false, "Send tab to device is enabled");
-
- sandbox.restore();
-});
-
-add_task(async function test_tab_contextmenu_not_sendable() {
- const sandbox = setupSendTabMocks({ syncReady: true, clientsSynced: true, remoteClients: [{ id: 1, name: "Foo"}],
- state: UIState.STATUS_SIGNED_IN, isSendableURI: false });
-
- await updateTabContextMenu(testTab);
- is(document.getElementById("context_sendTabToDevice").hidden, false, "Send tab to device is shown");
- is(document.getElementById("context_sendTabToDevice").disabled, true, "Send tab to device is disabled");
-
- sandbox.restore();
-});
-
-add_task(async function test_tab_contextmenu_not_synced_yet() {
- const sandbox = setupSendTabMocks({ syncReady: true, clientsSynced: false, remoteClients: [],
- state: UIState.STATUS_SIGNED_IN, isSendableURI: true });
-
- await updateTabContextMenu(testTab);
- is(document.getElementById("context_sendTabToDevice").hidden, false, "Send tab to device is shown");
- is(document.getElementById("context_sendTabToDevice").disabled, true, "Send tab to device is disabled");
-
- sandbox.restore();
-});
-
-add_task(async function test_tab_contextmenu_sync_not_ready_configured() {
- const sandbox = setupSendTabMocks({ syncReady: false, clientsSynced: false, remoteClients: null,
- state: UIState.STATUS_SIGNED_IN, isSendableURI: true });
-
- await updateTabContextMenu(testTab);
- is(document.getElementById("context_sendTabToDevice").hidden, false, "Send tab to device is shown");
- is(document.getElementById("context_sendTabToDevice").disabled, true, "Send tab to device is disabled");
-
- sandbox.restore();
-});
-
-add_task(async function test_tab_contextmenu_sync_not_ready_other_state() {
- const sandbox = setupSendTabMocks({ syncReady: false, clientsSynced: false, remoteClients: null,
- state: UIState.STATUS_NOT_VERIFIED, isSendableURI: true });
-
- await updateTabContextMenu(testTab);
- is(document.getElementById("context_sendTabToDevice").hidden, false, "Send tab to device is shown");
- is(document.getElementById("context_sendTabToDevice").disabled, false, "Send tab to device is enabled");
-
- sandbox.restore();
-});
--- a/browser/base/content/browser-sync.js
+++ b/browser/base/content/browser-sync.js
@@ -283,205 +283,6 @@
});
},
- openSendToDevicePromo() {
- let url = Services.prefs.getCharPref("app.productInfo.baseURL");
- url += "send-tabs/?utm_source=" + Services.appinfo.name.toLowerCase();
- switchToTabHavingURI(url, true, { replaceQueryString: true });
- },
-
- sendTabToDevice(url, clientId, title) {
- Weave.Service.clientsEngine.sendURIToClientForDisplay(url, clientId, title).catch(e => {
- console.error("Could not send tab to device", e);
- });
- },
-
- populateSendTabToDevicesMenu(devicesPopup, url, title, createDeviceNodeFn) {
- if (!createDeviceNodeFn) {
- createDeviceNodeFn = (clientId, name, clientType) => {
- let eltName = name ? "menuitem" : "menuseparator";
- return document.createElement(eltName);
- };
- }
-
- // remove existing menu items
- for (let i = devicesPopup.childNodes.length - 1; i >= 0; --i) {
- let child = devicesPopup.childNodes[i];
- if (child.classList.contains("sync-menuitem")) {
- child.remove();
- }
- }
-
- if (gSync.syncConfiguredAndLoading) {
- // We can only be in this case in the page action menu.
- return;
- }
-
- const fragment = document.createDocumentFragment();
-
- const state = UIState.get();
- if (state.status == UIState.STATUS_SIGNED_IN && this.remoteClients.length > 0) {
- this._appendSendTabDeviceList(fragment, createDeviceNodeFn, url, title);
- } else if (state.status == UIState.STATUS_SIGNED_IN) {
- this._appendSendTabSingleDevice(fragment, createDeviceNodeFn);
- } else if (state.status == UIState.STATUS_NOT_VERIFIED ||
- state.status == UIState.STATUS_LOGIN_FAILED) {
- this._appendSendTabVerify(fragment, createDeviceNodeFn);
- } else /* status is STATUS_NOT_CONFIGURED */ {
- this._appendSendTabUnconfigured(fragment, createDeviceNodeFn);
- }
-
- devicesPopup.appendChild(fragment);
- },
-
- _appendSendTabDeviceList(fragment, createDeviceNodeFn, url, title) {
- const onTargetDeviceCommand = (event) => {
- let clients = event.target.getAttribute("clientId") ?
- [event.target.getAttribute("clientId")] :
- this.remoteClients.map(client => client.id);
-
- clients.forEach(clientId => this.sendTabToDevice(url, clientId, title));
- }
-
- function addTargetDevice(clientId, name, clientType) {
- const targetDevice = createDeviceNodeFn(clientId, name, clientType);
- targetDevice.addEventListener("command", onTargetDeviceCommand, true);
- targetDevice.classList.add("sync-menuitem", "sendtab-target");
- targetDevice.setAttribute("clientId", clientId);
- targetDevice.setAttribute("clientType", clientType);
- targetDevice.setAttribute("label", name);
- fragment.appendChild(targetDevice);
- }
-
- const clients = this.remoteClients;
- for (let client of clients) {
- const type = client.formfactor && client.formfactor.includes("tablet") ?
- "tablet" : client.type;
- addTargetDevice(client.id, client.name, type);
- }
-
- // "Send to All Devices" menu item
- if (clients.length > 1) {
- const separator = createDeviceNodeFn();
- separator.classList.add("sync-menuitem");
- fragment.appendChild(separator);
- const allDevicesLabel = this.fxaStrings.GetStringFromName("sendToAllDevices.menuitem");
- addTargetDevice("", allDevicesLabel, "");
- }
- },
-
- _appendSendTabSingleDevice(fragment, createDeviceNodeFn) {
- const noDevices = this.fxaStrings.GetStringFromName("sendTabToDevice.singledevice.status");
- const learnMore = this.fxaStrings.GetStringFromName("sendTabToDevice.singledevice");
- this._appendSendTabInfoItems(fragment, createDeviceNodeFn, noDevices, learnMore, () => {
- this.openSendToDevicePromo();
- });
- },
-
- _appendSendTabVerify(fragment, createDeviceNodeFn) {
- const notVerified = this.fxaStrings.GetStringFromName("sendTabToDevice.verify.status");
- const verifyAccount = this.fxaStrings.GetStringFromName("sendTabToDevice.verify");
- this._appendSendTabInfoItems(fragment, createDeviceNodeFn, notVerified, verifyAccount, () => {
- this.openPrefs("sendtab");
- });
- },
-
- _appendSendTabUnconfigured(fragment, createDeviceNodeFn) {
- const notConnected = this.fxaStrings.GetStringFromName("sendTabToDevice.unconfigured.status");
- const learnMore = this.fxaStrings.GetStringFromName("sendTabToDevice.unconfigured");
- this._appendSendTabInfoItems(fragment, createDeviceNodeFn, notConnected, learnMore, () => {
- this.openSendToDevicePromo();
- });
-
- // Now add a 'sign in to sync' item above the 'learn more' item.
- const signInToSync = this.fxaStrings.GetStringFromName("sendTabToDevice.signintosync");
- let signInItem = createDeviceNodeFn(null, signInToSync, null);
- signInItem.classList.add("sync-menuitem");
- signInItem.setAttribute("label", signInToSync);
- // Show an icon if opened in the page action panel:
- if (signInItem.classList.contains("subviewbutton")) {
- signInItem.classList.add("subviewbutton-iconic", "signintosync");
- }
- signInItem.addEventListener("command", () => {
- this.openPrefs("sendtab");
- });
- fragment.insertBefore(signInItem, fragment.lastChild);
- },
-
- _appendSendTabInfoItems(fragment, createDeviceNodeFn, statusLabel, actionLabel, actionCommand) {
- const status = createDeviceNodeFn(null, statusLabel, null);
- status.setAttribute("label", statusLabel);
- status.setAttribute("disabled", true);
- status.classList.add("sync-menuitem");
- fragment.appendChild(status);
-
- const separator = createDeviceNodeFn(null, null, null);
- separator.classList.add("sync-menuitem");
- fragment.appendChild(separator);
-
- const actionItem = createDeviceNodeFn(null, actionLabel, null);
- actionItem.addEventListener("command", actionCommand, true);
- actionItem.classList.add("sync-menuitem");
- actionItem.setAttribute("label", actionLabel);
- fragment.appendChild(actionItem);
- },
-
- isSendableURI(aURISpec) {
- if (!aURISpec) {
- return false;
- }
- // Disallow sending tabs with more than 65535 characters.
- if (aURISpec.length > 65535) {
- return false;
- }
- try {
- // Filter out un-sendable URIs -- things like local files, object urls, etc.
- const unsendableRegexp = new RegExp(
- Services.prefs.getCharPref("services.sync.engine.tabs.filteredUrls"), "i");
- return !unsendableRegexp.test(aURISpec);
- } catch (e) {
- // The preference has been removed, or is an invalid regexp, so we log an
- // error and treat it as a valid URI -- and the more problematic case is
- // the length, which we've already addressed.
- Cu.reportError(`Failed to build url filter regexp for send tab: ${e}`);
- return true;
- }
- },
-
- // "Send Tab to Device" menu item
- updateTabContextMenu(aPopupMenu, aTargetTab) {
- const enabled = !this.syncConfiguredAndLoading &&
- this.isSendableURI(aTargetTab.linkedBrowser.currentURI.spec);
-
- document.getElementById("context_sendTabToDevice").disabled = !enabled;
- },
-
- // "Send Page to Device" and "Send Link to Device" menu items
- updateContentContextMenu(contextMenu) {
- // showSendLink and showSendPage are mutually exclusive
- const showSendLink = contextMenu.onSaveableLink || contextMenu.onPlainTextLink;
- const showSendPage = !showSendLink
- && !(contextMenu.isContentSelected ||
- contextMenu.onImage || contextMenu.onCanvas ||
- contextMenu.onVideo || contextMenu.onAudio ||
- contextMenu.onLink || contextMenu.onTextInput);
-
- ["context-sendpagetodevice", "context-sep-sendpagetodevice"]
- .forEach(id => contextMenu.showItem(id, showSendPage));
- ["context-sendlinktodevice", "context-sep-sendlinktodevice"]
- .forEach(id => contextMenu.showItem(id, showSendLink));
-
- if (!showSendLink && !showSendPage) {
- return;
- }
-
- const targetURI = showSendLink ? contextMenu.linkURL :
- contextMenu.browser.currentURI.spec;
- const enabled = !this.syncConfiguredAndLoading && this.isSendableURI(targetURI);
- contextMenu.setItemAttr(showSendPage ? "context-sendpagetodevice" :
- "context-sendlinktodevice",
- "disabled", !enabled || null);
- },
-
// Functions called by observers
onActivityStart() {
clearTimeout(this._syncAnimationTimer);
--- a/browser/components/sessionstore/SessionStore.jsm --- a/browser/components/sessionstore/SessionStore.jsm
+++ b/browser/components/sessionstore/SessionStore.jsm +++ b/browser/components/sessionstore/SessionStore.jsm
@@ -973,8 +973,6 @@ @@ -894,7 +894,6 @@ var SessionStoreInternal = {
SessionStoreInternal._resetLocalTabRestoringState(tab); SessionStoreInternal._resetLocalTabRestoringState(tab);
SessionStoreInternal.restoreNextTab(); SessionStoreInternal.restoreNextTab();
- this._sendTabRestoredNotification(tab, data.isRemotenessUpdate); - this._sendTabRestoredNotification(tab, data.isRemotenessUpdate);
-
Services.obs.notifyObservers(null, "sessionstore-one-or-no-tab-restored");
break; break;
case "SessionStore:crashedTabRevived": case "SessionStore:crashedTabRevived":
@@ -4608,22 +4606,6 @@ // The browser was revived by navigating to a different page
@@ -4272,22 +4271,6 @@ var SessionStoreInternal = {
aWindow.dispatchEvent(event);
}, },
/** - /**
- * Dispatch the SSTabRestored event for the given tab. - * Dispatch the SSTabRestored event for the given tab.
- * @param aTab - * @param aTab
- * The tab which has been restored - * The tab which has been restored
@ -405,181 +76,106 @@
- aTab.dispatchEvent(event); - aTab.dispatchEvent(event);
- }, - },
- -
- /** /**
* @param aWindow * @param aWindow
* Window reference * Window reference
* @returns whether this window's data is still cached in _statesToRestore
--- a/browser/locales/en-US/chrome/browser/accounts.properties --- a/browser/locales/en-US/chrome/browser/accounts.properties
+++ b/browser/locales/en-US/chrome/browser/accounts.properties +++ b/browser/locales/en-US/chrome/browser/accounts.properties
@@ -35,33 +35,6 @@ @@ -35,10 +35,6 @@ syncStartNotification.body2 = %S will begin syncing momentarily.
deviceDisconnectedNotification.title = Sync Disconnected deviceDisconnectedNotification.title = Sync disconnected
deviceDisconnectedNotification.body = This computer has been successfully disconnected from Firefox Sync. deviceDisconnectedNotification.body = This computer has been successfully disconnected from Firefox Sync.
-# LOCALIZATION NOTE (sendToAllDevices.menuitem) -# LOCALIZATION NOTE (sendTabToAllDevices.menuitem)
-# Displayed in the Send Tab/Page/Link to Device context menu when right clicking a tab, a page or a link. -# Displayed in the Send Tabs context menu when right clicking a tab, a page or a link.
-sendToAllDevices.menuitem = Send to All Devices -sendTabToAllDevices.menuitem = All Devices
-
-# LOCALIZATION NOTE (sendTabToDevice.unconfigured, sendTabToDevice.unconfigured.status)
-# Displayed in the Send Tabs context menu when right clicking a tab, a page or a link
-# and the Sync account is unconfigured. Redirects to a marketing page.
-sendTabToDevice.unconfigured.status = Not Connected to Sync
-sendTabToDevice.unconfigured = Learn About Sending Tabs…
-
-# LOCALIZATION NOTE (sendTabToDevice.signintosync)
-# Displayed in the Send Tabs context menu and the page action panel when sync is not
-# configured. Allows users to immediately sign into sync via the preferences.
-sendTabToDevice.signintosync = Sign in to Sync…
-
-# LOCALIZATION NOTE (sendTabToDevice.singledevice, sendTabToDevice.singledevice.status)
-# Displayed in the Send Tabs context menu when right clicking a tab, a page or a link
-# and the Sync account has only 1 device. Redirects to a marketing page.
-sendTabToDevice.singledevice.status = No Devices Connected
-sendTabToDevice.singledevice = Learn About Sending Tabs…
-
-# LOCALIZATION NOTE (sendTabToDevice.verify, sendTabToDevice.verify.status)
-# Displayed in the Send Tabs context menu when right clicking a tab, a page or a link
-# and the Sync account is unverified. Redirects to the Sync preferences page.
-sendTabToDevice.verify.status = Account Not Verified
-sendTabToDevice.verify = Verify Your Account…
- -
# LOCALIZATION NOTE (tabArrivingNotification.title, tabArrivingNotificationWithDevice.title, # LOCALIZATION NOTE (tabArrivingNotification.title, tabArrivingNotificationWithDevice.title,
# multipleTabsArrivingNotification.title, unnamedTabsArrivingNotification2.body, # tabsArrivingNotification.title, unnamedTabsArrivingNotification2.body,
# unnamedTabsArrivingNotificationMultiple2.body, unnamedTabsArrivingNotificationNoDevice.body) # unnamedTabsArrivingNotificationMultiple2.body, unnamedTabsArrivingNotificationNoDevice.body)
--- a/browser/base/content/test/general/browser_contextmenu.js diff --git a/browser/base/content/browser-fxaccounts.js b/browser/base/content/browser-fxaccounts.js
+++ b/browser/base/content/test/general/browser_contextmenu.js index 0bbce3e..205e28b 100644
@@ -44,8 +44,6 @@ --- a/browser/base/content/browser-fxaccounts.js
...(hasPocket ? ["context-savelinktopocket", true] : []), +++ b/browser/base/content/browser-fxaccounts.js
"context-copylink", true, @@ -371,81 +371,13 @@ var gFxAccounts = {
"context-searchselect", true,
- "---", null,
- "context-sendlinktodevice", true, [], null,
]
);
@@ -97,8 +95,6 @@
"context-savepage", true,
...(hasPocket ? ["context-pocket", true] : []),
"---", null,
- "context-sendpagetodevice", true, [], null,
- "---", null,
"context-viewbgimage", false,
"context-selectall", true,
"---", null,
@@ -125,8 +121,6 @@
...(hasPocket ? ["context-savelinktopocket", true] : []),
"context-copylink", true,
"context-searchselect", true,
- "---", null,
- "context-sendlinktodevice", true, [], null,
]
);
});
@@ -268,8 +262,6 @@
"context-savepage", true,
...(hasPocket ? ["context-pocket", true] : []),
"---", null,
- "context-sendpagetodevice", true, [], null,
- "---", null,
"context-viewbgimage", false,
"context-selectall", true,
"frame", null,
@@ -572,8 +564,6 @@
"context-savepage", true,
...(hasPocket ? ["context-pocket", true] : []),
"---", null,
- "context-sendpagetodevice", true, [], null,
- "---", null,
"context-viewbgimage", false,
"context-selectall", true,
"---", null,
@@ -606,8 +596,6 @@
"context-savepage", true,
...(hasPocket ? ["context-pocket", true] : []),
"---", null,
- "context-sendpagetodevice", true, [], null,
- "---", null,
"context-viewbgimage", false,
"context-selectall", true,
"---", null,
@@ -655,8 +643,6 @@
"context-savepage", true,
...(hasPocket ? ["context-pocket", true] : []),
"---", null,
- "context-sendpagetodevice", true, [], null,
- "---", null,
"context-viewbgimage", false,
"context-selectall", true,
"---", null,
@@ -704,7 +690,6 @@
"---", null,
"context-searchselect", true,
"---", null,
- "context-sendlinktodevice", true, [], null,
"context-viewpartialsource-selection", true
],
{
@@ -746,8 +731,6 @@
"context-sendimage", true,
"context-setDesktopBackground", true,
"context-viewimageinfo", true,
- "---", null,
- "context-sendlinktodevice", true, [], null,
]
);
});
@@ -840,8 +823,6 @@
"context-savepage", true,
...(hasPocket ? ["context-pocket", true] : []),
"---", null,
- "context-sendpagetodevice", true, [], null,
- "---", null,
"context-viewbgimage", false,
"context-selectall", true,
"---", null,
@@ -887,8 +868,6 @@
"context-savepage", true,
...(hasPocket ? ["context-pocket", true] : []),
"---", null,
- "context-sendpagetodevice", true, [], null,
- "---", null,
"context-viewbgimage", false,
"context-selectall", true,
"frame", null,
@@ -940,8 +919,6 @@
...(hasPocket ? ["context-savelinktopocket", true] : []),
"context-copylink", true,
"context-searchselect", true,
- "---", null,
- "context-sendlinktodevice", true, [], null,
]
);
@@ -959,8 +936,6 @@
...(hasPocket ? ["context-savelinktopocket", true] : []),
"context-copylink", true,
"context-searchselect", true,
- "---", null,
- "context-sendlinktodevice", true, [], null,
]
);
@@ -978,8 +953,6 @@
...(hasPocket ? ["context-savelinktopocket", true] : []),
"context-copylink", true,
"context-searchselect", true,
- "---", null,
- "context-sendlinktodevice", true, [], null,
]
);
});
--- a/browser/base/content/nsContextMenu.js
+++ b/browser/base/content/nsContextMenu.js
@@ -738,7 +738,6 @@
}, },
initSyncItems() { sendTabToDevice: function (url, clientId, title) {
- gSync.updateContentContextMenu(this); - Weave.Service.clientsEngine.sendURIToClientForDisplay(url, clientId, title);
}, },
openPasswordManager() { populateSendTabToDevicesMenu: function (devicesPopup, url, title) {
- // remove existing menu items
- while (devicesPopup.hasChildNodes()) {
- devicesPopup.removeChild(devicesPopup.firstChild);
- }
-
- const fragment = document.createDocumentFragment();
-
- const onTargetDeviceCommand = (event) => {
- const clientId = event.target.getAttribute("clientId");
- const clients = clientId
- ? [clientId]
- : this.remoteClients.map(client => client.id);
-
- clients.forEach(clientId => this.sendTabToDevice(url, clientId, title));
- }
-
- function addTargetDevice(clientId, name) {
- const targetDevice = document.createElement("menuitem");
- targetDevice.addEventListener("command", onTargetDeviceCommand, true);
- targetDevice.setAttribute("class", "sendtab-target");
- targetDevice.setAttribute("clientId", clientId);
- targetDevice.setAttribute("label", name);
- fragment.appendChild(targetDevice);
- }
-
- const clients = this.remoteClients;
- for (let client of clients) {
- addTargetDevice(client.id, client.name);
- }
-
- // "All devices" menu item
- if (clients.length > 1) {
- const separator = document.createElement("menuseparator");
- fragment.appendChild(separator);
- const allDevicesLabel = this.strings.GetStringFromName("sendTabToAllDevices.menuitem");
- addTargetDevice("", allDevicesLabel);
- }
-
- devicesPopup.appendChild(fragment);
},
updateTabContextMenu: function (aPopupMenu) {
- if (!this.sendTabToDeviceEnabled) {
- return;
- }
-
- const remoteClientPresent = this.remoteClients.length > 0;
- ["context_sendTabToDevice", "context_sendTabToDevice_separator"]
- .forEach(id => { document.getElementById(id).hidden = !remoteClientPresent });
},
-
- initPageContextMenu: function (contextMenu) {
- if (!this.sendTabToDeviceEnabled) {
- return;
- }
-
- const remoteClientPresent = this.remoteClients.length > 0;
- // showSendLink and showSendPage are mutually exclusive
- const showSendLink = remoteClientPresent
- && (contextMenu.onSaveableLink || contextMenu.onPlainTextLink);
- const showSendPage = !showSendLink && remoteClientPresent
- && !(contextMenu.isContentSelected ||
- contextMenu.onImage || contextMenu.onCanvas ||
- contextMenu.onVideo || contextMenu.onAudio ||
- contextMenu.onLink || contextMenu.onTextInput);
-
- ["context-sendpagetodevice", "context-sep-sendpagetodevice"]
- .forEach(id => contextMenu.showItem(id, showSendPage));
- ["context-sendlinktodevice", "context-sep-sendlinktodevice"]
- .forEach(id => contextMenu.showItem(id, showSendLink));
- }
};
XPCOMUtils.defineLazyGetter(gFxAccounts, "FxAccountsCommon", function () {

View File

@ -1,15 +1,37 @@
--- a/browser/modules/DirectoryLinksProvider.jsm --- a/browser/modules/DirectoryLinksProvider.jsm
+++ b/browser/modules/DirectoryLinksProvider.jsm +++ b/browser/modules/DirectoryLinksProvider.jsm
@@ -86,7 +86,7 @@ var DirectoryLinksProvider = { @@ -189,30 +189,6 @@ var DirectoryLinksProvider = {
* @return the selected locale or "en-US" if none is selected * @return the selected locale or "en-US" if none is selected
*/ */
get locale() { get locale() {
- return Services.locale.getRequestedLocale() || "en-US"; - let matchOS;
+ return "en-US"; - try {
- matchOS = Services.prefs.getBoolPref(PREF_MATCH_OS_LOCALE);
- }
- catch (e) {}
-
- if (matchOS) {
- return Services.locale.getLocaleComponentForUserAgent();
- }
-
- try {
- let locale = Services.prefs.getComplexValue(PREF_SELECTED_LOCALE,
- Ci.nsIPrefLocalizedString);
- if (locale) {
- return locale.data;
- }
- }
- catch (e) {}
-
- try {
- return Services.prefs.getCharPref(PREF_SELECTED_LOCALE);
- }
- catch (e) {}
-
return "en-US";
}, },
/** @@ -283,13 +259,6 @@ var DirectoryLinksProvider = {
@@ -138,13 +138,6 @@ var DirectoryLinksProvider = {
}, },
_fetchAndCacheLinks: function DirectoryLinksProvider_fetchAndCacheLinks(uri) { _fetchAndCacheLinks: function DirectoryLinksProvider_fetchAndCacheLinks(uri) {
@ -23,11 +45,11 @@
}, },
/** /**
@@ -153,33 +146,6 @@ var DirectoryLinksProvider = { @@ -298,33 +267,6 @@ var DirectoryLinksProvider = {
* @return promise resolved to json string, "{}" returned if status != 200 * @return promise resolved to json string, "{}" returned if status != 200
*/ */
_downloadJsonData: function DirectoryLinksProvider__downloadJsonData(uri) { _downloadJsonData: function DirectoryLinksProvider__downloadJsonData(uri) {
- return new Promise((resolve, reject) => { - let deferred = Promise.defer();
- let xmlHttp = this._newXHR(); - let xmlHttp = this._newXHR();
- -
- xmlHttp.onload = function(aResponse) { - xmlHttp.onload = function(aResponse) {
@ -35,11 +57,11 @@
- if (this.status && this.status != 200) { - if (this.status && this.status != 200) {
- json = "{}"; - json = "{}";
- } - }
- resolve(json); - deferred.resolve(json);
- }; - };
- -
- xmlHttp.onerror = function(e) { - xmlHttp.onerror = function(e) {
- reject("Fetching " + uri + " results in error code: " + e.target.status); - deferred.reject("Fetching " + uri + " results in error code: " + e.target.status);
- }; - };
- -
- try { - try {
@ -50,24 +72,24 @@
- xmlHttp.setRequestHeader("Content-Type", DIRECTORY_LINKS_TYPE); - xmlHttp.setRequestHeader("Content-Type", DIRECTORY_LINKS_TYPE);
- xmlHttp.send(); - xmlHttp.send();
- } catch (e) { - } catch (e) {
- reject("Error fetching " + uri); - deferred.reject("Error fetching " + uri);
- Cu.reportError(e); - Cu.reportError(e);
- } - }
- }); - return deferred.promise;
}, },
/** /**
@@ -187,30 +187,6 @@ @@ -332,30 +274,6 @@ var DirectoryLinksProvider = {
* @return promise resolved immediately if no download needed, or upon completion * @return promise resolved immediately if no download needed, or upon completion
*/ */
_fetchAndCacheLinksIfNecessary: function DirectoryLinksProvider_fetchAndCacheLinksIfNecessary(forceDownload = false) { _fetchAndCacheLinksIfNecessary: function DirectoryLinksProvider_fetchAndCacheLinksIfNecessary(forceDownload=false) {
- if (this._downloadDeferred) { - if (this._downloadDeferred) {
- // fetching links already - just return the promise - // fetching links already - just return the promise
- return this._downloadDeferred.promise; - return this._downloadDeferred.promise;
- } - }
- -
- if (forceDownload || this._needsDownload) { - if (forceDownload || this._needsDownload) {
- this._downloadDeferred = PromiseUtils.defer(); - this._downloadDeferred = Promise.defer();
- this._fetchAndCacheLinks(this._linksURL).then(() => { - this._fetchAndCacheLinks(this._linksURL).then(() => {
- // the new file was successfully downloaded and cached, so update a timestamp - // the new file was successfully downloaded and cached, so update a timestamp
- this._lastDownloadMS = Date.now(); - this._lastDownloadMS = Date.now();
@ -88,9 +110,3 @@
}, },
/** /**
@@ -376,3 +318,4 @@ var DirectoryLinksProvider = {
this._observers.clear();
}
};
+

View File

@ -1,6 +1,6 @@
--- a/browser/moz.build 2017-11-02 --- a/browser/moz.build
+++ b/browser/moz.build 2017-11-21 +++ b/browser/moz.build
@@ -11,12 +11,10 @@ @@ -11,12 +11,10 @@ SPHINX_TREES['browser'] = 'docs'
DIRS += [ DIRS += [
'base', 'base',
'components', 'components',
@ -13,7 +13,7 @@
] ]
DIRS += [ DIRS += [
@@ -27,7 +25,6 @@ @@ -27,7 +25,6 @@ if CONFIG['MAKENSISU']:
DIRS += ['installer/windows'] DIRS += ['installer/windows']
TEST_DIRS += [ TEST_DIRS += [
@ -21,10 +21,3 @@
] ]
DIST_SUBDIR = 'browser' DIST_SUBDIR = 'browser'
--- a/browser/app/Makefile.in
+++ b/browser/app/Makefile.in
@@ -107,4 +107,3 @@
.PHONY: features
tools features::
- $(PYTHON) -c 'import os, json; listing = {"system": os.listdir("$(DIST)/bin/browser/features")}; print json.dumps(listing)' > $(DIST)/bin/browser/chrome/browser/content/browser/built_in_addons.json

View File

@ -1,6 +1,6 @@
--- a/browser/confvars.sh --- a/browser/confvars.sh
+++ b/browser/confvars.sh +++ b/browser/confvars.sh
@@ -67,3 +67,7 @@ @@ -62,3 +62,7 @@ MOZ_ADDON_SIGNING=1
# Include the DevTools client, not just the server (which is the default) # Include the DevTools client, not just the server (which is the default)
MOZ_DEVTOOLS=all MOZ_DEVTOOLS=all

30
mitigate-spectre.patch Normal file
View File

@ -0,0 +1,30 @@
--- a/dom/performance/Performance.cpp
+++ b/dom/performance/Performance.cpp
@@ -228,10 +228,10 @@ Performance::ClearResourceTimings()
DOMHighResTimeStamp
Performance::RoundTime(double aTime) const
{
- // Round down to the nearest 5us, because if the timer is too accurate people
+ // Round down to the nearest 20us, because if the timer is too accurate people
// can do nasty timing attacks with it. See similar code in the worker
// Performance implementation.
- const double maxResolutionMs = 0.005;
+ const double maxResolutionMs = 0.020;
return floor(aTime / maxResolutionMs) * maxResolutionMs;
}
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -1284,12 +1284,7 @@ pref("javascript.options.mem.gc_max_empty_chunk_count", 30);
pref("javascript.options.showInConsole", false);
-#ifdef RELEASE_OR_BETA
-// Disabled in Beta and Release for now, see bug 1225406
pref("javascript.options.shared_memory", false);
-#else
-pref("javascript.options.shared_memory", true);
-#endif
pref("javascript.options.throw_on_debuggee_would_run", false);
pref("javascript.options.dump_stack_on_debuggee_would_run", false);

View File

@ -1,15 +1,26 @@
--- a/browser/app/profile/firefox.js --- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js
@@ -244,7 +244,7 @@ @@ -189,8 +189,8 @@ pref("browser.uitour.readerViewTrigger", "^https:\\/\\/www\\.mozilla\\.org\\/[^\
pref("browser.touchmode.auto", true); // How long to show a Hearbeat survey (two hours, in seconds)
pref("browser.uitour.surveyDuration", 7200);
-pref("browser.customizemode.tip0.shown", false);
-pref("browser.customizemode.tip0.learnMoreUrl", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/customize");
+pref("browser.customizemode.tip0.shown", true);
+pref("browser.customizemode.tip0.learnMoreUrl", "");
pref("keyword.enabled", true);
pref("browser.fixup.domainwhitelist.localhost", true);
@@ -206,7 +206,7 @@ pref("general.autoScroll", true);
#endif
// At startup, check if we're the default browser and prompt user if not. // At startup, check if we're the default browser and prompt user if not.
-pref("browser.shell.checkDefaultBrowser", true); -pref("browser.shell.checkDefaultBrowser", true);
+pref("browser.shell.checkDefaultBrowser", false); +pref("browser.shell.checkDefaultBrowser", false);
pref("browser.shell.shortcutFavicons",true); pref("browser.shell.shortcutFavicons",true);
pref("browser.shell.mostRecentDateSetAsDefault", ""); pref("browser.shell.mostRecentDateSetAsDefault", "");
pref("browser.shell.skipDefaultBrowserCheckOnFirstRun", true); #ifdef RELEASE_OR_BETA
@@ -254,7 +254,7 @@ @@ -220,7 +220,7 @@ pref("browser.defaultbrowser.notificationbar", false);
// 0 = blank, 1 = home (browser.startup.homepage), 2 = last visited page, 3 = resume previous browser session // 0 = blank, 1 = home (browser.startup.homepage), 2 = last visited page, 3 = resume previous browser session
// The behavior of option 3 is detailed at: http://wiki.mozilla.org/Session_Restore // The behavior of option 3 is detailed at: http://wiki.mozilla.org/Session_Restore
@ -17,26 +28,26 @@
+pref("browser.startup.page", 0); +pref("browser.startup.page", 0);
pref("browser.startup.homepage", "chrome://branding/locale/browserconfig.properties"); pref("browser.startup.homepage", "chrome://branding/locale/browserconfig.properties");
// Whether we should skip the homepage when opening the first-run page // Whether we should skip the homepage when opening the first-run page
pref("browser.startup.firstrunSkipsHomepage", true); pref("browser.startup.firstrunSkipsHomepage", false);
@@ -318,7 +318,7 @@ @@ -294,7 +294,7 @@ pref("browser.urlbar.suggest.history", true);
pref("browser.urlbar.suggest.bookmark", true); pref("browser.urlbar.suggest.bookmark", true);
pref("browser.urlbar.suggest.openpage", true); pref("browser.urlbar.suggest.openpage", true);
pref("browser.urlbar.suggest.searches", true); pref("browser.urlbar.suggest.searches", false);
-pref("browser.urlbar.userMadeSearchSuggestionsChoice", false); -pref("browser.urlbar.userMadeSearchSuggestionsChoice", false);
+pref("browser.urlbar.userMadeSearchSuggestionsChoice", true); +pref("browser.urlbar.userMadeSearchSuggestionsChoice", true);
// The suggestion opt-in notification will be shown on 4 different days. // 4 here means the suggestion notification will be automatically
// hidden the 4th day, so it will actually be shown on 3 different days.
pref("browser.urlbar.daysBeforeHidingSuggestionsPrompt", 4); pref("browser.urlbar.daysBeforeHidingSuggestionsPrompt", 4);
pref("browser.urlbar.lastSuggestionsPromptDate", 20160601); @@ -344,7 +344,7 @@ pref("browser.download.showPanelDropmarker", true);
@@ -363,7 +363,7 @@
pref("browser.download.animateNotifications", true); pref("browser.download.animateNotifications", true);
// This records whether or not the panel has been shown at least once. // This records whether or not the panel has been shown at least once.
-pref("browser.download.panel.shown", false); -pref("browser.download.panel.shown", false);
+pref("browser.download.panel.shown", true); +pref("browser.download.panel.shown", true);
// This controls whether the button is automatically shown/hidden depending #ifndef XP_MACOSX
// on whether there are downloads to show. pref("browser.helperApps.deleteTempFileOnExit", true);
@@ -415,7 +415,7 @@ @@ -389,7 +389,7 @@ pref("browser.search.reset.enabled", true);
pref("browser.sessionhistory.max_entries", 50); pref("browser.sessionhistory.max_entries", 50);
// Built-in default permissions. // Built-in default permissions.
@ -45,7 +56,7 @@
// handle links targeting new windows // handle links targeting new windows
// 1=current window/tab, 2=new window, 3=new tab in most recent window // 1=current window/tab, 2=new window, 3=new tab in most recent window
@@ -445,7 +445,7 @@ @@ -419,7 +419,7 @@ pref("browser.link.open_newwindow.disabled_in_fullscreen", false);
// Tabbed browser // Tabbed browser
pref("browser.tabs.closeWindowWithLastTab", true); pref("browser.tabs.closeWindowWithLastTab", true);
pref("browser.tabs.insertRelatedAfterCurrent", true); pref("browser.tabs.insertRelatedAfterCurrent", true);
@ -54,7 +65,7 @@
pref("browser.tabs.warnOnCloseOtherTabs", true); pref("browser.tabs.warnOnCloseOtherTabs", true);
pref("browser.tabs.warnOnOpen", true); pref("browser.tabs.warnOnOpen", true);
pref("browser.tabs.maxOpenBeforeWarn", 15); pref("browser.tabs.maxOpenBeforeWarn", 15);
@@ -636,7 +636,7 @@ @@ -596,7 +596,7 @@ pref("browser.xul.error_pages.enabled", true);
pref("browser.xul.error_pages.expert_bad_cert", false); pref("browser.xul.error_pages.expert_bad_cert", false);
// Enable captive portal detection. // Enable captive portal detection.
@ -63,7 +74,22 @@
// If true, network link events will change the value of navigator.onLine // If true, network link events will change the value of navigator.onLine
pref("network.manage-offline-status", true); pref("network.manage-offline-status", true);
@@ -1240,7 +1240,7 @@ @@ -774,7 +774,7 @@ pref("browser.geolocation.warning.infoURL", "https://www.mozilla.org/%LOCALE%/fi
pref("browser.EULA.version", 3);
pref("browser.rights.version", 3);
-pref("browser.rights.3.shown", false);
+pref("browser.rights.3.shown", true);
#ifdef DEBUG
// Don't show the about:rights notification in debug builds.
@@ -1150,18 +1150,18 @@ pref("browser.menu.showCharacterEncoding", "chrome://browser/locale/browser.prop
pref("prompts.tab_modal.enabled", true);
// Activates preloading of the new tab url.
-pref("browser.newtab.preload", true);
+pref("browser.newtab.preload", false);
// Remembers if the about:newtab intro has been shown // Remembers if the about:newtab intro has been shown
// NOTE: This preference is unused but was not removed in case // NOTE: This preference is unused but was not removed in case
// this information will be valuable in the future. // this information will be valuable in the future.
@ -71,80 +97,150 @@
+pref("browser.newtabpage.introShown", true); +pref("browser.newtabpage.introShown", true);
// Toggles the content of 'about:newtab'. Shows the grid when enabled. // Toggles the content of 'about:newtab'. Shows the grid when enabled.
pref("browser.newtabpage.enabled", true); -pref("browser.newtabpage.enabled", true);
@@ -1264,11 +1264,11 @@ +pref("browser.newtabpage.enabled", false);
pref("browser.newtabpage.directory.source", "https://tiles.services.mozilla.com/v3/links/fetch/%LOCALE%/%CHANNEL%");
// activates Activity Stream // Toggles the enhanced content of 'about:newtab'. Shows sponsored tiles.
-pref("browser.newtabpage.activity-stream.enabled", true); -sticky_pref("browser.newtabpage.enhanced", true);
-pref("browser.newtabpage.activity-stream.prerender", true); +sticky_pref("browser.newtabpage.enhanced", false);
-pref("browser.newtabpage.activity-stream.aboutHome.enabled", true);
+pref("browser.newtabpage.activity-stream.enabled", false);
+pref("browser.newtabpage.activity-stream.prerender", false);
+pref("browser.newtabpage.activity-stream.aboutHome.enabled", false);
-pref("browser.library.activity-stream.enabled", true); // enables Activity Stream inspired layout
+pref("browser.library.activity-stream.enabled", false); pref("browser.newtabpage.compact", false);
@@ -1176,10 +1176,10 @@ pref("browser.newtabpage.rows", 3);
pref("browser.newtabpage.columns", 5);
// Enable the DOM fullscreen API. // directory tiles download URL
pref("full-screen-api.enabled", true); -pref("browser.newtabpage.directory.source", "https://tiles.services.mozilla.com/v3/links/fetch/%LOCALE%/%CHANNEL%");
@@ -1330,7 +1330,7 @@ +pref("browser.newtabpage.directory.source", "");
// Some of these prefs are specified even though they are redundant; they are
// here for clarity and end-user experiments. // endpoint to send newtab click and view pings
#ifndef EARLY_BETA_OR_EARLIER -pref("browser.newtabpage.directory.ping", "https://tiles.services.mozilla.com/v3/links/");
+pref("browser.newtabpage.directory.ping", "");
// activates the remote-hosted newtab page
pref("browser.newtabpage.remote", false);
@@ -1207,10 +1207,10 @@ pref("toolkit.startup.max_resumed_crashes", 3);
// Completely disable pdf.js as an option to preview pdfs within firefox.
// Note: if this is not disabled it does not necessarily mean pdf.js is the pdf
// handler just that it is an option.
-pref("pdfjs.disabled", false);
+pref("pdfjs.disabled", true);
// Used by pdf.js to know the first time firefox is run with it installed so it
// can become the default pdf viewer.
-pref("pdfjs.firstRun", true);
+pref("pdfjs.firstRun", false);
// The values of preferredAction and alwaysAskBeforeHandling before pdf.js
// became the default.
pref("pdfjs.previousHandler.preferredAction", 0);
@@ -1248,38 +1248,11 @@ pref("plain_text.wrap_long_lines", true);
// before content.
pref("dom.debug.propagate_gesture_events_through_content", false);
-// The request URL of the GeoLocation backend.
-#ifdef RELEASE_OR_BETA
-pref("geo.wifi.uri", "https://www.googleapis.com/geolocation/v1/geolocate?key=%GOOGLE_API_KEY%"); -pref("geo.wifi.uri", "https://www.googleapis.com/geolocation/v1/geolocate?key=%GOOGLE_API_KEY%");
+pref("geo.wifi.uri", ""); -#else
#ifdef XP_MACOSX
pref("geo.provider.use_corelocation", false);
@@ -1347,20 +1347,20 @@
#else
// Geolocation preferences for Nightly/Aurora/Beta.
-pref("geo.wifi.uri", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%"); -pref("geo.wifi.uri", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
-#endif
-
-#ifdef XP_MACOSX
-#ifdef RELEASE_OR_BETA
+pref("geo.wifi.uri", ""); +pref("geo.wifi.uri", "");
pref("geo.provider.use_corelocation", false);
#ifdef XP_MACOSX -#else
-pref("geo.provider.use_corelocation", true); -pref("geo.provider.use_corelocation", true);
+pref("geo.provider.use_corelocation", false); -#endif
#endif -#endif
-
// The native Windows location provider is only enabled in Nightly and likely to -#ifdef XP_WIN
// be unstable. Set to false if things are really broken. pref("geo.provider.ms-windows-location", false);
#if defined(XP_WIN) && defined(NIGHTLY_BUILD) -#endif
-pref("geo.provider.ms-windows-location", true); -
+pref("geo.provider.ms-windows-location", false); -#ifdef MOZ_WIDGET_GTK
#endif -#ifdef MOZ_GPSD
-#ifdef RELEASE_OR_BETA
#if defined(MOZ_WIDGET_GTK) && defined(MOZ_GPSD) pref("geo.provider.use_gpsd", false);
-#else
-pref("geo.provider.use_gpsd", true); -pref("geo.provider.use_gpsd", true);
+pref("geo.provider.use_gpsd", false); -#endif
-#endif
-#endif
-
-// Necko IPC security checks only needed for app isolation for cookies/cache/etc:
-// currently irrelevant for desktop e10s
-pref("network.disable.ipc.security", true);
+pref("network.disable.ipc.security", false);
// CustomizableUI debug logging.
pref("browser.uiCustomization.debug", false);
@@ -1323,8 +1296,8 @@ pref("identity.sync.tokenserver.uri", "https://token.services.mozilla.com/1.0/sy
// URLs for promo links to mobile browsers. Note that consumers are expected to
// append a value for utm_campaign.
-pref("identity.mobilepromo.android", "https://www.mozilla.org/firefox/android/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_campaign=");
-pref("identity.mobilepromo.ios", "https://www.mozilla.org/firefox/ios/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_campaign=");
+pref("identity.mobilepromo.android", "");
+pref("identity.mobilepromo.ios", "");
// Migrate any existing Firefox Account data from the default profile to the
// Developer Edition profile.
@@ -1340,7 +1313,6 @@ pref("ui.key.menuAccessKeyFocuses", true);
#endif #endif
#endif // Encrypted media extensions.
@@ -1481,32 +1481,32 @@ -#ifdef XP_LINUX
// On Linux EME is visible but disabled by default. This is so that the
// "Play DRM content" checkbox in the Firefox UI is unchecked by default.
// DRM requires downloading and installing proprietary binaries, which
@@ -1349,10 +1321,7 @@ pref("ui.key.menuAccessKeyFocuses", true);
// enable DRM, whereupon the EME plugin binaries will be downloaded if
// permission is granted.
pref("media.eme.enabled", false);
-#else
-pref("media.eme.enabled", true);
-#endif
-pref("media.eme.apiVisible", true);
+pref("media.eme.apiVisible", false);
// Decode using Gecko Media Plugins in <video>, if a system decoder is not
// availble and the preferred GMP is available.
@@ -1366,7 +1335,7 @@ pref("media.gmp.decoder.h264", 2);
// Whether we should run a test-pattern through EME GMPs before assuming they'll
// decode H.264.
-pref("media.gmp.trial-create.enabled", true);
+pref("media.gmp.trial-create.enabled", false);
// Note: when media.gmp-*.visible is true, provided we're running on a
// supported platform/OS version, the corresponding CDM appears in the
@@ -1376,19 +1345,15 @@ pref("media.gmp.trial-create.enabled", true);
// to enable the CDM if its disabled; it's as if the keysystem is completely
// unsupported.
-#ifdef MOZ_ADOBE_EME
pref("media.gmp-eme-adobe.visible", true);
// When Adobe EME is enabled in the build system, we don't actually enable
// the plugin by default, so that it doesn't download and install by default.
// When Adobe EME is first used, Firefox will prompt the user to enable it,
// and then download the CDM.
pref("media.gmp-eme-adobe.enabled", false);
-#endif
-#ifdef MOZ_WIDEVINE_EME
-pref("media.gmp-widevinecdm.visible", true);
-pref("media.gmp-widevinecdm.enabled", true);
-#endif
+pref("media.gmp-widevinecdm.visible", false);
+pref("media.gmp-widevinecdm.enabled", false);
// Play with different values of the decay time and get telemetry,
// 0 means to randomize (and persist) the experiment value in users' profiles,
@@ -1404,25 +1369,21 @@ pref("browser.translation.engine", "bing");
// Telemetry settings. // Telemetry settings.
// Determines if Telemetry pings can be archived locally. // Determines if Telemetry pings can be archived locally.
-pref("toolkit.telemetry.archive.enabled", true); -pref("toolkit.telemetry.archive.enabled", true);
+pref("toolkit.telemetry.archive.enabled", false); +pref("toolkit.telemetry.archive.enabled", false);
// Enables sending the shutdown ping when Firefox shuts down.
-pref("toolkit.telemetry.shutdownPingSender.enabled", true);
+pref("toolkit.telemetry.shutdownPingSender.enabled", false);
// Enables sending the shutdown ping using the pingsender from the first session.
pref("toolkit.telemetry.shutdownPingSender.enabledFirstSession", false);
// Enables sending a duplicate of the first shutdown ping from the first session.
-pref("toolkit.telemetry.firstShutdownPing.enabled", true);
+pref("toolkit.telemetry.firstShutdownPing.enabled", false);
// Enables sending the 'new-profile' ping on new profiles.
-pref("toolkit.telemetry.newProfilePing.enabled", true);
+pref("toolkit.telemetry.newProfilePing.enabled", false);
// Enables sending 'update' pings on Firefox updates.
-pref("toolkit.telemetry.updatePing.enabled", true);
+pref("toolkit.telemetry.updatePing.enabled", false);
// Enables sending 'bhr' pings when the browser hangs.
-pref("toolkit.telemetry.bhrPing.enabled", true);
+pref("toolkit.telemetry.bhrPing.enabled", false);
// Telemetry experiments settings. // Telemetry experiments settings.
-pref("experiments.enabled", true); -pref("experiments.enabled", true);
@ -157,18 +253,22 @@
-pref("experiments.supported", true); -pref("experiments.supported", true);
+pref("experiments.supported", false); +pref("experiments.supported", false);
// Ping Centre Telemetry settings.
-pref("browser.ping-centre.telemetry", true);
+pref("browser.ping-centre.telemetry", false);
pref("browser.ping-centre.log", false);
-pref("browser.ping-centre.staging.endpoint", "https://onyx_tiles.stage.mozaws.net/v3/links/ping-centre");
-pref("browser.ping-centre.production.endpoint", "https://tiles.services.mozilla.com/v3/links/ping-centre");
+pref("browser.ping-centre.staging.endpoint", "");
+pref("browser.ping-centre.production.endpoint", "");
// Enable GMP support in the addon manager. // Enable GMP support in the addon manager.
pref("media.gmp-provider.enabled", true); -pref("media.gmp-provider.enabled", true);
+pref("media.gmp-provider.enabled", false);
-#ifdef NIGHTLY_BUILD
pref("privacy.trackingprotection.ui.enabled", true);
-#else
-pref("privacy.trackingprotection.ui.enabled", false);
-#endif
-pref("privacy.trackingprotection.introCount", 0);
-pref("privacy.trackingprotection.introURL", "https://www.mozilla.org/%LOCALE%/firefox/%VERSION%/tracking-protection/start/");
+pref("privacy.trackingprotection.introCount", 1);
+pref("privacy.trackingprotection.introURL", "");
// Enable Contextual Identity Containers
#ifdef NIGHTLY_BUILD
--- a/browser/branding/official/pref/firefox-branding.js --- a/browser/branding/official/pref/firefox-branding.js
+++ b/browser/branding/official/pref/firefox-branding.js +++ b/browser/branding/official/pref/firefox-branding.js
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
@ -180,20 +280,9 @@
pref("startup.homepage_welcome_url.additional", ""); pref("startup.homepage_welcome_url.additional", "");
// Interval: Time between checks for a new version (in seconds) // Interval: Time between checks for a new version (in seconds)
pref("app.update.interval", 43200); // 12 hours pref("app.update.interval", 43200); // 12 hours
--- a/build/application.ini.in
+++ b/build/application.ini.in
@@ -41,7 +41,7 @@ MaxVersion=@GRE_MILESTONE@
[XRE]
#ifdef MOZ_PROFILE_MIGRATOR
-EnableProfileMigrator=1
+EnableProfileMigrator=0
#endif
#if MOZ_CRASHREPORTER
--- a/modules/libpref/init/all.js --- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js
@@ -31,7 +31,7 @@ @@ -29,7 +29,7 @@ pref("general.useragent.site_specific_overrides", true);
pref("general.config.obscure_value", 13); // for MCD .cfg files pref("general.config.obscure_value", 13); // for MCD .cfg files
@ -202,7 +291,7 @@
// maximum number of dated backups to keep at any time // maximum number of dated backups to keep at any time
pref("browser.bookmarks.max_backups", 5); pref("browser.bookmarks.max_backups", 5);
@@ -456,7 +456,7 @@ @@ -430,7 +430,7 @@ pref("media.navigator.video.use_tmmbr", false);
pref("media.navigator.audio.use_fec", true); pref("media.navigator.audio.use_fec", true);
pref("media.navigator.video.red_ulpfec_enabled", false); pref("media.navigator.video.red_ulpfec_enabled", false);
@ -211,35 +300,44 @@
pref("media.webrtc.debug.trace_mask", 0); pref("media.webrtc.debug.trace_mask", 0);
pref("media.webrtc.debug.multi_log", false); pref("media.webrtc.debug.multi_log", false);
@@ -466,15 +466,15 @@ @@ -438,11 +438,10 @@ pref("media.webrtc.debug.aec_log_dir", "");
pref("media.webrtc.debug.log_file", "");
pref("media.webrtc.debug.aec_dump_max_size", 4194304); // 4MB
pref("media.navigator.video.default_width",0); // adaptive default -#ifdef MOZ_WIDGET_GONK
pref("media.navigator.video.default_height",0); // adaptive default pref("media.navigator.video.default_width", 320);
pref("media.navigator.video.default_height", 240);
-pref("media.peerconnection.enabled", true); -pref("media.peerconnection.enabled", true);
-pref("media.peerconnection.video.enabled", true); -pref("media.peerconnection.video.enabled", true);
+pref("media.peerconnection.enabled", false); +pref("media.peerconnection.enabled", false);
+pref("media.peerconnection.video.enabled", false); +pref("media.peerconnection.video.enabled", false);
pref("media.navigator.video.max_fs", 12288); // Enough for 2048x1536 pref("media.navigator.video.max_fs", 1200); // 640x480 == 1200mb
pref("media.navigator.video.max_fr", 60); pref("media.navigator.video.max_fr", 30);
pref("media.navigator.video.h264.level", 31); // 0x42E01f - level 3.1 pref("media.navigator.video.h264.level", 12); // 0x42E00C - level 1.2
pref("media.navigator.video.h264.max_br", 0); @@ -451,21 +450,7 @@ pref("media.navigator.video.h264.max_mbps", 11880); // CIF@30fps
pref("media.navigator.video.h264.max_mbps", 0);
pref("media.peerconnection.video.h264_enabled", false); pref("media.peerconnection.video.h264_enabled", false);
pref("media.peerconnection.video.vp9_enabled", false);
pref("media.getusermedia.aec", 4);
-#else
-pref("media.navigator.video.default_width",0); // adaptive default
-pref("media.navigator.video.default_height",0); // adaptive default
-pref("media.peerconnection.enabled", true);
-pref("media.peerconnection.video.enabled", true);
-pref("media.navigator.video.max_fs", 12288); // Enough for 2048x1536
-pref("media.navigator.video.max_fr", 60);
-pref("media.navigator.video.h264.level", 31); // 0x42E01f - level 3.1
-pref("media.navigator.video.h264.max_br", 0);
-pref("media.navigator.video.h264.max_mbps", 0);
-pref("media.peerconnection.video.h264_enabled", false);
-pref("media.peerconnection.video.vp9_enabled", true); -pref("media.peerconnection.video.vp9_enabled", true);
+pref("media.peerconnection.video.vp9_enabled", false); -pref("media.getusermedia.aec", 1);
pref("media.getusermedia.aec", 1); -pref("media.getusermedia.browser.enabled", true);
pref("media.getusermedia.browser.enabled", false); -#endif
pref("media.getusermedia.channels", 0); +
@@ -497,7 +497,7 @@ // Gonk typically captures at QVGA, and so min resolution is QQVGA or
pref("media.peerconnection.ice.force_interface", ""); // Limit to only a single interface // 160x120; 100Kbps is plenty for that.
pref("media.peerconnection.ice.relay_only", false); // Limit candidates to TURN // Desktop is typically VGA capture or more; and qm_select will not drop resolution
pref("media.peerconnection.use_document_iceservers", true); @@ -496,7 +481,7 @@ pref("media.peerconnection.ice.proxy_only", false);
-pref("media.peerconnection.identity.enabled", true);
+pref("media.peerconnection.identity.enabled", false);
pref("media.peerconnection.identity.timeout", 10000);
pref("media.peerconnection.ice.stun_client_maximum_transmits", 7);
pref("media.peerconnection.ice.trickle_grace_period", 5000);
@@ -508,7 +508,7 @@
// These values (aec, agc, and noice) are from media/webrtc/trunk/webrtc/common_types.h // These values (aec, agc, and noice) are from media/webrtc/trunk/webrtc/common_types.h
// kXxxUnchanged = 0, kXxxDefault = 1, and higher values are specific to each // kXxxUnchanged = 0, kXxxDefault = 1, and higher values are specific to each
// setting (for Xxx = Ec, Agc, or Ns). Defaults are all set to kXxxDefault here. // setting (for Xxx = Ec, Agc, or Ns). Defaults are all set to kXxxDefault here.
@ -248,25 +346,25 @@
#if defined(MOZ_WEBRTC_HARDWARE_AEC_NS) #if defined(MOZ_WEBRTC_HARDWARE_AEC_NS)
pref("media.getusermedia.aec_enabled", false); pref("media.getusermedia.aec_enabled", false);
pref("media.getusermedia.noise_enabled", false); pref("media.getusermedia.noise_enabled", false);
@@ -933,7 +933,7 @@ @@ -850,7 +835,7 @@ pref("canvas.imagebitmap_extensions.enabled", false);
// //
// Values are -1 always on. 1 always off, 0 is auto as some platform perform // Values are -1 always on. 1 always off, 0 is auto as some platform perform
// further checks. // further checks.
-pref("accessibility.force_disabled", 0); -pref("accessibility.force_disabled", 0);
+pref("accessibility.force_disabled", 1); +pref("accessibility.force_disabled", 1);
pref("accessibility.AOM.enabled", false); pref("accessibility.ipc_architecture.enabled", true);
@@ -1381,7 +1381,7 @@ @@ -1210,7 +1195,7 @@ pref("privacy.popups.disable_from_plugins", 2);
// the popup will be called when the popup is dismissed. // send "do not track" HTTP header, disabled by default
pref("privacy.permissionPrompts.showCloseButton", false); pref("privacy.donottrackheader.enabled", false);
// Enforce tracking protection in all modes // Enforce tracking protection in all modes
-pref("privacy.trackingprotection.enabled", false); -pref("privacy.trackingprotection.enabled", false);
+pref("privacy.trackingprotection.enabled", true); +pref("privacy.trackingprotection.enabled", true);
// Enforce tracking protection in Private Browsing mode // Enforce tracking protection in Private Browsing mode
pref("privacy.trackingprotection.pbmode.enabled", true); pref("privacy.trackingprotection.pbmode.enabled", true);
// Annotate channels based on the tracking protection list in all modes
@@ -1757,7 +1757,7 @@ @@ -1523,7 +1508,7 @@ pref("network.http.network-changed.timeout", 5);
// The maximum number of current global half open sockets allowable // The maximum number of current global half open sockets allowable
// when starting a new speculative connection. // when starting a new speculative connection.
@ -275,7 +373,7 @@
// Whether or not to block requests for non head js/css items (e.g. media) // Whether or not to block requests for non head js/css items (e.g. media)
// while those elements load. // while those elements load.
@@ -2066,7 +2066,7 @@ @@ -1826,7 +1811,7 @@ pref("network.dns.get-ttl", true);
pref("network.dnsCacheExpirationGracePeriod", 60); pref("network.dnsCacheExpirationGracePeriod", 60);
// This preference can be used to turn off DNS prefetch. // This preference can be used to turn off DNS prefetch.
@ -284,16 +382,16 @@
// This preference controls whether .onion hostnames are // This preference controls whether .onion hostnames are
// rejected before being given to DNS. RFC 7686 // rejected before being given to DNS. RFC 7686
@@ -2105,7 +2105,7 @@ @@ -1859,7 +1844,7 @@ pref("network.ftp.idleConnectionTimeout", 300);
pref("network.dir.format", 2);
// enables the prefetch service (i.e., prefetching of <link rel="next"> and // enables the prefetch service (i.e., prefetching of <link rel="next"> URLs).
// <link rel="prefetch"> URLs).
-pref("network.prefetch-next", true); -pref("network.prefetch-next", true);
+pref("network.prefetch-next", false); +pref("network.prefetch-next", false);
// enables the preloading (i.e., preloading of <link rel="preload"> URLs).
pref("network.preload", false);
@@ -2616,7 +2616,7 @@ // enables the predictive service
pref("network.predictor.enabled", true);
@@ -2179,7 +2164,7 @@ pref("security.view-source.reachable-from-inner-protocol", false);
pref("services.settings.server", "https://firefox.settings.services.mozilla.com/v1"); pref("services.settings.server", "https://firefox.settings.services.mozilla.com/v1");
// Blocklist preferences // Blocklist preferences
@ -302,25 +400,62 @@
// OneCRL freshness checking depends on this value, so if you change it, // OneCRL freshness checking depends on this value, so if you change it,
// please also update security.onecrl.maximum_staleness_in_seconds. // please also update security.onecrl.maximum_staleness_in_seconds.
pref("extensions.blocklist.interval", 86400); pref("extensions.blocklist.interval", 86400);
@@ -4614,7 +4614,7 @@ @@ -4370,7 +4355,7 @@ pref("font.name.monospace.x-unicode", "dt-interface user-ucs2.cjk_japan-0");
// Login Manager prefs
pref("signon.rememberSignons", true);
pref("signon.rememberSignons.visibilityToggle", true);
-pref("signon.autofillForms", true);
+pref("signon.autofillForms", false);
pref("signon.autofillForms.http", false);
pref("signon.autologin.proxy", false);
pref("signon.formlessCapture.enabled", true);
@@ -4383,7 +4368,7 @@ pref("signon.masterPasswordReprompt.timeout_ms", 900000); // 15 Minutes
// Satchel (Form Manager) prefs // Satchel (Form Manager) prefs
pref("browser.formfill.debug", false); pref("browser.formfill.debug", false);
-pref("browser.formfill.enable", true); -pref("browser.formfill.enable", true);
+pref("browser.formfill.enable", false); +pref("browser.formfill.enable", false);
pref("browser.formfill.expire_days", 180); pref("browser.formfill.expire_days", 180);
pref("browser.formfill.saveHttpsForms", true);
pref("browser.formfill.agedWeight", 2); pref("browser.formfill.agedWeight", 2);
pref("browser.formfill.bucketSize", 1); @@ -4483,7 +4468,7 @@ pref("gl.multithreaded", true);
@@ -4738,7 +4738,7 @@ pref("gl.ignore-dx-interop2-blacklist", false);
pref("webgl.1.allow-core-profiles", false);
#endif
pref("webgl.force-enabled", false); pref("webgl.force-enabled", false);
-pref("webgl.disabled", false); -pref("webgl.disabled", false);
+pref("webgl.disabled", true); +pref("webgl.disabled", true);
pref("webgl.disable-angle", false); pref("webgl.disable-angle", false);
pref("webgl.disable-wgl", false); pref("webgl.disable-wgl", false);
pref("webgl.min_capability_mode", false); pref("webgl.min_capability_mode", false);
@@ -4952,13 +4952,13 @@ @@ -4504,26 +4489,11 @@ pref("webgl.disable-DOM-blit-uploads", false);
pref("webgl.allow-fb-invalidation", false);
pref("webgl.webgl2-compat-mode", false);
-pref("webgl.enable-webgl2", true);
-
-#ifdef RELEASE_OR_BETA
-// Keep this disabled on Release and Beta for now. (see bug 1171228)
-pref("webgl.enable-debug-renderer-info", false);
-#else
-pref("webgl.enable-debug-renderer-info", true);
-#endif
+pref("webgl.enable-webgl2", false);
pref("webgl.renderer-string-override", "");
pref("webgl.vendor-string-override", "");
-#ifdef XP_WIN
-pref("webgl.angle.try-d3d11", true);
-pref("webgl.angle.force-d3d11", false);
-pref("webgl.angle.force-warp", false);
-pref("webgl.dxgl.enabled", true);
-pref("webgl.dxgl.needs-finish", false);
-#endif
-
pref("gfx.offscreencanvas.enabled", false);
#ifdef MOZ_WIDGET_GONK
@@ -4697,13 +4667,13 @@ pref("layers.force-active", false);
pref("layers.gralloc.disable", false); pref("layers.gralloc.disable", false);
// Enable/Disable the geolocation API for content // Enable/Disable the geolocation API for content
@ -336,16 +471,16 @@
// Enable/Disable the device storage API for content // Enable/Disable the device storage API for content
pref("device.storage.enabled", false); pref("device.storage.enabled", false);
@@ -5072,7 +5072,7 @@ @@ -4800,7 +4770,7 @@ pref("dom.vibrator.max_vibrate_ms", 10000);
pref("dom.vibrator.max_vibrate_list_len", 128); pref("dom.vibrator.max_vibrate_list_len", 128);
// Battery API // Battery API
-pref("dom.battery.enabled", true); -pref("dom.battery.enabled", true);
+pref("dom.battery.enabled", false); +pref("dom.battery.enabled", false);
// Streams API // Push
pref("dom.streams.enabled", false);
@@ -5231,8 +5231,8 @@ @@ -4944,8 +4914,8 @@ pref("social.directories", "https://activations.cdn.mozilla.net");
// remote-install allows any website to activate a provider, with extended UI // remote-install allows any website to activate a provider, with extended UI
// notifying user of installation. we can later pref off remote install if // notifying user of installation. we can later pref off remote install if
// necessary. This does not affect whitelisted and directory installs. // necessary. This does not affect whitelisted and directory installs.
@ -356,9 +491,9 @@
// Disable idle observer fuzz, because only privileged content can access idle // Disable idle observer fuzz, because only privileged content can access idle
// observers (bug 780507). // observers (bug 780507).
@@ -5559,10 +5559,10 @@ @@ -5245,10 +5215,10 @@ pref("identity.fxaccounts.auth.uri", "https://api.accounts.firefox.com/v1");
// The URL of the Firefox Accounts auth server backend // disable mozsample size for now
pref("identity.fxaccounts.auth.uri", "https://api.accounts.firefox.com/v1"); pref("image.mozsamplesize.enabled", false);
-pref("beacon.enabled", true); -pref("beacon.enabled", true);
+pref("beacon.enabled", false); +pref("beacon.enabled", false);
@ -369,7 +504,7 @@
// SW Cache API // SW Cache API
@@ -5606,7 +5606,7 @@ @@ -5334,7 +5304,7 @@ pref("browser.search.suggest.enabled", true);
pref("browser.search.reset.enabled", false); pref("browser.search.reset.enabled", false);
pref("browser.search.reset.whitelist", ""); pref("browser.search.reset.whitelist", "");
pref("browser.search.geoSpecificDefaults", false); pref("browser.search.geoSpecificDefaults", false);
@ -378,7 +513,7 @@
pref("browser.search.geoip.timeout", 3000); pref("browser.search.geoip.timeout", 3000);
#ifdef MOZ_OFFICIAL_BRANDING #ifdef MOZ_OFFICIAL_BRANDING
@@ -5620,7 +5620,7 @@ @@ -5349,7 +5319,7 @@ pref("browser.search.official", true);
//pref("media.gmp-manager.url.override", ""); //pref("media.gmp-manager.url.override", "");
// Update service URL for GMP install/updates: // Update service URL for GMP install/updates:
@ -387,7 +522,7 @@
// When |media.gmp-manager.cert.requireBuiltIn| is true or not specified the // When |media.gmp-manager.cert.requireBuiltIn| is true or not specified the
// final certificate and all certificates the connection is redirected to before // final certificate and all certificates the connection is redirected to before
@@ -5645,14 +5645,14 @@ @@ -5374,15 +5344,15 @@ pref("media.gmp-manager.cert.requireBuiltIn", true);
// IMPORTANT! app.update.certs.* prefs should also be updated if these // IMPORTANT! app.update.certs.* prefs should also be updated if these
// are updated. // are updated.
pref("media.gmp-manager.cert.checkAttributes", true); pref("media.gmp-manager.cert.checkAttributes", true);
@ -399,6 +534,7 @@
+pref("media.gmp-manager.certs.1.commonName", ""); +pref("media.gmp-manager.certs.1.commonName", "");
+pref("media.gmp-manager.certs.2.issuerName", ""); +pref("media.gmp-manager.certs.2.issuerName", "");
+pref("media.gmp-manager.certs.2.commonName", ""); +pref("media.gmp-manager.certs.2.commonName", "");
#endif
// Whether or not to perform reader mode article parsing on page load. // Whether or not to perform reader mode article parsing on page load.
// If this pref is disabled, we will never show a reader mode icon in the toolbar. // If this pref is disabled, we will never show a reader mode icon in the toolbar.
@ -409,9 +545,9 @@
// because it'd slow things down too much // because it'd slow things down too much
--- a/toolkit/components/telemetry/healthreport-prefs.js --- a/toolkit/components/telemetry/healthreport-prefs.js
+++ b/toolkit/components/telemetry/healthreport-prefs.js +++ b/toolkit/components/telemetry/healthreport-prefs.js
@@ -4,9 +4,9 @@ @@ -2,9 +2,9 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
/* global pref */ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-pref("datareporting.healthreport.infoURL", "https://www.mozilla.org/legal/privacy/firefox.html#health-report"); -pref("datareporting.healthreport.infoURL", "https://www.mozilla.org/legal/privacy/firefox.html#health-report");
+pref("datareporting.healthreport.infoURL", ""); +pref("datareporting.healthreport.infoURL", "");