diff options
Diffstat (limited to 'browser')
44 files changed, 216 insertions, 315 deletions
diff --git a/browser/app/blocklist.xml b/browser/app/blocklist.xml index 1c71bcd61..239fe43a4 100644 --- a/browser/app/blocklist.xml +++ b/browser/app/blocklist.xml @@ -1,5 +1,5 @@ <?xml version='1.0' encoding='UTF-8'?> -<blocklist lastupdate="1511452800000" xmlns="http://www.mozilla.org/2006/addons-blocklist"> +<blocklist lastupdate="1521130300000" xmlns="http://www.mozilla.org/2006/addons-blocklist"> <emItems> <emItem blockID="i988" id="{b12785f5-d8d0-4530-a3ea-5c4263b85bef}"> <prefs/> @@ -2087,6 +2087,10 @@ <prefs/> <versionRange minVersion="0" maxVersion="15.0.5" severity="1"/> </emItem> + <emItem blockID="2447476f-043b-4d0b-9d3c-8e859c97d950" id="{44e4b2cf-77ba-4f76-aca7-f3fcbc2dda2f}"> + <prefs/> + <versionRange minVersion="0" maxVersion="*" severity="3"/> + </emItem> </emItems> <pluginItems> <pluginItem blockID="p416"> diff --git a/browser/app/macbuild/Contents/Info.plist.in b/browser/app/macbuild/Contents/Info.plist.in index 6212e886d..d6902fffd 100644 --- a/browser/app/macbuild/Contents/Info.plist.in +++ b/browser/app/macbuild/Contents/Info.plist.in @@ -205,6 +205,11 @@ <true/> <key>LSApplicationCategoryType</key> <string>public.app-category.productivity</string> + <key>LSEnvironment</key> + <dict> + <key>MallocNanoZone</key> + <string>0</string> + </dict> <key>LSFileQuarantineEnabled</key> <true/> <key>LSMinimumSystemVersion</key> diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js index b46d944e8..d6de538d7 100644 --- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js @@ -1061,7 +1061,6 @@ pref("services.sync.prefs.sync.browser.download.useDownloadDir", true); pref("services.sync.prefs.sync.browser.formfill.enable", true); pref("services.sync.prefs.sync.browser.link.open_newwindow", true); pref("services.sync.prefs.sync.browser.newtabpage.enabled", true); -pref("services.sync.prefs.sync.browser.newtabpage.enhanced", true); pref("services.sync.prefs.sync.browser.newtabpage.pinned", true); pref("services.sync.prefs.sync.browser.offline-apps.notify", true); pref("services.sync.prefs.sync.browser.safebrowsing.phishing.enabled", true); @@ -1156,7 +1155,7 @@ pref("browser.newtabpage.introShown", false); pref("browser.newtabpage.enabled", true); // Toggles the enhanced content of 'about:newtab'. Shows sponsored tiles. -sticky_pref("browser.newtabpage.enhanced", true); +sticky_pref("browser.newtabpage.enhanced", false); // enables Activity Stream inspired layout pref("browser.newtabpage.compact", false); @@ -1330,20 +1329,21 @@ pref("identity.fxaccounts.migrateToDevEdition", false); pref("ui.key.menuAccessKeyFocuses", true); #endif +#ifdef MOZ_EME // Encrypted media extensions. -#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. +// EME is visible but disabled by default. This is so that the +// "Play DRM content" checkbox in the browser UI is unchecked by default. // DRM requires downloading and installing proprietary binaries, which -// users on an open source operating systems didn't opt into. The first -// time a site using EME is encountered, the user will be prompted to -// enable DRM, whereupon the EME plugin binaries will be downloaded if -// permission is granted. +// users didn't necessarily opt-in to by installing the browser. +// The first time a site using EME is encountered, the user will be +// prompted to enable DRM, whereupon the EME plugin binaries will be +// downloaded if permission is granted. pref("media.eme.enabled", false); +pref("media.eme.apiVisible", true); #else -pref("media.eme.enabled", true); +// Disable redundant interfaces +pref("media.eme.apiVisible", false); #endif -pref("media.eme.apiVisible", true); // Decode using Gecko Media Plugins in <video>, if a system decoder is not // availble and the preferred GMP is available. diff --git a/browser/base/content/aboutDialog.js b/browser/base/content/aboutDialog.js index b024d2d52..f9571621f 100644 --- a/browser/base/content/aboutDialog.js +++ b/browser/base/content/aboutDialog.js @@ -40,16 +40,23 @@ function init(aEvent) // Pref is unset } - // Include the build ID and display warning if this is an "a#" (nightly or aurora) build + // Include the build ID let versionField = document.getElementById("version"); let version = Services.appinfo.version; + let buildID = Services.appinfo.appBuildID; + let year = buildID.slice(0, 4); + let month = buildID.slice(4, 6); + let day = buildID.slice(6, 8); + let hour = buildID.slice(8, 10); + let minute = buildID.slice(10, 12); + if (Services.prefs.getBoolPref("general.useragent.appVersionIsBuildID")) { + versionField.textContent = `${year}.${month}.${day}`; + } else { + versionField.textContent = `v` + version + ` (${year}-${month}-${day})`; + } + + // Display warning if this is an "a#" (nightly or aurora) build if (/a\d+$/.test(version)) { - let buildID = Services.appinfo.appBuildID; - let year = buildID.slice(0, 4); - let month = buildID.slice(4, 6); - let day = buildID.slice(6, 8); - versionField.textContent += ` (${year}-${month}-${day})`; - document.getElementById("experimental").hidden = false; document.getElementById("communityDesc").hidden = true; } diff --git a/browser/base/content/aboutDialog.xul b/browser/base/content/aboutDialog.xul index ef2804f31..5780e5ec1 100644 --- a/browser/base/content/aboutDialog.xul +++ b/browser/base/content/aboutDialog.xul @@ -45,7 +45,7 @@ <vbox id="leftBox" flex="1"/> <vbox id="rightBox" flex="1"> <hbox align="baseline"> -#expand <label id="version">__MOZ_APP_VERSION_DISPLAY__</label> +#expand <label id="version"></label> #ifndef NIGHTLY_BUILD <label id="releasenotes" class="text-link">&releaseNotes.link;</label> #endif @@ -120,20 +120,20 @@ <vbox id="experimental" hidden="true"> <description class="text-blurb" id="warningDesc"> &warningDesc.version; -#ifdef MOZ_TELEMETRY_ON_BY_DEFAULT - &warningDesc.telemetryDesc; -#endif - </description> - <description class="text-blurb" id="communityExperimentalDesc"> - &community.exp.start;<label class="text-link" href="http://www.mozilla.org/">&community.exp.mozillaLink;</label>&community.exp.middle;<label class="text-link" useoriginprincipal="true" href="about:credits">&community.exp.creditsLink;</label>&community.exp.end; </description> </vbox> +#ifdef MC_PRIVATE_BUILD +<description class="text-blurb" id="communityDesc"> + This is a private build of Basilisk. If you did not manually build this copy from source yourself, then please download an official version from the <label class="text-link" href="http://www.basilisk-browser.org/">Basilisk website</label>. + </description> +#else <description class="text-blurb" id="communityDesc"> - &community.start2;<label class="text-link" href="http://www.mozilla.org/">&community.mozillaLink;</label>&community.middle2;<label class="text-link" useoriginprincipal="true" href="about:credits">&community.creditsLink;</label>&community.end3; + Basilisk is community software released by <label class="text-link" href="http://www.palemoon.org/">the Pale Moon team</label> and Mozilla developers. Learn <label class="text-link" useoriginprincipal="true" href="about:credits">who contributed</label> to this software. </description> <description class="text-blurb" id="contributeDesc"> - &helpus.start;<label class="text-link" href="https://sendto.mozilla.org/page/contribute/Give-Now?source=mozillaorg_default_footer&ref=firefox_about&utm_campaign=firefox_about&tm_source=firefox&tm_medium=referral&utm_content=20140929_FireFoxAbout">&helpus.donateLink;</label>&helpus.middle;<label class="text-link" href="http://www.mozilla.org/contribute/">&helpus.getInvolvedLink;</label>&helpus.end; + Want to help? Please consider <label class="text-link" href="https://www.palemoon.org/donations.shtml">donating</label> or get involved with our <label class="text-link" href="https://github.com/MoonchildProductions/UXP">development</label> of the Unified XUL Platform. </description> +#endif </vbox> </vbox> </hbox> @@ -141,7 +141,7 @@ <hbox pack="center"> <label class="text-link bottom-link" useoriginprincipal="true" href="about:license">&bottomLinks.license;</label> <label class="text-link bottom-link" useoriginprincipal="true" href="about:rights">&bottomLinks.rights;</label> - <label class="text-link bottom-link" href="https://www.mozilla.org/privacy/">&bottomLinks.privacy;</label> + <label class="text-link bottom-link" href="https://www.palemoon.org/privacy.shtml">&bottomLinks.privacy;</label> </hbox> <description id="trademark">&trademarkInfo.part1;</description> </vbox> diff --git a/browser/base/content/browser-media.js b/browser/base/content/browser-media.js index a013dbd8a..bd5c5b227 100644 --- a/browser/base/content/browser-media.js +++ b/browser/base/content/browser-media.js @@ -5,12 +5,16 @@ var gEMEHandler = { get uiEnabled() { +#ifdef MOZ_EME let emeUIEnabled = Services.prefs.getBoolPref("browser.eme.ui.enabled"); // Force-disable on WinXP: if (navigator.platform.toLowerCase().startsWith("win")) { emeUIEnabled = emeUIEnabled && parseFloat(Services.sysinfo.get("version")) >= 6; } return emeUIEnabled; +#else + return false; +#endif }, ensureEMEEnabled: function(browser, keySystem) { Services.prefs.setBoolPref("media.eme.enabled", true); @@ -41,11 +45,23 @@ var gEMEHandler = { } return true; }, - getLearnMoreLink: function(msgId) { - let text = gNavigatorBundle.getString("emeNotifications." + msgId + ".learnMoreLabel"); + getEMEDisabledFragment: function(msgId) { + let mainMessage = gNavigatorBundle.getString("emeNotifications.drmContentDisabled.message"); + let [prefix, suffix] = mainMessage.split(/%(?:\$\d)?S/).map(s => document.createTextNode(s)); + let text = gNavigatorBundle.getString("emeNotifications.drmContentDisabled.learnMoreLabel"); let baseURL = Services.urlFormatter.formatURLPref("app.support.baseURL"); - return "<label class='text-link' href='" + baseURL + "drm-content'>" + - text + "</label>"; + let link = document.createElement("label"); + link.className = "text-link"; + link.setAttribute("href", baseURL + "drm-content"); + link.textContent = text; + + let fragment = document.createDocumentFragment(); + [prefix, link, suffix].forEach(n => fragment.appendChild(n)); + return fragment; + }, + getMessageWithBrandName: function(notificationId) { + let msgId = "emeNotifications." + notificationId + ".message"; + return gNavigatorBundle.getFormattedString(msgId, [this._brandShortName]); }, receiveMessage: function({target: browser, data: data}) { let parsedData; @@ -63,7 +79,8 @@ var gEMEHandler = { let notificationId; let buttonCallback; - let params = []; + // Notification message can be either a string or a DOM fragment. + let notificationMessage; switch (status) { case "available": case "cdm-created": @@ -78,17 +95,17 @@ var gEMEHandler = { case "cdm-disabled": notificationId = "drmContentDisabled"; buttonCallback = gEMEHandler.ensureEMEEnabled.bind(gEMEHandler, browser, keySystem) - params = [this.getLearnMoreLink(notificationId)]; + notificationMessage = this.getEMEDisabledFragment(); break; case "cdm-insufficient-version": notificationId = "drmContentCDMInsufficientVersion"; - params = [this._brandShortName]; + notificationMessage = this.getMessageWithBrandName(notificationId); break; case "cdm-not-installed": notificationId = "drmContentCDMInstalling"; - params = [this._brandShortName]; + notificationMessage = this.getMessageWithBrandName(notificationId); break; case "cdm-not-supported": @@ -100,44 +117,29 @@ var gEMEHandler = { return; } - this.showNotificationBar(browser, notificationId, keySystem, params, buttonCallback); - }, - showNotificationBar: function(browser, notificationId, keySystem, labelParams, callback) { + // Now actually create the notification + let box = gBrowser.getNotificationBox(browser); if (box.getNotificationWithValue(notificationId)) { return; } - let msgPrefix = "emeNotifications." + notificationId + "."; - let msgId = msgPrefix + "message"; - - let message = labelParams.length ? - gNavigatorBundle.getFormattedString(msgId, labelParams) : - gNavigatorBundle.getString(msgId); - let buttons = []; - if (callback) { + if (buttonCallback) { + let msgPrefix = "emeNotifications." + notificationId + "."; let btnLabelId = msgPrefix + "button.label"; let btnAccessKeyId = msgPrefix + "button.accesskey"; buttons.push({ label: gNavigatorBundle.getString(btnLabelId), accessKey: gNavigatorBundle.getString(btnAccessKeyId), - callback: callback + callback: buttonCallback }); } let iconURL = "chrome://browser/skin/drm-icon.svg#chains-black"; - // Do a little dance to get rich content into the notification: - let fragment = document.createDocumentFragment(); - let descriptionContainer = document.createElement("description"); - descriptionContainer.innerHTML = message; - while (descriptionContainer.childNodes.length) { - fragment.appendChild(descriptionContainer.childNodes[0]); - } - - box.appendNotification(fragment, notificationId, iconURL, box.PRIORITY_WARNING_MEDIUM, - buttons); + box.appendNotification(notificationMessage, notificationId, iconURL, + box.PRIORITY_WARNING_MEDIUM, buttons); }, showPopupNotificationForSuccess: function(browser, keySystem) { // We're playing EME content! Remove any "we can't play because..." messages. diff --git a/browser/base/content/browser-menubar.inc b/browser/base/content/browser-menubar.inc index 3fc098755..41734711c 100644 --- a/browser/base/content/browser-menubar.inc +++ b/browser/base/content/browser-menubar.inc @@ -34,12 +34,6 @@ accesskey="&newPrivateWindow.accesskey;" command="Tools:PrivateBrowsing" key="key_privatebrowsing"/> -#ifdef E10S_TESTING_ONLY - <menuitem id="menu_newNonRemoteWindow" - label="&newNonRemoteWindow.label;" - hidden="true" - command="Tools:NonRemoteWindow"/> -#endif #ifdef MAC_NON_BROWSER_WINDOW <menuitem id="menu_openLocation" label="&openLocationCmd.label;" diff --git a/browser/base/content/browser-places.js b/browser/base/content/browser-places.js index 14e90cde2..a447880be 100644 --- a/browser/base/content/browser-places.js +++ b/browser/base/content/browser-places.js @@ -1555,6 +1555,10 @@ var BookmarkingUI = { // so kill current view and let popupshowing generate a new one. if (this.button._placesView) this.button._placesView.uninit(); + // ...and do the same for the menu bar. + let menubar = document.getElementById("bookmarksMenu"); + if (menubar && menubar._placesView) + menubar._placesView.uninit(); // We have to do the same thing for the "special" views underneath the // the bookmarks menu. diff --git a/browser/base/content/browser-sets.inc b/browser/base/content/browser-sets.inc index a5a4ae8aa..0c753520f 100644 --- a/browser/base/content/browser-sets.inc +++ b/browser/base/content/browser-sets.inc @@ -103,10 +103,6 @@ oncommand="Cc['@mozilla.org/browser/browserglue;1'].getService(Ci.nsIBrowserGlue).sanitize(window);"/> <command id="Tools:PrivateBrowsing" oncommand="OpenBrowserWindow({private: true});" reserved="true"/> -#ifdef E10S_TESTING_ONLY - <command id="Tools:NonRemoteWindow" - oncommand="OpenBrowserWindow({remote: false});"/> -#endif <command id="History:UndoCloseTab" oncommand="undoCloseTab();"/> <command id="History:UndoCloseWindow" oncommand="undoCloseWindow();"/> <command id="Social:SharePage" oncommand="SocialShare.sharePage();"/> diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js index 910dc4f68..d41e94ae6 100755 --- a/browser/base/content/browser.js +++ b/browser/base/content/browser.js @@ -1217,9 +1217,6 @@ var gBrowserInit = { BrowserOffline.init(); IndexedDBPromptHelper.init(); - if (AppConstants.E10S_TESTING_ONLY) - gRemoteTabsUI.init(); - // Initialize the full zoom setting. // We do this before the session restore service gets initialized so we can // apply full zoom settings to tabs restored by the session restore service. @@ -1651,10 +1648,6 @@ if (AppConstants.platform == "macosx") { // initialize the sync UI gSyncUI.init(); - - if (AppConstants.E10S_TESTING_ONLY) { - gRemoteTabsUI.init(); - } }; gBrowserInit.nonBrowserWindowShutdown = function() { @@ -7835,16 +7828,6 @@ var TabContextMenu = { for (let menuItem of menuItems) menuItem.disabled = disabled; - if (AppConstants.E10S_TESTING_ONLY) { - menuItems = aPopupMenu.getElementsByAttribute("tbattr", "tabbrowser-remote"); - for (let menuItem of menuItems) { - menuItem.hidden = !gMultiProcessBrowser; - if (menuItem.id == "context_openNonRemoteWindow") { - menuItem.disabled = !!parseInt(this.contextTab.getAttribute("usercontextid")); - } - } - } - disabled = gBrowser.visibleTabs.length == 1; menuItems = aPopupMenu.getElementsByAttribute("tbattr", "tabbrowser-multiple-visible"); for (let menuItem of menuItems) @@ -7913,7 +7896,7 @@ var TabContextMenu = { Object.defineProperty(this, "HUDService", { get: function HUDService_getter() { let devtools = Cu.import("resource://devtools/shared/Loader.jsm", {}).devtools; - return devtools.require("devtools/client/webconsole/hudservice"); + return devtools.require("devtools/client/webconsole/hudservice").HUDService; }, configurable: true, enumerable: true diff --git a/browser/base/content/browser.xul b/browser/base/content/browser.xul index be17fb0e2..ae531e167 100644 --- a/browser/base/content/browser.xul +++ b/browser/base/content/browser.xul @@ -98,12 +98,6 @@ accesskey="&moveToNewWindow.accesskey;" tbattr="tabbrowser-multiple" oncommand="gBrowser.replaceTabWithWindow(TabContextMenu.contextTab);"/> -#ifdef E10S_TESTING_ONLY - <menuitem id="context_openNonRemoteWindow" label="Open in new non-e10s window" - tbattr="tabbrowser-remote" - hidden="true" - oncommand="gBrowser.openNonRemoteWindow(TabContextMenu.contextTab);"/> -#endif <menuseparator id="context_sendTabToDevice_separator" hidden="true"/> <menu id="context_sendTabToDevice" label="&sendTabToDevice.label;" accesskey="&sendTabToDevice.accesskey;" hidden="true"> diff --git a/browser/base/content/newtab/customize.js b/browser/base/content/newtab/customize.js index 28a52373c..39724fa91 100644 --- a/browser/base/content/newtab/customize.js +++ b/browser/base/content/newtab/customize.js @@ -25,7 +25,6 @@ var gCustomize = { this._nodes.button.addEventListener("click", e => this.showPanel(e)); this._nodes.blank.addEventListener("click", this); this._nodes.classic.addEventListener("click", this); - this._nodes.enhanced.addEventListener("click", this); this._nodes.learn.addEventListener("click", this); this.updateSelected(); @@ -87,11 +86,7 @@ var gCustomize = { sendAsyncMessage("NewTab:Customize", {enabled: false, enhanced: false}); break; case "newtab-customize-classic": - if (this._nodes.enhanced.getAttribute("selected")){ - sendAsyncMessage("NewTab:Customize", {enabled: true, enhanced: true}); - } else { - sendAsyncMessage("NewTab:Customize", {enabled: true, enhanced: false}); - } + sendAsyncMessage("NewTab:Customize", {enabled: true, enhanced: false}); break; case "newtab-customize-enhanced": sendAsyncMessage("NewTab:Customize", {enabled: true, enhanced: !gAllPages.enhanced}); @@ -114,9 +109,9 @@ var gCustomize = { }, updateSelected: function() { - let {enabled, enhanced} = gAllPages; - let selected = enabled ? enhanced ? "enhanced" : "classic" : "blank"; - ["enhanced", "classic", "blank"].forEach(id => { + let {enabled} = gAllPages; + let selected = enabled ? "classic" : "blank"; + ["classic", "blank"].forEach(id => { let node = this._nodes[id]; if (id == selected) { node.setAttribute("selected", true); @@ -125,9 +120,5 @@ var gCustomize = { node.removeAttribute("selected"); } }); - if (selected == "enhanced") { - // If enhanced is selected, so is classic (since enhanced is a subitem of classic) - this._nodes.classic.setAttribute("selected", true); - } }, }; diff --git a/browser/base/content/newtab/newTab.xhtml b/browser/base/content/newtab/newTab.xhtml index 07fb0093e..eef51b4b2 100644 --- a/browser/base/content/newtab/newTab.xhtml +++ b/browser/base/content/newtab/newTab.xhtml @@ -33,15 +33,8 @@ <div id="newtab-customize-title" class="newtab-customize-panel-item"> <label>&newtab.customize.cog.title2;</label> </div> - - <div class="newtab-customize-complex-option"> - <div id="newtab-customize-classic" class="newtab-customize-panel-superitem newtab-customize-panel-item selectable"> - <label>&newtab.customize.classic;</label> - </div> - <div id="newtab-customize-enhanced" class="newtab-customize-panel-subitem"> - <label class="checkbox"></label> - <label>&newtab.customize.cog.enhanced;</label> - </div> + <div id="newtab-customize-classic" class="newtab-customize-panel-item selectable"> + <label>&newtab.customize.classic;</label> </div> <div id="newtab-customize-blank" class="newtab-customize-panel-item selectable"> <label>&newtab.customize.blank2;</label> diff --git a/browser/base/content/tabbrowser.xml b/browser/base/content/tabbrowser.xml index 0cb0f3bd6..b27846835 100644 --- a/browser/base/content/tabbrowser.xml +++ b/browser/base/content/tabbrowser.xml @@ -3222,20 +3222,6 @@ </body> </method> - <!-- Opens a given tab to a non-remote window. --> - <method name="openNonRemoteWindow"> - <parameter name="aTab"/> - <body> - <![CDATA[ - if (!this.AppConstants.E10S_TESTING_ONLY) { - throw "This method is intended only for e10s testing!"; - } - let url = aTab.linkedBrowser.currentURI.spec; - return window.openDialog("chrome://browser/content/", "_blank", "chrome,all,dialog=no,non-remote", url); - ]]> - </body> - </method> - <method name="moveTabTo"> <parameter name="aTab"/> <parameter name="aIndex"/> @@ -4581,8 +4567,7 @@ label = this.mStringBundle.getString(stringID); } } else { - label = tab.getAttribute("label") + - (this.AppConstants.E10S_TESTING_ONLY && tab.linkedBrowser && tab.linkedBrowser.isRemoteBrowser ? " - e10s" : ""); + label = tab.getAttribute("label"); } event.target.setAttribute("label", label); ]]></body> diff --git a/browser/base/jar.mn b/browser/base/jar.mn index 3fa5ea408..a65c77338 100644 --- a/browser/base/jar.mn +++ b/browser/base/jar.mn @@ -80,7 +80,7 @@ browser.jar: content/browser/browser-fullZoom.js (content/browser-fullZoom.js) content/browser/browser-fxaccounts.js (content/browser-fxaccounts.js) content/browser/browser-gestureSupport.js (content/browser-gestureSupport.js) - content/browser/browser-media.js (content/browser-media.js) +* content/browser/browser-media.js (content/browser-media.js) content/browser/browser-places.js (content/browser-places.js) content/browser/browser-plugins.js (content/browser-plugins.js) content/browser/browser-refreshblocker.js (content/browser-refreshblocker.js) diff --git a/browser/branding/official/pref/firefox-branding.js b/browser/branding/official/pref/firefox-branding.js index eb2bf489b..190b84e78 100644 --- a/browser/branding/official/pref/firefox-branding.js +++ b/browser/branding/official/pref/firefox-branding.js @@ -37,6 +37,10 @@ pref("app.update.url.manual", "https://@BRANDING_SITEURL@/"); // supplied in the "An update is available" page of the update wizard. pref("app.update.url.details", "https://@BRANDING_SITEURL@/@BRANDING_RELNOTESPATH@"); +// Provide UA Gecko and Firefox slices for web compatibility +pref("general.useragent.compatMode.firefox",true); +pref("general.useragent.compatMode.gecko",true); + // Switch Application Updates off for now pref("app.update.enabled", false); diff --git a/browser/branding/shared/branding.mozbuild b/browser/branding/shared/branding.mozbuild index 29d25094f..e6fee3f4e 100644 --- a/browser/branding/shared/branding.mozbuild +++ b/browser/branding/shared/branding.mozbuild @@ -33,9 +33,9 @@ def ApplicationBranding(): elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa': BRANDING_FILES += [ '../shared/dsstore', + 'background.png', 'disk.icns', 'document.icns', - 'background.png', 'firefox.icns', ] elif 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']: @@ -53,4 +53,4 @@ def ApplicationBranding(): ] DEFINES['MOZ_APP_VERSION'] = CONFIG['MOZ_APP_VERSION'] DEFINES['MOZ_BRANDING_DIRECTORY'] = CONFIG['MOZ_BRANDING_DIRECTORY'] - DEFINES['MOZILLA_UAVERSION_U'] = CONFIG['MOZILLA_UAVERSION_U']
\ No newline at end of file + DEFINES['MOZILLA_UAVERSION_U'] = CONFIG['MOZILLA_UAVERSION_U'] diff --git a/browser/components/BrowserComponents.manifest b/browser/components/BrowserComponents.manifest index dbfc3d2ec..0c80006be 100644 --- a/browser/components/BrowserComponents.manifest +++ b/browser/components/BrowserComponents.manifest @@ -39,6 +39,4 @@ component {eab9012e-5f74-4cbc-b2b5-a590235513cc} nsBrowserGlue.js contract @mozilla.org/browser/browserglue;1 {eab9012e-5f74-4cbc-b2b5-a590235513cc} category app-startup nsBrowserGlue service,@mozilla.org/browser/browserglue;1 application={3c2e2abc-06d4-11e1-ac3b-374f68613e61} application={ec8030f7-c20a-464f-9b0e-13a3a9e97384} application={aa3c5121-dab2-40e2-81ca-7ea25febc110} application={a23983c0-fd0e-11dc-95ff-0800200c9a66} application={d1bfe7d9-c01e-4237-998b-7b5f960a4314} component {d8903bf6-68d5-4e97-bcd1-e4d3012f721a} nsBrowserGlue.js -#ifndef MOZ_MULET contract @mozilla.org/content-permission/prompt;1 {d8903bf6-68d5-4e97-bcd1-e4d3012f721a} -#endif diff --git a/browser/components/customizableui/CustomizableUI.jsm b/browser/components/customizableui/CustomizableUI.jsm index 01389108d..cb0f519b2 100644 --- a/browser/components/customizableui/CustomizableUI.jsm +++ b/browser/components/customizableui/CustomizableUI.jsm @@ -207,15 +207,6 @@ var CustomizableUIInternal = { panelPlacements.splice(-1, 0, "developer-button"); } - if (AppConstants.E10S_TESTING_ONLY) { - if (gPalette.has("e10s-button")) { - let newWindowIndex = panelPlacements.indexOf("new-window-button"); - if (newWindowIndex > -1) { - panelPlacements.splice(newWindowIndex + 1, 0, "e10s-button"); - } - } - } - let showCharacterEncoding = Services.prefs.getComplexValue( "browser.menu.showCharacterEncoding", Ci.nsIPrefLocalizedString diff --git a/browser/components/customizableui/CustomizableWidgets.jsm b/browser/components/customizableui/CustomizableWidgets.jsm index 1e68b01c1..3e83b081c 100644 --- a/browser/components/customizableui/CustomizableWidgets.jsm +++ b/browser/components/customizableui/CustomizableWidgets.jsm @@ -1258,21 +1258,3 @@ if (Services.prefs.getBoolPref("privacy.panicButton.enabled")) { }, }); } - -if (AppConstants.E10S_TESTING_ONLY) { - if (Services.appinfo.browserTabsRemoteAutostart) { - CustomizableWidgets.push({ - id: "e10s-button", - defaultArea: CustomizableUI.AREA_PANEL, - onBuild: function(aDocument) { - let node = aDocument.createElementNS(kNSXUL, "toolbarbutton"); - node.setAttribute("label", CustomizableUI.getLocalizedProperty(this, "label")); - node.setAttribute("tooltiptext", CustomizableUI.getLocalizedProperty(this, "tooltiptext")); - }, - onCommand: function(aEvent) { - let win = aEvent.view; - win.OpenBrowserWindow({remote: false}); - }, - }); - } -} diff --git a/browser/components/nsBrowserContentHandler.js b/browser/components/nsBrowserContentHandler.js index e8fe0fe93..b366c3f81 100644 --- a/browser/components/nsBrowserContentHandler.js +++ b/browser/components/nsBrowserContentHandler.js @@ -454,16 +454,16 @@ nsBrowserContentHandler.prototype = { get helpInfo() { let info = - " --browser Open a browser window.\n" + - " --new-window <url> Open <url> in a new window.\n" + - " --new-tab <url> Open <url> in a new tab.\n" + - " --private-window <url> Open <url> in a new private window.\n"; + " --browser Open a browser window.\n" + + " --new-window <url> Open <url> in a new window.\n" + + " --new-tab <url> Open <url> in a new tab.\n" + + " --private-window <url> Open <url> in a new private window.\n"; if (AppConstants.platform == "win") { - info += " --preferences Open Options dialog.\n"; + info += " --preferences Open Options dialog.\n"; } else { - info += " --preferences Open Preferences dialog.\n"; + info += " --preferences Open Preferences dialog.\n"; } - info += " --search <term> Search <term> with your default search engine.\n"; + info += " --search <term> Search <term> with your default search engine.\n"; return info; }, diff --git a/browser/components/nsBrowserGlue.js b/browser/components/nsBrowserGlue.js index d69a11f6b..f97c173a0 100644 --- a/browser/components/nsBrowserGlue.js +++ b/browser/components/nsBrowserGlue.js @@ -64,6 +64,7 @@ XPCOMUtils.defineLazyServiceGetter(this, "AlertsService", "@mozilla.org/alerts-s ["Task", "resource://gre/modules/Task.jsm"], ["UITour", "resource:///modules/UITour.jsm"], ["URLBarZoom", "resource:///modules/URLBarZoom.jsm"], + ["UserAgentOverrides", "resource://gre/modules/UserAgentOverrides.jsm"], ["WebChannel", "resource://gre/modules/WebChannel.jsm"], ["WindowsRegistry", "resource://gre/modules/WindowsRegistry.jsm"], ["webrtcUI", "resource:///modules/webrtcUI.jsm"], @@ -662,6 +663,8 @@ BrowserGlue.prototype = { } } catch (ex) { /* missing any of the prefs is not critical */ } + UserAgentOverrides.init(); + PageThumbs.init(); webrtcUI.init(); AboutHome.init(); @@ -1042,6 +1045,7 @@ BrowserGlue.prototype = { BrowserUsageTelemetry.uninit(); SelfSupportBackend.uninit(); + UserAgentOverrides.uninit(); PageThumbs.uninit(); NewTabMessages.uninit(); AboutNewTab.uninit(); diff --git a/browser/components/places/PlacesUIUtils.jsm b/browser/components/places/PlacesUIUtils.jsm index b25835a71..17fa276aa 100644 --- a/browser/components/places/PlacesUIUtils.jsm +++ b/browser/components/places/PlacesUIUtils.jsm @@ -46,43 +46,6 @@ let gFaviconLoadDataMap = new Map(); // copied from utilityOverlay.js const TAB_DROP_TYPE = "application/x-moz-tabbrowser-tab"; -// This function isn't public both because it's synchronous and because it is -// going to be removed in bug 1072833. -function IsLivemark(aItemId) { - // Since this check may be done on each dragover event, it's worth maintaining - // a cache. - let self = IsLivemark; - if (!("ids" in self)) { - const LIVEMARK_ANNO = PlacesUtils.LMANNO_FEEDURI; - - let idsVec = PlacesUtils.annotations.getItemsWithAnnotation(LIVEMARK_ANNO); - self.ids = new Set(idsVec); - - let obs = Object.freeze({ - QueryInterface: XPCOMUtils.generateQI(Ci.nsIAnnotationObserver), - - onItemAnnotationSet(itemId, annoName) { - if (annoName == LIVEMARK_ANNO) - self.ids.add(itemId); - }, - - onItemAnnotationRemoved(itemId, annoName) { - // If annoName is set to an empty string, the item is gone. - if (annoName == LIVEMARK_ANNO || annoName == "") - self.ids.delete(itemId); - }, - - onPageAnnotationSet() { }, - onPageAnnotationRemoved() { }, - }); - PlacesUtils.annotations.addObserver(obs); - PlacesUtils.registerShutdownFunction(() => { - PlacesUtils.annotations.removeObserver(obs); - }); - } - return self.ids.has(aItemId); -} - let InternalFaviconLoader = { /** * This gets called for every inner window that is destroyed. @@ -509,6 +472,52 @@ this.PlacesUIUtils = { }, /** + * Test if a bookmark item = a live bookmark item. + * + * @param aItemId + * item identifier + * @return true if a live bookmark item, false otherwise. + * + * @note Maybe this should be removed later, see bug 1072833. + */ + _isLivemark: + function PUIU__isLivemark(aItemId) + { + // Since this check may be done on each dragover event, it's worth maintaining + // a cache. + let self = PUIU__isLivemark; + if (!("ids" in self)) { + const LIVEMARK_ANNO = PlacesUtils.LMANNO_FEEDURI; + + let idsVec = PlacesUtils.annotations.getItemsWithAnnotation(LIVEMARK_ANNO); + self.ids = new Set(idsVec); + + let obs = Object.freeze({ + QueryInterface: XPCOMUtils.generateQI(Ci.nsIAnnotationObserver), + + onItemAnnotationSet(itemId, annoName) { + if (annoName == LIVEMARK_ANNO) + self.ids.add(itemId); + }, + + onItemAnnotationRemoved(itemId, annoName) { + // If annoName is set to an empty string, the item is gone. + if (annoName == LIVEMARK_ANNO || annoName == "") + self.ids.delete(itemId); + }, + + onPageAnnotationSet() { }, + onPageAnnotationRemoved() { }, + }); + PlacesUtils.annotations.addObserver(obs); + PlacesUtils.registerShutdownFunction(() => { + PlacesUtils.annotations.removeObserver(obs); + }); + } + return self.ids.has(aItemId); + }, + + /** * Constructs a Transaction for the drop or paste of a blob of data into * a container. * @param data @@ -857,7 +866,7 @@ this.PlacesUIUtils = { throw new Error("invalid value for aNodeOrItemId"); } - if (itemId == PlacesUtils.placesRootId || IsLivemark(itemId)) + if (itemId == PlacesUtils.placesRootId || this._isLivemark(itemId)) return true; // leftPaneFolderId, and as a result, allBookmarksFolderId, is a lazy getter diff --git a/browser/components/places/content/treeView.js b/browser/components/places/content/treeView.js index 5baf3a21f..181bb5404 100644 --- a/browser/components/places/content/treeView.js +++ b/browser/components/places/content/treeView.js @@ -170,7 +170,9 @@ PlacesTreeView.prototype = { let row = -1; let useNodeIndex = typeof(aNodeIndex) == "number"; if (parent == this._rootNode) { - row = useNodeIndex ? aNodeIndex : this._rootNode.getChildIndex(aNode); + if (aNode instanceof Ci.nsINavHistoryResultNode) { + row = useNodeIndex ? aNodeIndex : this._rootNode.getChildIndex(aNode); + } } else if (useNodeIndex && typeof(aParentRow) == "number") { // If we have both the row of the parent node, and the node's index, we diff --git a/browser/components/preferences/in-content/content.js b/browser/components/preferences/in-content/content.js index 5ba334b02..a957b1dd5 100644 --- a/browser/components/preferences/in-content/content.js +++ b/browser/components/preferences/in-content/content.js @@ -78,6 +78,7 @@ var gContentPane = { document.getElementById("notificationsPolicyLearnMore").setAttribute("href", notificationInfoURL); +#ifdef MOZ_EME let drmInfoURL = Services.urlFormatter.formatURLPref("app.support.baseURL") + "drm-content"; document.getElementById("playDRMContentLink").setAttribute("href", drmInfoURL); @@ -91,6 +92,7 @@ var gContentPane = { // of the pane hiding/showing code potentially interfering: document.getElementById("drmGroup").setAttribute("style", "display: none !important"); } +#endif }, // UTILITY FUNCTIONS diff --git a/browser/components/preferences/in-content/content.xul b/browser/components/preferences/in-content/content.xul index c646c16a2..9434cba62 100644 --- a/browser/components/preferences/in-content/content.xul +++ b/browser/components/preferences/in-content/content.xul @@ -6,10 +6,12 @@ <preferences id="contentPreferences" hidden="true" data-category="paneContent"> +#ifdef MOZ_EME <!-- DRM content --> <preference id="media.eme.enabled" name="media.eme.enabled" type="bool"/> +#endif <!-- Popups --> <preference id="dom.disable_open_during_load" @@ -40,6 +42,7 @@ <html:a class="help-button" target="_blank" aria-label="&helpButton.label;"></html:a> </hbox> +#ifdef MOZ_EME <groupbox id="drmGroup" data-category="paneContent" hidden="true"> <caption><label>&drmContent.label;</label></caption> <grid id="contentGrid2"> @@ -60,6 +63,7 @@ </rows> </grid> </groupbox> +#endif <groupbox id="notificationsGroup" data-category="paneContent" hidden="true"> <caption><label>¬ificationsPolicy.label;</label></caption> diff --git a/browser/components/preferences/in-content/jar.mn b/browser/components/preferences/in-content/jar.mn index 52f536e96..3497ff555 100644 --- a/browser/components/preferences/in-content/jar.mn +++ b/browser/components/preferences/in-content/jar.mn @@ -12,7 +12,7 @@ browser.jar: content/browser/preferences/in-content/containers.js content/browser/preferences/in-content/advanced.js content/browser/preferences/in-content/applications.js - content/browser/preferences/in-content/content.js +* content/browser/preferences/in-content/content.js content/browser/preferences/in-content/sync.js content/browser/preferences/in-content/security.js content/browser/preferences/in-content/search.js diff --git a/browser/components/preferences/in-content/main.js b/browser/components/preferences/in-content/main.js index 4f20ba8c3..bac771bec 100644 --- a/browser/components/preferences/in-content/main.js +++ b/browser/components/preferences/in-content/main.js @@ -11,11 +11,6 @@ Components.utils.import("resource:///modules/TransientPrefs.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "OS", "resource://gre/modules/osfile.jsm"); -if (AppConstants.E10S_TESTING_ONLY) { - XPCOMUtils.defineLazyModuleGetter(this, "UpdateUtils", - "resource://gre/modules/UpdateUtils.jsm"); -} - var gMainPane = { /** * Initialization of this. @@ -83,26 +78,6 @@ var gMainPane = { setEventListener("chooseFolder", "command", gMainPane.chooseFolder); - if (AppConstants.E10S_TESTING_ONLY) { - setEventListener("e10sAutoStart", "command", - gMainPane.enableE10SChange); - let e10sCheckbox = document.getElementById("e10sAutoStart"); - - let e10sPref = document.getElementById("browser.tabs.remote.autostart"); - let e10sTempPref = document.getElementById("e10sTempPref"); - let e10sForceEnable = document.getElementById("e10sForceEnable"); - - let preffedOn = e10sPref.value || e10sTempPref.value || e10sForceEnable.value; - - if (preffedOn) { - // The checkbox is checked if e10s is preffed on and enabled. - e10sCheckbox.checked = Services.appinfo.browserTabsRemoteAutostart; - - // but if it's force disabled, then the checkbox is disabled. - e10sCheckbox.disabled = !Services.appinfo.browserTabsRemoteAutostart; - } - } - if (AppConstants.MOZ_DEV_EDITION) { let uAppData = OS.Constants.Path.userApplicationDataDir; let ignoreSeparateProfile = OS.Path.join(uAppData, "ignore-dev-edition-profile"); @@ -123,36 +98,7 @@ var gMainPane = { enableE10SChange: function () { - if (AppConstants.E10S_TESTING_ONLY) { - let e10sCheckbox = document.getElementById("e10sAutoStart"); - let e10sPref = document.getElementById("browser.tabs.remote.autostart"); - let e10sTempPref = document.getElementById("e10sTempPref"); - - let prefsToChange; - if (e10sCheckbox.checked) { - // Enabling e10s autostart - prefsToChange = [e10sPref]; - } else { - // Disabling e10s autostart - prefsToChange = [e10sPref]; - if (e10sTempPref.value) { - prefsToChange.push(e10sTempPref); - } - } - - let buttonIndex = confirmRestartPrompt(e10sCheckbox.checked, 0, - true, false); - if (buttonIndex == CONFIRM_RESTART_PROMPT_RESTART_NOW) { - for (let prefToChange of prefsToChange) { - prefToChange.value = e10sCheckbox.checked; - } - - Services.startup.quit(Ci.nsIAppStartup.eAttemptQuit | Ci.nsIAppStartup.eRestart); - } - - // Revert the checkbox in case we didn't quit - e10sCheckbox.checked = e10sPref.value || e10sTempPref.value; - } + // **STUB** }, separateProfileModeChange: function () diff --git a/browser/components/preferences/in-content/main.xul b/browser/components/preferences/in-content/main.xul index 526bbc714..8eca11877 100644 --- a/browser/components/preferences/in-content/main.xul +++ b/browser/components/preferences/in-content/main.xul @@ -9,18 +9,6 @@ <preferences id="mainPreferences" hidden="true" data-category="paneGeneral"> -#ifdef E10S_TESTING_ONLY - <preference id="browser.tabs.remote.autostart" - name="browser.tabs.remote.autostart" - type="bool"/> - <preference id="e10sTempPref" - name="browser.tabs.remote.autostart.2" - type="bool"/> - <preference id="e10sForceEnable" - name="browser.tabs.remote.force-enable" - type="bool"/> -#endif - <!-- Startup --> <preference id="browser.startup.page" name="browser.startup.page" @@ -135,11 +123,6 @@ </vbox> #endif -#ifdef E10S_TESTING_ONLY - <checkbox id="e10sAutoStart" - label="&e10sEnabled.label;"/> -#endif - #ifdef HAVE_SHELL_SERVICE <vbox id="defaultBrowserBox"> <hbox align="center"> diff --git a/browser/components/sessionstore/SessionStore.jsm b/browser/components/sessionstore/SessionStore.jsm index 2f44b2af3..93e21357f 100644 --- a/browser/components/sessionstore/SessionStore.jsm +++ b/browser/components/sessionstore/SessionStore.jsm @@ -186,6 +186,15 @@ XPCOMUtils.defineLazyModuleGetter(this, "ViewSourceBrowser", XPCOMUtils.defineLazyModuleGetter(this, "AsyncShutdown", "resource://gre/modules/AsyncShutdown.jsm"); +Object.defineProperty(this, "HUDService", { + get: function HUDService_getter() { + let devtools = Cu.import("resource://devtools/shared/Loader.jsm", {}).devtools; + return devtools.require("devtools/client/webconsole/hudservice").HUDService; + }, + configurable: true, + enumerable: true +}); + /** * |true| if we are in debug mode, |false| otherwise. * Debug mode is controlled by preference browser.sessionstore.debug @@ -2570,10 +2579,16 @@ var SessionStoreInternal = { this._capClosedWindows(); } + // Scratchpad if (lastSessionState.scratchpads) { ScratchpadManager.restoreSession(lastSessionState.scratchpads); } + // The Browser Console + if (lastSessionState.browserConsole) { + HUDService.restoreBrowserConsoleSession(); + } + // Set data that persists between sessions this._recentCrashes = lastSessionState.session && lastSessionState.session.recentCrashes || 0; @@ -2931,6 +2946,7 @@ var SessionStoreInternal = { global: this._globalState.getState() }; + // Scratchpad if (Cu.isModuleLoaded("resource://devtools/client/scratchpad/scratchpad-manager.jsm")) { // get open Scratchpad window states too let scratchpads = ScratchpadManager.getSessionState(); @@ -2939,6 +2955,9 @@ var SessionStoreInternal = { } } + // The Browser Console + state.browserConsole = HUDService.getBrowserConsoleSessionState(); + // Persist the last session if we deferred restoring it if (LastSession.canRestore) { state.lastSessionState = LastSession.getState(); @@ -3290,9 +3309,15 @@ var SessionStoreInternal = { this.restoreWindow(aWindow, root.windows[0], aOptions); + // Scratchpad if (aState.scratchpads) { ScratchpadManager.restoreSession(aState.scratchpads); } + + // The Browser Console + if (aState.browserConsole) { + HUDService.restoreBrowserConsoleSession(); + } }, /** diff --git a/browser/components/shell/nsSetDefaultBrowser.js b/browser/components/shell/nsSetDefaultBrowser.js index bb09ab213..c7a78c538 100644 --- a/browser/components/shell/nsSetDefaultBrowser.js +++ b/browser/components/shell/nsSetDefaultBrowser.js @@ -21,7 +21,7 @@ nsSetDefaultBrowser.prototype = { } }, - helpInfo: " --setDefaultBrowser Set this app as the default browser.\n", + helpInfo: " --setDefaultBrowser Set this app as the default browser.\n", classID: Components.ID("{F57899D0-4E2C-4ac6-9E29-50C736103B0C}"), QueryInterface: XPCOMUtils.generateQI([Ci.nsICommandLineHandler]), diff --git a/browser/config/version.txt b/browser/config/version.txt index b406fbef6..d90a8c220 100644 --- a/browser/config/version.txt +++ b/browser/config/version.txt @@ -1 +1 @@ -55.0.0 +52.9.0 diff --git a/browser/config/version_display.txt b/browser/config/version_display.txt index b406fbef6..d90a8c220 100644 --- a/browser/config/version_display.txt +++ b/browser/config/version_display.txt @@ -1 +1 @@ -55.0.0 +52.9.0 diff --git a/browser/confvars.sh b/browser/confvars.sh index 65cf154e9..8cdd6e1f3 100755 --- a/browser/confvars.sh +++ b/browser/confvars.sh @@ -18,7 +18,7 @@ if test "$OS_ARCH" = "WINNT"; then MOZ_MAINTENANCE_SERVICE= fi -# For Basilisk we want to use 55.0.YYYY.MM.DD as MOZ_APP_VERSION in release +# For Basilisk we want to use 52.9.YYYY.MM.DD as MOZ_APP_VERSION in release # builds so add-on developers have something to target while maintaining # Firefox compatiblity. # To enable add "export BASILISK_VERSION=1" to the .mozconfig file. @@ -26,7 +26,7 @@ fi # don't export the variable if you are in development or don't care. # When not exported we fall back the value in the version*.txt file. if test -n "$BASILISK_VERSION" ; then - MOZ_APP_VERSION=55.0.`date --utc '+%Y.%m.%d'` + MOZ_APP_VERSION=52.9.`date --utc '+%Y.%m.%d'` MOZ_APP_VERSION_DISPLAY=`date --utc '+%Y.%m.%d'` else MOZ_APP_VERSION=`cat ${_topsrcdir}/$MOZ_BUILD_APP/config/version.txt` @@ -53,17 +53,10 @@ MOZ_PROFILE_MIGRATOR=1 MOZ_APP_STATIC_INI=1 MOZ_WEBGL_CONFORMANT=1 MOZ_JSDOWNLOADS=1 -MOZ_RUST_MP4PARSE=1 -MOZ_RUST_URLPARSE=1 +MOZ_WEBRTC=1 MOZ_WEBEXTENSIONS=1 +MOZ_DEVTOOLS=1 # Disable checking that add-ons are signed by the trusted root MOZ_ADDON_SIGNING=0 MOZ_REQUIRE_SIGNING=0 - -# Include the DevTools client, not just the server (which is the default) -if test -n "$BASILISK_DISABLE_DEVTOOLS" ; then -MOZ_DEVTOOLS= -else -MOZ_DEVTOOLS=1 -fi diff --git a/browser/installer/Makefile.in b/browser/installer/Makefile.in index ccfce3cd9..4a934fe45 100644 --- a/browser/installer/Makefile.in +++ b/browser/installer/Makefile.in @@ -13,11 +13,7 @@ MOZ_PKG_MANIFEST = $(srcdir)/package-manifest.in MOZ_PKG_DUPEFLAGS = -f $(srcdir)/allowed-dupes.mn # Some files have been already bundled with xulrunner -ifndef MOZ_MULET MOZ_PKG_FATAL_WARNINGS = 1 -else -DEFINES += -DMOZ_MULET -endif # When packaging an artifact build not all xpt files expected by the # packager will be present. diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in index c2269c069..015daa8c7 100644 --- a/browser/installer/package-manifest.in +++ b/browser/installer/package-manifest.in @@ -821,15 +821,13 @@ bin/libfreebl_32int64_3.so ; media +#ifdef MOZ_EME @RESPATH@/gmp-clearkey/0.1/@DLL_PREFIX@clearkey@DLL_SUFFIX@ @RESPATH@/gmp-clearkey/0.1/clearkey.info +#endif ; gfx #ifdef XP_WIN @RESPATH@/components/GfxSanityTest.manifest @RESPATH@/components/SanityTest.js #endif - -#ifdef MOZ_MULET -#include ../../b2g/installer/package-manifest.in -#endif diff --git a/browser/installer/windows/Makefile.in b/browser/installer/windows/Makefile.in index a8305d077..600bdfeb6 100644 --- a/browser/installer/windows/Makefile.in +++ b/browser/installer/windows/Makefile.in @@ -5,7 +5,7 @@ include $(topsrcdir)/toolkit/mozapps/installer/package-name.mk CONFIG_DIR = instgen -SFX_MODULE = $(topsrcdir)/other-licenses/7zstub/firefox/7zSD.sfx +SFX_MODULE = $(topsrcdir)/other-licenses/7zstub/uxp/7zSD.sfx INSTALLER_FILES = \ app.tag \ diff --git a/browser/locales/en-US/chrome/browser/browser.properties b/browser/locales/en-US/chrome/browser/browser.properties index 6f3aab397..31f61632b 100644 --- a/browser/locales/en-US/chrome/browser/browser.properties +++ b/browser/locales/en-US/chrome/browser/browser.properties @@ -85,11 +85,14 @@ addonInstallError-2=The add-on could not be installed because it does not match addonInstallError-3=The add-on downloaded from this site could not be installed because it appears to be corrupt. addonInstallError-4=%2$S could not be installed because %1$S cannot modify the needed file. addonInstallError-5=%1$S has prevented this site from installing an unverified add-on. +addonInstallError-9=%2$S could not be installed because %1$S does not support WebExtensions. addonLocalInstallError-1=This add-on could not be installed because of a filesystem error. addonLocalInstallError-2=This add-on could not be installed because it does not match the add-on %1$S expected. addonLocalInstallError-3=This add-on could not be installed because it appears to be corrupt. addonLocalInstallError-4=%2$S could not be installed because %1$S cannot modify the needed file. addonLocalInstallError-5=This add-on could not be installed because it has not been verified. +addonLocalInstallError-9=%2$S could not be installed because %1$S does not support WebExtensions. + # LOCALIZATION NOTE (addonInstallErrorIncompatible): # %1$S is the application name, %2$S is the application version, %3$S is the add-on name diff --git a/browser/modules/ContentWebRTC.jsm b/browser/modules/ContentWebRTC.jsm index bfb98a868..fd50176a0 100644 --- a/browser/modules/ContentWebRTC.jsm +++ b/browser/modules/ContentWebRTC.jsm @@ -208,6 +208,7 @@ function prompt(aContentWindow, aWindowID, aCallID, aConstraints, aDevices, aSec let request = { callID: aCallID, windowID: aWindowID, + origin: aContentWindow.origin, documentURI: aContentWindow.document.documentURI, secure: aSecure, requestTypes: requestTypes, diff --git a/browser/modules/webrtcUI.jsm b/browser/modules/webrtcUI.jsm index b24135bfc..08de46bb3 100644 --- a/browser/modules/webrtcUI.jsm +++ b/browser/modules/webrtcUI.jsm @@ -290,7 +290,13 @@ function prompt(aBrowser, aRequest) { let {audioDevices: audioDevices, videoDevices: videoDevices, sharingScreen: sharingScreen, sharingAudio: sharingAudio, requestTypes: requestTypes} = aRequest; - let uri = Services.io.newURI(aRequest.documentURI, null, null); + let uri; + try { + // This fails for principals that serialize to "null", e.g. file URIs. + uri = Services.io.newURI(aRequest.origin, null, null); + } catch (e) { + uri = Services.io.newURI(aRequest.documentURI, null, null); + } let host = getHost(uri); let chromeDoc = aBrowser.ownerDocument; let chromeWin = chromeDoc.defaultView; diff --git a/browser/themes/linux/jar.mn b/browser/themes/linux/jar.mn index e09029438..0bf023f35 100644 --- a/browser/themes/linux/jar.mn +++ b/browser/themes/linux/jar.mn @@ -129,9 +129,6 @@ browser.jar: skin/classic/browser/syncQuota.css skin/classic/browser/syncProgress-horizontalbar.png skin/classic/browser/syncProgress-horizontalbar@2x.png -#ifdef E10S_TESTING_ONLY - skin/classic/browser/e10s-64@2x.png (../shared/e10s-64@2x.png) -#endif [extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}] chrome.jar: % override chrome://browser/skin/feeds/audioFeedIcon.png chrome://browser/skin/feeds/feedIcon.png diff --git a/browser/themes/osx/jar.mn b/browser/themes/osx/jar.mn index fd9b6127d..98ba4e6ea 100644 --- a/browser/themes/osx/jar.mn +++ b/browser/themes/osx/jar.mn @@ -209,9 +209,6 @@ browser.jar: skin/classic/browser/yosemite/tab-stroke-end-inactive@2x.png (tabbrowser/tab-stroke-end-yosemite-inactive@2x.png) skin/classic/browser/yosemite/tab-stroke-start-inactive.png (tabbrowser/tab-stroke-start-yosemite-inactive.png) skin/classic/browser/yosemite/tab-stroke-start-inactive@2x.png (tabbrowser/tab-stroke-start-yosemite-inactive@2x.png) -#ifdef E10S_TESTING_ONLY - skin/classic/browser/e10s-64@2x.png (../shared/e10s-64@2x.png) -#endif [extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}] chrome.jar: % override chrome://browser/skin/feeds/audioFeedIcon.png chrome://browser/skin/feeds/feedIcon.png diff --git a/browser/themes/shared/incontentprefs/preferences.inc.css b/browser/themes/shared/incontentprefs/preferences.inc.css index 577baa6ed..0e62660de 100644 --- a/browser/themes/shared/incontentprefs/preferences.inc.css +++ b/browser/themes/shared/incontentprefs/preferences.inc.css @@ -173,6 +173,11 @@ treecol { margin-inline-start: 0; } +#browserHomePage:-moz-locale-dir(rtl) input { + unicode-bidi: plaintext; + direction: rtl; +} + /* Content pane */ #playDRMContentLink { /* Line up with the buttons in the other grid bits: */ diff --git a/browser/themes/windows/jar.mn b/browser/themes/windows/jar.mn index 10abfd001..410148645 100644 --- a/browser/themes/windows/jar.mn +++ b/browser/themes/windows/jar.mn @@ -169,9 +169,6 @@ browser.jar: skin/classic/browser/syncProgress-toolbar-inverted@2x.png skin/classic/browser/syncProgress-toolbar-win7.png skin/classic/browser/syncProgress-toolbar-win7@2x.png -#ifdef E10S_TESTING_ONLY - skin/classic/browser/e10s-64@2x.png (../shared/e10s-64@2x.png) -#endif [extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}] chrome.jar: % override chrome://browser/skin/page-livemarks.png chrome://browser/skin/feeds/feedIcon16.png |