port to firefox 52.5.3 esr
This commit is contained in:
parent
2b8afb2e18
commit
bdb61280e6
@ -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()) {
|
|
||||||
|
@ -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 = ''
|
||||||
|
@ -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();
|
||||||
|
@ -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
|
|
||||||
|
@ -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");
|
||||||
|
@ -1,41 +1,31 @@
|
|||||||
--- 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;
|
|
||||||
case "handlersvc-store-initialized":
|
|
||||||
- // Initialize PdfJs when running in-process and remote. This only
|
|
||||||
- // happens once since PdfJs registers global hooks. If the PdfJs
|
|
||||||
- // extension is installed the init method below will be overridden
|
|
||||||
- // leaving initialization to the extension.
|
|
||||||
- // parent only: configure default prefs, set up pref observers, register
|
|
||||||
- // pdf content handler, and initializes parent side message manager
|
|
||||||
- // shim for privileged api access.
|
|
||||||
- PdfJs.init(true);
|
|
||||||
break;
|
|
||||||
case "shield-init-complete":
|
|
||||||
this._sendMainPingCentrePing();
|
|
||||||
@@ -866,15 +857,6 @@
|
|
||||||
|
|
||||||
// the first browser window has finished initializing
|
// the first browser window has finished initializing
|
||||||
_onFirstWindowLoaded: function BG__onFirstWindowLoaded(aWindow) {
|
_onFirstWindowLoaded: function BG__onFirstWindowLoaded(aWindow) {
|
||||||
- // Set up listeners and, if PdfJs is enabled, register the PDF stream converter.
|
- // Initialize PdfJs when running in-process and remote. This only
|
||||||
- // We delay all of the parent's initialization other than stream converter
|
- // happens once since PdfJs registers global hooks. If the PdfJs
|
||||||
- // registration, because it requires file IO from nsHandlerService-json.js
|
- // extension is installed the init method below will be overridden
|
||||||
|
- // leaving initialization to the extension.
|
||||||
|
- // parent only: configure default prefs, set up pref observers, register
|
||||||
|
- // pdf content handler, and initializes parent side message manager
|
||||||
|
- // shim for privileged api access.
|
||||||
|
- PdfJs.init(true);
|
||||||
|
- // child only: similar to the call above for parent - register content
|
||||||
|
- // handler and init message manager child shim for privileged api access.
|
||||||
|
- // With older versions of the extension installed, this load will fail
|
||||||
|
- // passively.
|
||||||
- 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";
|
||||||
|
@ -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) {
|
||||||
- return;
|
- log.error("Can't open the pocket menu without a view");
|
||||||
- }
|
- return;
|
||||||
- pageAction.doCommand(aWindow);
|
- }
|
||||||
} else if (aMenuName == "urlbar") {
|
- let placement = CustomizableUI.getPlacementOfWidget(target.widgetName);
|
||||||
this.getTarget(aWindow, "urlbar").then(target => {
|
- if (!placement || !placement.area) {
|
||||||
let urlbar = target.node;
|
- log.error("Can't open the pocket menu without a placement");
|
||||||
|
- 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',
|
||||||
|
]
|
||||||
|
|
||||||
|
@ -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": {
|
||||||
@ -132,160 +187,26 @@
|
|||||||
- });
|
- });
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
--- a/browser/components/uitour/UITour-lib.js
|
|
||||||
+++ b/browser/components/uitour/UITour-lib.js
|
|
||||||
@@ -119,7 +119,6 @@
|
|
||||||
* <li>pocket
|
|
||||||
* <li>privateWindow
|
|
||||||
* <li>quit
|
|
||||||
- * <li>readerMode-urlBar
|
|
||||||
* <li>screenshots
|
|
||||||
* <li>search
|
|
||||||
* <li>searchIcon
|
|
||||||
@@ -704,26 +703,6 @@
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
@@ -1947,12 +1921,8 @@ this.UITour = {
|
||||||
- * @summary Force the reader mode icon to appear in the address bar regardless of whether
|
return;
|
||||||
- * 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 {
|
|
||||||
- let originalUrl = ReaderMode.getOriginalUrlObjectForDisplay(aValue);
|
|
||||||
- if (originalUrl) {
|
|
||||||
- returnValue = originalUrl.displaySpec;
|
|
||||||
- }
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set the actiontype only if the user is not overriding actions.
|
- if (aFeature == "readinglist") {
|
||||||
@@ -947,26 +942,6 @@
|
- ReaderParent.showReaderModeInfoPanel(browser);
|
||||||
]]></body>
|
- } else {
|
||||||
</method>
|
- log.error("startSubTour: Unknown feature option specified");
|
||||||
|
- return;
|
||||||
|
- }
|
||||||
|
+ log.error("startSubTour: Unknown feature option specified");
|
||||||
|
+ return;
|
||||||
|
},
|
||||||
|
|
||||||
- <method name="makeURIReadable">
|
addNavBarWidget: function (aTarget, aMessageManager, aCallbackID) {
|
||||||
- <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',
|
||||||
|
@ -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="©URLFeedback.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 @@
|
sendTabToDevice: function (url, clientId, title) {
|
||||||
"context-savepage", true,
|
- Weave.Service.clientsEngine.sendURIToClientForDisplay(url, clientId, title);
|
||||||
...(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 @@
|
populateSendTabToDevicesMenu: function (devicesPopup, url, title) {
|
||||||
...(hasPocket ? ["context-savelinktopocket", true] : []),
|
- // remove existing menu items
|
||||||
"context-copylink", true,
|
- while (devicesPopup.hasChildNodes()) {
|
||||||
"context-searchselect", true,
|
- devicesPopup.removeChild(devicesPopup.firstChild);
|
||||||
- "---", null,
|
- }
|
||||||
- "context-sendlinktodevice", true, [], null,
|
-
|
||||||
]
|
- 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);
|
||||||
|
},
|
||||||
|
|
||||||
@@ -978,8 +953,6 @@
|
updateTabContextMenu: function (aPopupMenu) {
|
||||||
...(hasPocket ? ["context-savelinktopocket", true] : []),
|
- if (!this.sendTabToDeviceEnabled) {
|
||||||
"context-copylink", true,
|
- return;
|
||||||
"context-searchselect", true,
|
- }
|
||||||
- "---", null,
|
-
|
||||||
- "context-sendlinktodevice", true, [], null,
|
- 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 () {
|
||||||
|
|
||||||
--- a/browser/base/content/nsContextMenu.js
|
|
||||||
+++ b/browser/base/content/nsContextMenu.js
|
|
||||||
@@ -738,7 +738,6 @@
|
|
||||||
},
|
|
||||||
|
|
||||||
initSyncItems() {
|
|
||||||
- gSync.updateContentContextMenu(this);
|
|
||||||
},
|
|
||||||
|
|
||||||
openPasswordManager() {
|
|
||||||
|
@ -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,51 +45,51 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -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) {
|
||||||
- let json = this.responseText;
|
- let json = this.responseText;
|
||||||
- if (this.status && this.status != 200) {
|
- if (this.status && this.status != 200) {
|
||||||
- json = "{}";
|
- json = "{}";
|
||||||
- }
|
|
||||||
- resolve(json);
|
|
||||||
- };
|
|
||||||
-
|
|
||||||
- xmlHttp.onerror = function(e) {
|
|
||||||
- reject("Fetching " + uri + " results in error code: " + e.target.status);
|
|
||||||
- };
|
|
||||||
-
|
|
||||||
- try {
|
|
||||||
- xmlHttp.open("GET", uri);
|
|
||||||
- // Override the type so XHR doesn't complain about not well-formed XML
|
|
||||||
- xmlHttp.overrideMimeType(DIRECTORY_LINKS_TYPE);
|
|
||||||
- // Set the appropriate request type for servers that require correct types
|
|
||||||
- xmlHttp.setRequestHeader("Content-Type", DIRECTORY_LINKS_TYPE);
|
|
||||||
- xmlHttp.send();
|
|
||||||
- } catch (e) {
|
|
||||||
- reject("Error fetching " + uri);
|
|
||||||
- Cu.reportError(e);
|
|
||||||
- }
|
- }
|
||||||
- });
|
- deferred.resolve(json);
|
||||||
|
- };
|
||||||
|
-
|
||||||
|
- xmlHttp.onerror = function(e) {
|
||||||
|
- deferred.reject("Fetching " + uri + " results in error code: " + e.target.status);
|
||||||
|
- };
|
||||||
|
-
|
||||||
|
- try {
|
||||||
|
- xmlHttp.open("GET", uri);
|
||||||
|
- // Override the type so XHR doesn't complain about not well-formed XML
|
||||||
|
- xmlHttp.overrideMimeType(DIRECTORY_LINKS_TYPE);
|
||||||
|
- // Set the appropriate request type for servers that require correct types
|
||||||
|
- xmlHttp.setRequestHeader("Content-Type", DIRECTORY_LINKS_TYPE);
|
||||||
|
- xmlHttp.send();
|
||||||
|
- } catch (e) {
|
||||||
|
- deferred.reject("Error fetching " + uri);
|
||||||
|
- 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();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
+
|
|
||||||
|
|
||||||
|
@ -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
|
|
||||||
|
@ -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
30
mitigate-spectre.patch
Normal 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);
|
@ -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", "");
|
||||||
|
Loading…
Reference in New Issue
Block a user