diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index a692e51ec89..7257d146c5f 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -12,7 +12,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index f3952d90c94..08a521270b1 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -11,7 +11,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index a692e51ec89..7257d146c5f 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -12,7 +12,7 @@ - + diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index eadb15e4b31..84d84441b55 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,4 +1,4 @@ { - "revision": "a8b221aeef715c5d8159faa5b31f3ee15e5c3c5a", + "revision": "b9f86acc02f79d37ad0e10e9ee3b9cc75f870126", "repo_path": "/integration/gaia-central" } diff --git a/b2g/config/hamachi/sources.xml b/b2g/config/hamachi/sources.xml index 22e99091ce1..6aa42f13b07 100644 --- a/b2g/config/hamachi/sources.xml +++ b/b2g/config/hamachi/sources.xml @@ -11,7 +11,7 @@ - + diff --git a/b2g/config/helix/sources.xml b/b2g/config/helix/sources.xml index 75ce03d0f9a..650f52dfdd3 100644 --- a/b2g/config/helix/sources.xml +++ b/b2g/config/helix/sources.xml @@ -10,7 +10,7 @@ - + diff --git a/b2g/config/inari/sources.xml b/b2g/config/inari/sources.xml index 3f201cf29f9..22d372ecb91 100644 --- a/b2g/config/inari/sources.xml +++ b/b2g/config/inari/sources.xml @@ -12,7 +12,7 @@ - + diff --git a/b2g/config/leo/sources.xml b/b2g/config/leo/sources.xml index c7dee538c37..b5d049a3768 100644 --- a/b2g/config/leo/sources.xml +++ b/b2g/config/leo/sources.xml @@ -11,7 +11,7 @@ - + diff --git a/b2g/config/mako/sources.xml b/b2g/config/mako/sources.xml index 967a65db38a..cb3bfe05d7e 100644 --- a/b2g/config/mako/sources.xml +++ b/b2g/config/mako/sources.xml @@ -11,7 +11,7 @@ - + diff --git a/b2g/config/wasabi/sources.xml b/b2g/config/wasabi/sources.xml index bba979c7edd..a5c9f83e4f7 100644 --- a/b2g/config/wasabi/sources.xml +++ b/b2g/config/wasabi/sources.xml @@ -11,7 +11,7 @@ - + diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js index a5811ab9ed9..7a7ee27e659 100644 --- a/browser/base/content/browser.js +++ b/browser/base/content/browser.js @@ -6503,6 +6503,7 @@ var gIdentityHandler = { ]; let options = { dismissed: true, + learnMoreURL: Services.urlFormatter.formatURLPref("app.support.baseURL") + "mixed-content", }; PopupNotifications.show(gBrowser.selectedBrowser, "mixed-content-blocked", messageString, "mixed-content-blocked-notification-icon", diff --git a/browser/base/content/popup-notifications.inc b/browser/base/content/popup-notifications.inc index 1492870d8af..a6a219cdc2f 100644 --- a/browser/base/content/popup-notifications.inc +++ b/browser/base/content/popup-notifications.inc @@ -35,17 +35,9 @@ - - @@ -60,9 +52,5 @@ &mixedContentBlocked.moreinfo; - - diff --git a/browser/components/nsBrowserGlue.js b/browser/components/nsBrowserGlue.js index c488db0485a..98ad081c106 100644 --- a/browser/components/nsBrowserGlue.js +++ b/browser/components/nsBrowserGlue.js @@ -1914,17 +1914,20 @@ ContentPermissionPrompt.prototype = { if (perm.type == "pointerLock") { // If there's no mainAction, this is the autoAllow warning prompt. let autoAllow = !mainAction; - aOptions = { - removeOnDismissal: autoAllow, - eventCallback: type => { - if (type == "removed") { - browser.removeEventListener("mozfullscreenchange", onFullScreen, true); - if (autoAllow) { - aRequest.allow(); - } + + if (!aOptions) + aOptions = {}; + + aOptions.removeOnDismissal = autoAllow; + aOptions.eventCallback = type => { + if (type == "removed") { + browser.removeEventListener("mozfullscreenchange", onFullScreen, true); + if (autoAllow) { + aRequest.allow(); } - }, - }; + } + } + } var popup = chromeWin.PopupNotifications.show(browser, aNotificationId, aMessage, aAnchorId, @@ -1982,15 +1985,14 @@ ContentPermissionPrompt.prototype = { }); } - var chromeWin = this._getBrowserForRequest(aRequest).ownerDocument.defaultView; - var link = chromeWin.document.getElementById("geolocation-learnmore-link"); - link.value = browserBundle.GetStringFromName("geolocation.learnMore"); - link.href = Services.urlFormatter.formatURLPref("browser.geolocation.warning.infoURL"); + var options = { + learnMoreURL: Services.urlFormatter.formatURLPref("browser.geolocation.warning.infoURL"), + }; secHistogram.add(Ci.nsISecurityUITelemetry.WARNING_GEOLOCATION_REQUEST); this._showPrompt(aRequest, message, "geo", actions, "geolocation", - "geo-notification-icon", null); + "geo-notification-icon", options); }, _promptWebNotifications : function(aRequest) { diff --git a/browser/locales/en-US/chrome/browser/browser.dtd b/browser/locales/en-US/chrome/browser/browser.dtd index 8fee283f03f..0e05c1fd092 100644 --- a/browser/locales/en-US/chrome/browser/browser.dtd +++ b/browser/locales/en-US/chrome/browser/browser.dtd @@ -709,7 +709,6 @@ just addresses the organization to follow, e.g. "This site is run by " --> - diff --git a/browser/locales/en-US/chrome/browser/browser.properties b/browser/locales/en-US/chrome/browser/browser.properties index 840cdee4c1b..a9a3c5af55a 100644 --- a/browser/locales/en-US/chrome/browser/browser.properties +++ b/browser/locales/en-US/chrome/browser/browser.properties @@ -320,9 +320,6 @@ geolocation.neverShareLocation=Never Share Location geolocation.neverShareLocation.accesskey=N geolocation.shareWithSite=Would you like to share your location with %S? geolocation.shareWithFile=Would you like to share your location with the file %S? -# LOCALIZATION NOTE (geolocation.learnMore): Use the unicode ellipsis char, \u2026, -# or use "..." if \u2026 doesn't suit traditions in your locale. -geolocation.learnMore=Learn More… webNotifications.showForSession=Show for this session webNotifications.showForSession.accesskey=s @@ -444,7 +441,6 @@ service.toolbarbutton.tooltiptext=Services service.install.description=Would you like to enable services from %1$S to display in your %2$S toolbar and sidebar? service.install.ok.label=Enable Services service.install.ok.accesskey=E -service.install.learnmore=Learn More… # LOCALIZATION NOTE (social.turnOff.label): %S is the name of the social provider social.turnOff.label=Turn off %S diff --git a/browser/themes/linux/browser.css b/browser/themes/linux/browser.css index 5c93207830b..af341838be2 100644 --- a/browser/themes/linux/browser.css +++ b/browser/themes/linux/browser.css @@ -1923,8 +1923,7 @@ toolbar[iconsize="small"] .toolbarbutton-badge-container { #servicesInstall-notification-icon { list-style-image: url(chrome://browser/skin/social/services-16.png); } -#social-undoactivation-button, -#servicesInstall-learnmore-link { +#social-undoactivation-button { -moz-margin-start: 0; /* override default label margin to match description margin */ } diff --git a/browser/themes/osx/browser.css b/browser/themes/osx/browser.css index 6cb8eeac192..dd9c1d98add 100644 --- a/browser/themes/osx/browser.css +++ b/browser/themes/osx/browser.css @@ -3304,10 +3304,6 @@ toolbarbutton.chevron > .toolbarbutton-menu-dropmarker { } } -#geolocation-learnmore-link { - -moz-margin-start: 0; /* override default label margin to match description margin */ -} - .indexedDB-notification-icon, #indexedDB-notification-icon { list-style-image: url(chrome://global/skin/icons/question-16.png); @@ -3600,10 +3596,6 @@ toolbarbutton.chevron > .toolbarbutton-menu-dropmarker { } -#mixed-content-blocked-helplink { - margin: 0px; -} - .popup-notification-icon[popupid="webRTC-sharingDevices"], .popup-notification-icon[popupid="webRTC-shareDevices"] { list-style-image: url(chrome://browser/skin/webRTC-shareDevice-64.png); @@ -3970,8 +3962,7 @@ toolbar[mode="icons"] > *|* > .toolbarbutton-badge[badge]:not([badge=""]):-moz-l } } -#social-undoactivation-button, -#servicesInstall-learnmore-link { +#social-undoactivation-button { -moz-margin-start: 0; /* override default label margin to match description margin */ } diff --git a/browser/themes/windows/browser.css b/browser/themes/windows/browser.css index 2fa9963efe6..cd544cab763 100644 --- a/browser/themes/windows/browser.css +++ b/browser/themes/windows/browser.css @@ -2385,8 +2385,7 @@ toolbarpaletteitem[place="palette"] > #switch-to-metro-button { #servicesInstall-notification-icon { list-style-image: url(chrome://browser/skin/social/services-16.png); } -#social-undoactivation-button, -#servicesInstall-learnmore-link { +#social-undoactivation-button { -moz-margin-start: 0; /* override default label margin to match description margin */ } diff --git a/dom/browser-element/mochitest/priority/test_NestedFrames.html b/dom/browser-element/mochitest/priority/test_NestedFrames.html index 21184a43234..7d9899bdd22 100644 --- a/dom/browser-element/mochitest/priority/test_NestedFrames.html +++ b/dom/browser-element/mochitest/priority/test_NestedFrames.html @@ -49,13 +49,13 @@ function runTest() { // Note that this is the process corresponding to the /inner/ iframe. The // outer iframe runs in-process (because it has remote=false). var childID = null; - expectOnlyOneProcessCreated().then(function(chid) { - childID = chid; - return Promise.all( - [expectPriorityChange(childID, 'FOREGROUND'), - expectMozbrowserEvent(iframe, 'loadend')] - ); - }).then(function() { + Promise.all( + [expectOnlyOneProcessCreated().then(function(child) { + childID = child; + return expectPriorityChange(childID, 'FOREGROUND'); + }), + expectMozbrowserEvent(iframe, 'loadend')] + ).then(function() { // Send the outer iframe into the background. This should change the // priority of the inner frame's process to BACKGROUND. var p = expectPriorityChange(childID, 'BACKGROUND'); diff --git a/mobile/android/base/home/BookmarksPanel.java b/mobile/android/base/home/BookmarksPanel.java index dc3aa649ee4..73565f4ecc2 100644 --- a/mobile/android/base/home/BookmarksPanel.java +++ b/mobile/android/base/home/BookmarksPanel.java @@ -123,10 +123,6 @@ public class BookmarksPanel extends HomeFragment { }); mList.setAdapter(mListAdapter); - // Invalidate the cached value that keeps track of whether or - // not desktop bookmarks (or reading list items) exist. - BrowserDB.invalidateCachedState(); - // Create callbacks before the initial loader is started. mLoaderCallbacks = new CursorLoaderCallbacks(); loadIfVisible(); @@ -207,6 +203,14 @@ public class BookmarksPanel extends HomeFragment { return BrowserDB.getBookmarksInFolder(getContext().getContentResolver(), mFolderInfo.id); } + @Override + public void onContentChanged() { + // Invalidate the cached value that keeps track of whether or + // not desktop bookmarks exist. + BrowserDB.invalidateCachedState(); + super.onContentChanged(); + } + public FolderInfo getFolderInfo() { return mFolderInfo; } diff --git a/mobile/android/locales/en-US/chrome/notification.dtd b/mobile/android/locales/en-US/chrome/notification.dtd index d45e71b6723..42cd73e50df 100644 --- a/mobile/android/locales/en-US/chrome/notification.dtd +++ b/mobile/android/locales/en-US/chrome/notification.dtd @@ -1,12 +1,3 @@ - - - - diff --git a/toolkit/components/social/SocialService.jsm b/toolkit/components/social/SocialService.jsm index 82efd6923b9..dfdfc6f5631 100644 --- a/toolkit/components/social/SocialService.jsm +++ b/toolkit/components/social/SocialService.jsm @@ -574,14 +574,13 @@ this.SocialService = { }, }; - let link = chromeWin.document.getElementById("servicesInstall-learnmore-link"); - link.value = browserBundle.GetStringFromName("service.install.learnmore"); - link.href = Services.urlFormatter.formatURLPref("app.support.baseURL") + "social-api"; - + let options = { + learnMoreURL: Services.urlFormatter.formatURLPref("app.support.baseURL") + "social-api", + }; let anchor = "servicesInstall-notification-icon"; let notificationid = "servicesInstall"; chromeWin.PopupNotifications.show(browser, notificationid, message, anchor, - action, [], {}); + action, [], options); }, installProvider: function(aDOMDocument, data, installCallback) { diff --git a/toolkit/content/widgets/notification.xml b/toolkit/content/widgets/notification.xml index 08d3298a839..41d128bb070 100644 --- a/toolkit/content/widgets/notification.xml +++ b/toolkit/content/widgets/notification.xml @@ -456,6 +456,8 @@ + &learnMore; diff --git a/toolkit/locales/en-US/chrome/global/notification.dtd b/toolkit/locales/en-US/chrome/global/notification.dtd index 74bbdbb32c3..75aea0b9866 100644 --- a/toolkit/locales/en-US/chrome/global/notification.dtd +++ b/toolkit/locales/en-US/chrome/global/notification.dtd @@ -7,3 +7,5 @@ + + diff --git a/toolkit/modules/PopupNotifications.jsm b/toolkit/modules/PopupNotifications.jsm index 60afd77f5ae..6b4cdf8d6d0 100644 --- a/toolkit/modules/PopupNotifications.jsm +++ b/toolkit/modules/PopupNotifications.jsm @@ -260,6 +260,10 @@ PopupNotifications.prototype = { * A string. URL of the image to be displayed in the popup. * Normally specified in CSS using list-style-image and the * .popup-notification-icon[popupid=...] selector. + * learnMoreURL: + * A string URL. Setting this property will make the + * prompt display a "Learn More" link that, when clicked, + * opens the URL in a new tab. * @returns the Notification object corresponding to the added notification. */ show: function PopupNotifications_show(browser, id, message, anchorID, @@ -547,6 +551,11 @@ PopupNotifications.prototype = { if (n.options.popupIconURL) popupnotification.setAttribute("icon", n.options.popupIconURL); + if (n.options.learnMoreURL) + popupnotification.setAttribute("learnmoreurl", n.options.learnMoreURL); + else + popupnotification.removeAttribute("learnmoreurl"); + popupnotification.notification = n; if (n.secondaryActions) { diff --git a/toolkit/themes/linux/global/notification.css b/toolkit/themes/linux/global/notification.css index c29d876f73e..caea875c2c2 100644 --- a/toolkit/themes/linux/global/notification.css +++ b/toolkit/themes/linux/global/notification.css @@ -63,6 +63,14 @@ notification[type="critical"] { max-width: 24em; } +.popup-notification-learnmore-link { + margin-top: 1em !important; +} + +.popup-notification-learnmore-link:not([href]) { + display: none; +} + .popup-notification-button-container { margin-top: 17px; } diff --git a/toolkit/themes/osx/global/jar.mn b/toolkit/themes/osx/global/jar.mn index 7f3f0a28803..1b5d9372e09 100644 --- a/toolkit/themes/osx/global/jar.mn +++ b/toolkit/themes/osx/global/jar.mn @@ -175,7 +175,9 @@ toolkit.jar: skin/classic/global/media/throbber.png (media/throbber.png) skin/classic/global/media/stalled.png (media/stalled.png) skin/classic/global/media/volume-empty.png (media/volume-empty.png) + skin/classic/global/media/volume-empty@2x.png (media/volume-empty@2x.png) skin/classic/global/media/volume-full.png (media/volume-full.png) + skin/classic/global/media/volume-full@2x.png (media/volume-full@2x.png) skin/classic/global/media/clicktoplay-bgtexture.png (media/clicktoplay-bgtexture.png) skin/classic/global/media/videoClickToPlayButton.svg (media/videoClickToPlayButton.svg) skin/classic/global/menu/menu-arrow.png (menu/menu-arrow.png) diff --git a/toolkit/themes/osx/global/media/videocontrols.css b/toolkit/themes/osx/global/media/videocontrols.css index f2175407a45..17557ac7203 100644 --- a/toolkit/themes/osx/global/media/videocontrols.css +++ b/toolkit/themes/osx/global/media/videocontrols.css @@ -320,6 +320,14 @@ html|table { background-image: url(chrome://global/skin/media/playButton@2x.png); background-size: 28px 28px; } + .volumeBackground { + background-image: url(chrome://global/skin/media/volume-empty@2x.png); + background-size: 32px 16px; + } + .volumeForeground { + background-image: url(chrome://global/skin/media/volume-full@2x.png); + background-size: 32px 16px; + } .muteButton { background-image: url(chrome://global/skin/media/muteButton@2x.png); background-size: 33px 28px; diff --git a/toolkit/themes/osx/global/media/volume-empty@2x.png b/toolkit/themes/osx/global/media/volume-empty@2x.png new file mode 100644 index 00000000000..ca494e89366 Binary files /dev/null and b/toolkit/themes/osx/global/media/volume-empty@2x.png differ diff --git a/toolkit/themes/osx/global/media/volume-full@2x.png b/toolkit/themes/osx/global/media/volume-full@2x.png new file mode 100644 index 00000000000..5bf63c7ee25 Binary files /dev/null and b/toolkit/themes/osx/global/media/volume-full@2x.png differ diff --git a/toolkit/themes/osx/global/notification.css b/toolkit/themes/osx/global/notification.css index ee507becbbf..35b0b6f2fdb 100644 --- a/toolkit/themes/osx/global/notification.css +++ b/toolkit/themes/osx/global/notification.css @@ -90,6 +90,15 @@ notification[type="critical"] { max-width: 24em; } +.popup-notification-learnmore-link { + margin-top: 1em !important; + -moz-margin-start: 0 !important; /* override default label margin to match description margin */ +} + +.popup-notification-learnmore-link:not([href]) { + display: none; +} + .popup-notification-button-container { margin-top: 17px; } diff --git a/toolkit/themes/windows/global/notification.css b/toolkit/themes/windows/global/notification.css index ec10e6812af..e89fad9389e 100644 --- a/toolkit/themes/windows/global/notification.css +++ b/toolkit/themes/windows/global/notification.css @@ -57,6 +57,14 @@ notification[type="critical"] { max-width: 24em; } +.popup-notification-learnmore-link { + margin-top: 1em !important; +} + +.popup-notification-learnmore-link:not([href]) { + display: none; +} + .popup-notification-button-container { margin-top: 17px; }