summarylogtreecommitdiffstats
path: root/firefox-38-disable-loop.patch
diff options
context:
space:
mode:
Diffstat (limited to 'firefox-38-disable-loop.patch')
-rw-r--r--firefox-38-disable-loop.patch757
1 files changed, 757 insertions, 0 deletions
diff --git a/firefox-38-disable-loop.patch b/firefox-38-disable-loop.patch
new file mode 100644
index 000000000000..3ef2fbd3b92e
--- /dev/null
+++ b/firefox-38-disable-loop.patch
@@ -0,0 +1,757 @@
+diff -Naur mozilla-esr38.bak/browser/app/profile/firefox.js mozilla-esr38/browser/app/profile/firefox.js
+--- mozilla-esr38.bak/browser/app/profile/firefox.js 2015-09-16 18:44:17.000000000 +0200
++++ mozilla-esr38/browser/app/profile/firefox.js 2015-10-01 23:03:06.769052088 +0200
+@@ -1687,43 +1687,6 @@
+ // (This is intentionally on the high side; see bug 746055.)
+ pref("image.mem.max_decoded_image_kb", 256000);
+
+-pref("loop.enabled", false);
+-pref("loop.screenshare.enabled", false);
+-pref("loop.server", "https://loop.services.mozilla.com/v0");
+-pref("loop.seenToS", "unseen");
+-pref("loop.showPartnerLogo", true);
+-pref("loop.gettingStarted.seen", false);
+-pref("loop.gettingStarted.url", "https://www.mozilla.org/%LOCALE%/firefox/%VERSION%/hello/start/");
+-pref("loop.gettingStarted.resumeOnFirstJoin", false);
+-pref("loop.learnMoreUrl", "https://www.firefox.com/hello/");
+-pref("loop.legal.ToS_url", "https://www.mozilla.org/about/legal/terms/firefox-hello/");
+-pref("loop.legal.privacy_url", "https://www.mozilla.org/privacy/firefox-hello/");
+-pref("loop.do_not_disturb", false);
+-pref("loop.ringtone", "chrome://browser/content/loop/shared/sounds/ringtone.ogg");
+-pref("loop.retry_delay.start", 60000);
+-pref("loop.retry_delay.limit", 300000);
+-pref("loop.ping.interval", 1800000);
+-pref("loop.ping.timeout", 10000);
+-pref("loop.feedback.baseUrl", "https://input.mozilla.org/api/v1/feedback");
+-pref("loop.feedback.product", "Loop");
+-pref("loop.debug.loglevel", "Error");
+-pref("loop.debug.dispatcher", false);
+-pref("loop.debug.websocket", false);
+-pref("loop.debug.sdk", false);
+-#ifdef DEBUG
+-pref("loop.CSP", "default-src 'self' about: file: chrome: http://localhost:*; img-src 'self' data: https://www.gravatar.com/ about: file: chrome:; font-src 'none'; connect-src wss://*.tokbox.com https://*.opentok.com https://*.tokbox.com wss://*.mozilla.com https://*.mozilla.org wss://*.mozaws.net http://localhost:* ws://localhost:*; media-src blob:");
+-#else
+-pref("loop.CSP", "default-src 'self' about: file: chrome:; img-src 'self' data: https://www.gravatar.com/ about: file: chrome:; font-src 'none'; connect-src wss://*.tokbox.com https://*.opentok.com https://*.tokbox.com wss://*.mozilla.com https://*.mozilla.org wss://*.mozaws.net; media-src blob:");
+-#endif
+-pref("loop.oauth.google.redirect_uri", "urn:ietf:wg:oauth:2.0:oob:auto");
+-pref("loop.oauth.google.scope", "https://www.google.com/m8/feeds");
+-pref("loop.fxa_oauth.tokendata", "");
+-pref("loop.fxa_oauth.profile", "");
+-pref("loop.support_url", "https://support.mozilla.org/kb/group-conversations-firefox-hello-webrtc");
+-pref("loop.contacts.gravatars.show", false);
+-pref("loop.contacts.gravatars.promo", true);
+-pref("loop.browserSharing.showInfoBar", true);
+-
+ // serverURL to be assigned by services team
+ pref("services.push.serverURL", "wss://push.services.mozilla.com/");
+
+diff -Naur mozilla-esr38.bak/browser/base/content/browser.css mozilla-esr38/browser/base/content/browser.css
+--- mozilla-esr38.bak/browser/base/content/browser.css 2015-09-16 18:44:17.000000000 +0200
++++ mozilla-esr38/browser/base/content/browser.css 2015-10-01 23:04:52.384053457 +0200
+@@ -14,30 +14,6 @@
+ %endif
+ }
+
+-/* These values are chosen to keep the Loop detached chat window from
+- * getting too small. When it's too small, three bad things happen:
+- *
+- * - It looks terrible
+- * - It's not really usable
+- * - It's possible for the user to be transmitting video that's cropped by the
+- * the edge of the window, so that they're not aware of it, which is a
+- * privacy problem
+- *
+- * Note that if the chat window grows more users than Loop who want this
+- * ability, we'll need to generalize. A partial patch for this is in
+- * bug 1112264.
+- */
+-
+-#chat-window {
+- /*
+- * In some ideal world, we'd have a simple way to express "block resizing
+- * along any dimension beyond the point at which an overflow event would
+- * occur". But none of -moz-{fit,max,min}-content do what we want here. So..
+- */
+- min-width: 320px;
+- min-height: 280px;
+-}
+-
+ #main-window[customize-entered] {
+ min-width: -moz-fit-content;
+ }
+@@ -899,11 +875,6 @@
+ -moz-binding: url("chrome://browser/content/translation-infobar.xml#translationbar");
+ }
+
+-/* Loop/ Hello */
+-notification[value="loop-sharing-notification"] .close-icon {
+- display: none;
+-}
+-
+ /* Social */
+ /* Note the chatbox 'width' values are duplicated in socialchat.xml */
+ chatbox {
+--- mozilla-esr38.bak/browser/base/content/browser.js 2015-10-02 10:25:01.208060687 +0200
++++ mozilla-esr38/browser/base/content/browser.js 2015-10-02 10:30:54.430065264 +0200
+@@ -232,7 +232,6 @@
+ #include browser-fullScreen.js
+ #include browser-fullZoom.js
+ #include browser-gestureSupport.js
+-#include browser-loop.js
+ #include browser-places.js
+ #include browser-plugins.js
+ #include browser-readinglist.js
+@@ -1356,8 +1355,6 @@
+ gDataNotificationInfoBar.init();
+ #endif
+
+- LoopUI.init();
+-
+ gBrowserThumbnails.init();
+
+ // Add Devtools menuitems and listeners
+@@ -1530,7 +1527,6 @@
+ TabView.uninit();
+ SocialUI.uninit();
+ gBrowserThumbnails.uninit();
+- LoopUI.uninit();
+ FullZoom.destroy();
+
+ Services.obs.removeObserver(gSessionHistoryObserver, "browser:purge-session-history");
+diff -Naur mozilla-esr38.bak/browser/base/content/browser.xul mozilla-esr38/browser/base/content/browser.xul
+--- mozilla-esr38.bak/browser/base/content/browser.xul 2015-09-16 18:44:17.000000000 +0200
++++ mozilla-esr38/browser/base/content/browser.xul 2015-10-01 23:06:27.242054686 +0200
+@@ -292,18 +292,6 @@
+ noautofocus="true"
+ position="topcenter topright"/>
+
+- <panel id="loop-notification-panel"
+- class="loop-panel social-panel"
+- type="arrow"
+- hidden="true"
+- noautofocus="true"/>
+-
+- <panel id="loop-panel"
+- class="loop-panel social-panel"
+- type="arrow"
+- orient="horizontal"
+- hidden="true"/>
+-
+ <menupopup id="processHangOptions"
+ onpopupshowing="ProcessHangMonitor.refreshMenu(window);">
+ <menuitem id="processHangTerminateScript"
+@@ -730,9 +718,9 @@
+ fullscreentoolbar="true" mode="icons" customizable="true"
+ iconsize="small"
+ #ifdef MOZ_DEV_EDITION
+- defaultset="urlbar-container,search-container,developer-button,bookmarks-menu-button,downloads-button,home-button,loop-button"
++ defaultset="urlbar-container,search-container,developer-button,bookmarks-menu-button,downloads-button,home-button"
+ #else
+- defaultset="urlbar-container,search-container,bookmarks-menu-button,downloads-button,home-button,loop-button"
++ defaultset="urlbar-container,search-container,bookmarks-menu-button,downloads-button,home-button"
+ #endif
+ customizationtarget="nav-bar-customization-target"
+ overflowable="true"
+diff -Naur mozilla-esr38.bak/browser/components/customizableui/content/panelUI.inc.xul mozilla-esr38/browser/components/customizableui/content/panelUI.inc.xul
+--- mozilla-esr38.bak/browser/components/customizableui/content/panelUI.inc.xul 2015-09-16 18:44:18.000000000 +0200
++++ mozilla-esr38/browser/components/customizableui/content/panelUI.inc.xul 2015-10-01 23:07:14.215055294 +0200
+@@ -157,8 +157,6 @@
+
+ <panelview id="PanelUI-socialapi" flex="1"/>
+
+- <panelview id="PanelUI-loopapi" flex="1"/>
+-
+ <panelview id="PanelUI-feeds" flex="1" oncommand="FeedHandler.subscribeToFeed(null, event);">
+ <label value="&feedsMenu.label;" class="panel-subview-header"/>
+ </panelview>
+diff -Naur mozilla-esr38.bak/browser/components/customizableui/CustomizableUI.jsm mozilla-esr38/browser/components/customizableui/CustomizableUI.jsm
+--- mozilla-esr38.bak/browser/components/customizableui/CustomizableUI.jsm 2015-09-16 18:44:18.000000000 +0200
++++ mozilla-esr38/browser/components/customizableui/CustomizableUI.jsm 2015-10-01 23:07:47.877055731 +0200
+@@ -210,7 +210,6 @@
+ "bookmarks-menu-button",
+ "downloads-button",
+ "home-button",
+- "loop-button",
+ ];
+
+ if (Services.prefs.getBoolPref(kPrefWebIDEInNavbar)) {
+@@ -308,15 +307,6 @@
+ }
+ }
+ }
+-
+- if (currentVersion < 2) {
+- // Nuke the old 'loop-call-button' out of orbit.
+- CustomizableUI.removeWidgetFromArea("loop-call-button");
+- }
+-
+- if (currentVersion < 4) {
+- CustomizableUI.removeWidgetFromArea("loop-button-throttled");
+- }
+ },
+
+ wrapWidget: function(aWidgetId) {
+diff -Naur mozilla-esr38.bak/browser/components/customizableui/CustomizableWidgets.jsm mozilla-esr38/browser/components/customizableui/CustomizableWidgets.jsm
+--- mozilla-esr38.bak/browser/components/customizableui/CustomizableWidgets.jsm 2015-09-16 18:44:18.000000000 +0200
++++ mozilla-esr38/browser/components/customizableui/CustomizableWidgets.jsm 2015-10-01 23:08:18.342056125 +0200
+@@ -925,35 +925,6 @@
+ win.MailIntegration.sendLinkForBrowser(win.gBrowser.selectedBrowser)
+ }
+ }, {
+- id: "loop-button",
+- type: "custom",
+- label: "loop-call-button3.label",
+- tooltiptext: "loop-call-button3.tooltiptext",
+- defaultArea: CustomizableUI.AREA_NAVBAR,
+- // Not in private browsing, see bug 1108187.
+- showInPrivateBrowsing: false,
+- introducedInVersion: 4,
+- onBuild: function(aDocument) {
+- // If we're not supposed to see the button, return zip.
+- if (!Services.prefs.getBoolPref("loop.enabled")) {
+- return null;
+- }
+-
+- let node = aDocument.createElementNS(kNSXUL, "toolbarbutton");
+- node.setAttribute("id", this.id);
+- node.classList.add("toolbarbutton-1");
+- node.classList.add("chromeclass-toolbar-additional");
+- node.classList.add("badged-button");
+- node.setAttribute("label", CustomizableUI.getLocalizedProperty(this, "label"));
+- node.setAttribute("tooltiptext", CustomizableUI.getLocalizedProperty(this, "tooltiptext"));
+- node.setAttribute("removable", "true");
+- node.addEventListener("command", function(event) {
+- aDocument.defaultView.LoopUI.togglePanel(event);
+- });
+-
+- return node;
+- }
+- }, {
+ id: "web-apps-button",
+ label: "web-apps-button.label",
+ tooltiptext: "web-apps-button.tooltiptext",
+diff -Naur mozilla-esr38.bak/browser/components/moz.build mozilla-esr38/browser/components/moz.build
+--- mozilla-esr38.bak/browser/components/moz.build 2015-09-16 18:44:18.000000000 +0200
++++ mozilla-esr38/browser/components/moz.build 2015-10-01 23:08:39.447056399 +0200
+@@ -10,7 +10,6 @@
+ 'dirprovider',
+ 'downloads',
+ 'feeds',
+- 'loop',
+ 'migration',
+ 'places',
+ 'preferences',
+diff -Naur mozilla-esr38.bak/browser/components/uitour/UITour.jsm mozilla-esr38/browser/components/uitour/UITour.jsm
+--- mozilla-esr38.bak/browser/components/uitour/UITour.jsm 2015-09-16 18:44:19.000000000 +0200
++++ mozilla-esr38/browser/components/uitour/UITour.jsm 2015-10-01 23:11:24.277058535 +0200
+@@ -134,60 +134,6 @@
+ query: "#panic-button",
+ widgetName: "panic-button",
+ }],
+- ["loop", {
+- allowAdd: true,
+- query: "#loop-button",
+- widgetName: "loop-button",
+- }],
+- ["loop-newRoom", {
+- infoPanelPosition: "leftcenter topright",
+- query: (aDocument) => {
+- let loopUI = aDocument.defaultView.LoopUI;
+- if (loopUI.selectedTab != "rooms") {
+- return null;
+- }
+- // Use the parentElement full-width container of the button so our arrow
+- // doesn't overlap the panel contents much.
+- return loopUI.browser.contentDocument.querySelector(".new-room-button").parentElement;
+- },
+- }],
+- ["loop-roomList", {
+- infoPanelPosition: "leftcenter topright",
+- query: (aDocument) => {
+- let loopUI = aDocument.defaultView.LoopUI;
+- if (loopUI.selectedTab != "rooms") {
+- return null;
+- }
+- return loopUI.browser.contentDocument.querySelector(".room-list");
+- },
+- }],
+- ["loop-selectedRoomButtons", {
+- infoPanelOffsetY: -20,
+- infoPanelPosition: "start_after",
+- query: (aDocument) => {
+- let chatbox = aDocument.querySelector("chatbox[src^='about\:loopconversation'][selected]");
+-
+- // Check that the real target actually exists
+- if (!chatbox || !chatbox.contentDocument ||
+- !chatbox.contentDocument.querySelector(".call-action-group")) {
+- return null;
+- }
+-
+- // But anchor on the <browser> in the chatbox so the panel doesn't jump to undefined
+- // positions when the copy/email buttons disappear e.g. when the feedback form opens or
+- // somebody else joins the room.
+- return chatbox.content;
+- },
+- }],
+- ["loop-signInUpLink", {
+- query: (aDocument) => {
+- let loopBrowser = aDocument.defaultView.LoopUI.browser;
+- if (!loopBrowser) {
+- return null;
+- }
+- return loopBrowser.contentDocument.querySelector(".signin-link");
+- },
+- }],
+ ["privateWindow", {query: "#privatebrowsing-button"}],
+ ["quit", {query: "#PanelUI-quit"}],
+ ["readerMode-urlBar", {query: "#reader-mode-button"}],
+@@ -830,15 +776,11 @@
+ this.hideInfo(aWindow);
+ // Ensure the menu panel is hidden before calling recreatePopup so popup events occur.
+ this.hideMenu(aWindow, "appMenu");
+- this.hideMenu(aWindow, "loop");
+
+ // Clean up panel listeners after calling hideMenu above.
+ aWindow.PanelUI.panel.removeEventListener("popuphiding", this.hideAppMenuAnnotations);
+ aWindow.PanelUI.panel.removeEventListener("ViewShowing", this.hideAppMenuAnnotations);
+ aWindow.PanelUI.panel.removeEventListener("popuphidden", this.onPanelHidden);
+- let loopPanel = aWindow.document.getElementById("loop-notification-panel");
+- loopPanel.removeEventListener("popuphidden", this.onPanelHidden);
+- loopPanel.removeEventListener("popuphiding", this.hideLoopPanelAnnotations);
+
+ this.endUrlbarCapture(aWindow);
+ this.resetTheme();
+@@ -1506,31 +1448,6 @@
+ } else if (aMenuName == "bookmarks") {
+ let menuBtn = aWindow.document.getElementById("bookmarks-menu-button");
+ openMenuButton(menuBtn);
+- } else if (aMenuName == "loop") {
+- let toolbarButton = aWindow.LoopUI.toolbarButton;
+- // It's possible to have a node that isn't placed anywhere
+- if (!toolbarButton || !toolbarButton.node ||
+- !CustomizableUI.getPlacementOfWidget(toolbarButton.node.id)) {
+- log.debug("Can't show the Loop menu since the toolbarButton isn't placed");
+- return;
+- }
+-
+- let panel = aWindow.document.getElementById("loop-notification-panel");
+- panel.setAttribute("noautohide", true);
+- if (panel.state != "open") {
+- this.recreatePopup(panel);
+- this.availableTargetsCache.clear();
+- }
+-
+- // An event object is expected but we don't want to toggle the panel with a click if the panel
+- // is already open.
+- aWindow.LoopUI.openCallPanel({ target: toolbarButton.node, }, "rooms").then(() => {
+- if (aOpenCallback) {
+- aOpenCallback();
+- }
+- });
+- panel.addEventListener("popuphidden", this.onPanelHidden);
+- panel.addEventListener("popuphiding", this.hideLoopPanelAnnotations);
+ } else if (aMenuName == "searchEngines") {
+ this.getTarget(aWindow, "searchProvider").then(target => {
+ openMenuButton(target.node);
+@@ -1550,9 +1467,6 @@
+ } else if (aMenuName == "bookmarks") {
+ let menuBtn = aWindow.document.getElementById("bookmarks-menu-button");
+ closeMenuButton(menuBtn);
+- } else if (aMenuName == "loop") {
+- let panel = aWindow.document.getElementById("loop-notification-panel");
+- panel.hidePopup();
+ } else if (aMenuName == "searchEngines") {
+ let menuBtn = this.targets.get("searchProvider").query(aWindow.document);
+ closeMenuButton(menuBtn);
+@@ -1588,12 +1502,6 @@
+ UITour.hideAnnotationsForPanel(aEvent, UITour.targetIsInAppMenu);
+ },
+
+- hideLoopPanelAnnotations: function(aEvent) {
+- UITour.hideAnnotationsForPanel(aEvent, (aTarget) => {
+- return aTarget.targetName.startsWith("loop-") && aTarget.targetName != "loop-selectedRoomButtons";
+- });
+- },
+-
+ onPanelHidden: function(aEvent) {
+ aEvent.target.removeAttribute("noautohide");
+ UITour.recreatePopup(aEvent.target);
+@@ -1659,11 +1567,6 @@
+ case "availableTargets":
+ this.getAvailableTargets(aMessageManager, aWindow, aCallbackID);
+ break;
+- case "loop":
+- this.sendPageCallback(aMessageManager, aCallbackID, {
+- gettingStartedSeen: Services.prefs.getBoolPref("loop.gettingStarted.seen"),
+- });
+- break;
+ case "selectedSearchEngine":
+ Services.search.init(rv => {
+ let engine;
+@@ -1690,10 +1593,6 @@
+
+ setConfiguration: function(aConfiguration, aValue) {
+ switch (aConfiguration) {
+- case "Loop:ResumeTourOnFirstJoin":
+- // Ignore aValue in this case to avoid accidentally setting it to false.
+- Services.prefs.setBoolPref("loop.gettingStarted.resumeOnFirstJoin", true);
+- break;
+ default:
+ log.error("setConfiguration: Unknown configuration requested: " + aConfiguration);
+ break;
+diff -Naur mozilla-esr38.bak/browser/locales/jar.mn mozilla-esr38/browser/locales/jar.mn
+--- mozilla-esr38.bak/browser/locales/jar.mn 2015-09-16 18:44:21.000000000 +0200
++++ mozilla-esr38/browser/locales/jar.mn 2015-10-01 23:11:56.637058954 +0200
+@@ -77,7 +77,6 @@
+ locale/browser/devtools/webide.dtd (%chrome/browser/devtools/webide.dtd)
+ locale/browser/devtools/webide.properties (%chrome/browser/devtools/webide.properties)
+ locale/browser/lightweightThemes.properties (%chrome/browser/lightweightThemes.properties)
+- locale/browser/loop/loop.properties (%chrome/browser/loop/loop.properties)
+ locale/browser/newTab.dtd (%chrome/browser/newTab.dtd)
+ locale/browser/newTab.properties (%chrome/browser/newTab.properties)
+ locale/browser/pageInfo.dtd (%chrome/browser/pageInfo.dtd)
+diff -Naur mozilla-esr38.bak/browser/themes/linux/browser.css mozilla-esr38/browser/themes/linux/browser.css
+--- mozilla-esr38.bak/browser/themes/linux/browser.css 2015-09-16 18:44:21.000000000 +0200
++++ mozilla-esr38/browser/themes/linux/browser.css 2015-10-01 23:12:11.744059150 +0200
+@@ -1485,16 +1485,6 @@
+ -moz-image-region: rect(0px, 32px, 16px, 16px);
+ }
+
+-/* Loop/ Hello browser styles */
+-
+-notification[value="loop-sharing-notification"] .button-menubutton-button {
+- min-width: 0;
+-}
+-
+-notification[value="loop-sharing-notification"] .messageImage {
+- list-style-image: url(chrome://browser/skin/webRTC-shareScreen-16.png);
+-}
+-
+ #treecolAutoCompleteImage {
+ max-width : 36px;
+ }
+diff -Naur mozilla-esr38.bak/browser/themes/linux/jar.mn mozilla-esr38/browser/themes/linux/jar.mn
+--- mozilla-esr38.bak/browser/themes/linux/jar.mn 2015-09-16 18:44:21.000000000 +0200
++++ mozilla-esr38/browser/themes/linux/jar.mn 2015-10-01 23:12:39.757059513 +0200
+@@ -109,9 +109,6 @@
+ skin/classic/browser/webRTC-camera-white-16.png (../shared/webrtc/camera-white-16.png)
+ skin/classic/browser/webRTC-microphone-white-16.png (../shared/webrtc/microphone-white-16.png)
+ skin/classic/browser/webRTC-screen-white-16.png (../shared/webrtc/screen-white-16.png)
+- skin/classic/browser/loop/menuPanel.png (loop/menuPanel.png)
+- skin/classic/browser/loop/toolbar.png (loop/toolbar.png)
+- skin/classic/browser/loop/toolbar-inverted.png (loop/toolbar-inverted.png)
+ skin/classic/browser/customizableui/background-noise-toolbar.png (customizableui/background-noise-toolbar.png)
+ skin/classic/browser/customizableui/customize-illustration.png (../shared/customizableui/customize-illustration.png)
+ skin/classic/browser/customizableui/customize-illustration-rtl.png (../shared/customizableui/customize-illustration-rtl.png)
+diff -Naur mozilla-esr38.bak/browser/themes/osx/browser.css mozilla-esr38/browser/themes/osx/browser.css
+--- mozilla-esr38.bak/browser/themes/osx/browser.css 2015-09-16 18:44:21.000000000 +0200
++++ mozilla-esr38/browser/themes/osx/browser.css 2015-10-01 23:13:36.994060255 +0200
+@@ -1441,76 +1441,6 @@
+ list-style-image: url(chrome://browser/skin/menuPanel-small@2x.png);
+ -moz-image-region: rect(0px, 192px, 32px, 160px);
+ }
+-
+- #loop-button > .toolbarbutton-badge-container {
+- list-style-image: url("chrome://browser/skin/loop/toolbar@2x.png");
+- -moz-image-region: rect(0, 36px, 36px, 0);
+- }
+-
+- toolbar[brighttext] #loop-button > .toolbarbutton-badge-container {
+- list-style-image: url("chrome://browser/skin/loop/toolbar-inverted@2x.png");
+- }
+-
+- #loop-button[state="disabled"] > .toolbarbutton-badge-container,
+- #loop-button[disabled="true"] > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 72px, 36px, 36px);
+- }
+-
+- #loop-button:not([disabled="true"])[state="error"] > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 108px, 36px, 72px);
+- }
+-
+- #loop-button:not([disabled="true"])[state="action"] > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 144px, 36px, 108px);
+- }
+-
+- #loop-button:not([disabled="true"])[state="action"]:-moz-any(:hover,:hover:active,[open]) > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 180px, 36px, 144px);
+- }
+-
+- #loop-button:not([disabled="true"])[state="active"] > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 216px, 36px, 180px);
+- }
+-
+- #loop-button:not([disabled="true"])[state="active"]:-moz-any(:hover,:hover:active,[open]) > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 252px, 36px, 216px);
+- }
+-
+- #loop-button[cui-areatype="menu-panel"] > .toolbarbutton-badge-container,
+- toolbarpaletteitem[place="palette"] > #loop-button > .toolbarbutton-badge-container {
+- list-style-image: url(chrome://browser/skin/loop/menuPanel@2x.png);
+- -moz-image-region: rect(0, 64px, 64px, 0);
+- }
+-
+- /* Make sure that the state icons are not shown in the customization palette. */
+- toolbarpaletteitem[place="palette"] > #loop-button > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 64px, 64px, 0) !important;
+- }
+-
+- #loop-button[cui-areatype="menu-panel"][state="disabled"] > .toolbarbutton-badge-container,
+- #loop-button[cui-areatype="menu-panel"][disabled="true"] > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 128px, 64px, 64px);
+- }
+-
+- #loop-button[cui-areatype="menu-panel"]:not([disabled="true"])[state="error"] > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 192px, 64px, 128px);
+- }
+-
+- #loop-button[cui-areatype="menu-panel"]:not([disabled="true"])[state="action"] > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 256px, 64px, 192px);
+- }
+-
+- #loop-button[cui-areatype="menu-panel"]:not([disabled="true"])[state="action"]:-moz-any(:hover,:hover:active,[open]) > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 320px, 64px, 256px);
+- }
+-
+- #loop-button[cui-areatype="menu-panel"]:not([disabled="true"])[state="active"] > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 384px, 64px, 320px);
+- }
+-
+- #loop-button[cui-areatype="menu-panel"]:not([disabled="true"])[state="active"]:-moz-any(:hover,:hover:active,[open]) > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 448px, 64px, 384px);
+- }
+ }
+
+ toolbar .toolbarbutton-1:not([type="menu-button"]),
+@@ -4098,28 +4028,6 @@
+ }
+ }
+
+-/* Loop/ Hello browser styles */
+-
+-notification[value="loop-sharing-notification"] .notification-button {
+- padding: 1px 5px;
+-}
+-
+-notification[value="loop-sharing-notification"] .button-menubutton-button {
+- -moz-appearance: none;
+- min-width: 0;
+- margin: 0;
+-}
+-
+-notification[value="loop-sharing-notification"] .messageImage {
+- list-style-image: url(chrome://browser/skin/webRTC-sharingScreen-menubar.png);
+-}
+-@media (min-resolution: 2dppx) {
+- notification[value="loop-sharing-notification"] .messageImage {
+- list-style-image: url(chrome://browser/skin/webRTC-sharingScreen-menubar@2x.png);
+- }
+-}
+-
+-
+ .popup-notification-icon {
+ width: 64px;
+ height: 64px;
+diff -Naur mozilla-esr38.bak/browser/themes/osx/jar.mn mozilla-esr38/browser/themes/osx/jar.mn
+--- mozilla-esr38.bak/browser/themes/osx/jar.mn 2015-09-16 18:44:21.000000000 +0200
++++ mozilla-esr38/browser/themes/osx/jar.mn 2015-10-01 23:13:56.447060507 +0200
+@@ -171,16 +171,6 @@
+ skin/classic/browser/webRTC-sharingScreen-menubar.png
+ skin/classic/browser/webRTC-sharingScreen-menubar@2x.png
+ skin/classic/browser/webRTC-indicator.css
+- skin/classic/browser/loop/menuPanel.png (loop/menuPanel.png)
+- skin/classic/browser/loop/menuPanel@2x.png (loop/menuPanel@2x.png)
+- skin/classic/browser/loop/toolbar.png (loop/toolbar.png)
+- skin/classic/browser/loop/toolbar@2x.png (loop/toolbar@2x.png)
+- skin/classic/browser/loop/toolbar-inverted.png (loop/toolbar-inverted.png)
+- skin/classic/browser/loop/toolbar-inverted@2x.png (loop/toolbar-inverted@2x.png)
+- skin/classic/browser/yosemite/loop/menuPanel.png (loop/menuPanel-yosemite.png)
+- skin/classic/browser/yosemite/loop/menuPanel@2x.png (loop/menuPanel-yosemite@2x.png)
+- skin/classic/browser/yosemite/loop/toolbar.png (loop/toolbar-yosemite.png)
+- skin/classic/browser/yosemite/loop/toolbar@2x.png (loop/toolbar-yosemite@2x.png)
+ skin/classic/browser/customizableui/background-noise-toolbar.png (customizableui/background-noise-toolbar.png)
+ skin/classic/browser/customizableui/customize-titleBar-toggle.png (customizableui/customize-titleBar-toggle.png)
+ skin/classic/browser/customizableui/customize-titleBar-toggle@2x.png (customizableui/customize-titleBar-toggle@2x.png)
+@@ -602,10 +592,6 @@
+ % override chrome://browser/skin/Toolbar@2x.png chrome://browser/skin/yosemite/Toolbar@2x.png os=Darwin osversion>=10.10
+ % override chrome://browser/skin/menuPanel.png chrome://browser/skin/yosemite/menuPanel.png os=Darwin osversion>=10.10
+ % override chrome://browser/skin/menuPanel@2x.png chrome://browser/skin/yosemite/menuPanel@2x.png os=Darwin osversion>=10.10
+-% override chrome://browser/skin/loop/menuPanel.png chrome://browser/skin/yosemite/loop/menuPanel.png os=Darwin osversion>=10.10
+-% override chrome://browser/skin/loop/menuPanel@2x.png chrome://browser/skin/yosemite/loop/menuPanel@2x.png os=Darwin osversion>=10.10
+-% override chrome://browser/skin/loop/toolbar.png chrome://browser/skin/yosemite/loop/toolbar.png os=Darwin osversion>=10.10
+-% override chrome://browser/skin/loop/toolbar@2x.png chrome://browser/skin/yosemite/loop/toolbar@2x.png os=Darwin osversion>=10.10
+ % override chrome://browser/skin/menuPanel-customize.png chrome://browser/skin/yosemite/menuPanel-customize.png os=Darwin osversion>=10.10
+ % override chrome://browser/skin/menuPanel-customize@2x.png chrome://browser/skin/yosemite/menuPanel-customize@2x.png os=Darwin osversion>=10.10
+ % override chrome://browser/skin/menuPanel-exit.png chrome://browser/skin/yosemite/menuPanel-exit.png os=Darwin osversion>=10.10
+diff -Naur mozilla-esr38.bak/browser/themes/shared/browser.inc mozilla-esr38/browser/themes/shared/browser.inc
+--- mozilla-esr38.bak/browser/themes/shared/browser.inc 2015-09-16 18:44:21.000000000 +0200
++++ mozilla-esr38/browser/themes/shared/browser.inc 2015-10-01 23:14:24.276060867 +0200
+@@ -2,7 +2,7 @@
+
+ % Note that zoom-reset-button is a bit different since it doesn't use an image and thus has the image with display: none.
+ %define nestedButtons #zoom-out-button, #zoom-reset-button, #zoom-in-button, #cut-button, #copy-button, #paste-button
+-%define primaryToolbarButtons #back-button, #forward-button, #home-button, #print-button, #downloads-button, #bookmarks-menu-button, #new-tab-button, #new-window-button, #fullscreen-button, #sync-button, #feed-button, #tabview-button, #social-share-button, #open-file-button, #find-button, #developer-button, #preferences-button, #privatebrowsing-button, #save-page-button, #switch-to-metro-button, #add-ons-button, #history-panelmenu, #nav-bar-overflow-button, #PanelUI-menu-button, #characterencoding-button, #email-link-button, #sidebar-button, @nestedButtons@, #e10s-button, #panic-button, #web-apps-button, #webide-button, #loop-button
++%define primaryToolbarButtons #back-button, #forward-button, #home-button, #print-button, #downloads-button, #bookmarks-menu-button, #new-tab-button, #new-window-button, #fullscreen-button, #sync-button, #feed-button, #tabview-button, #social-share-button, #open-file-button, #find-button, #developer-button, #preferences-button, #privatebrowsing-button, #save-page-button, #switch-to-metro-button, #add-ons-button, #history-panelmenu, #nav-bar-overflow-button, #PanelUI-menu-button, #characterencoding-button, #email-link-button, #sidebar-button, @nestedButtons@, #e10s-button, #panic-button, #web-apps-button, #webide-button
+
+ %ifdef XP_MACOSX
+ % Prior to 10.7 there wasn't a native fullscreen button so we use #restore-button to exit fullscreen
+diff -Naur mozilla-esr38.bak/browser/themes/shared/menupanel.inc.css mozilla-esr38/browser/themes/shared/menupanel.inc.css
+--- mozilla-esr38.bak/browser/themes/shared/menupanel.inc.css 2015-09-16 18:44:22.000000000 +0200
++++ mozilla-esr38/browser/themes/shared/menupanel.inc.css 2015-10-01 23:14:43.060061111 +0200
+@@ -175,42 +175,6 @@
+ -moz-image-region: rect(0, 832px, 32px, 800px);
+ }
+
+-#loop-button[cui-areatype="menu-panel"] > .toolbarbutton-badge-container,
+-toolbarpaletteitem[place="palette"] > #loop-button > .toolbarbutton-badge-container {
+- list-style-image: url(chrome://browser/skin/loop/menuPanel.png);
+- -moz-image-region: rect(0, 32px, 32px, 0);
+-}
+-
+-/* Make sure that the state icons are not shown in the customization palette. */
+-toolbarpaletteitem[place="palette"] > #loop-button > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 32px, 32px, 0) !important;
+-}
+-
+-#loop-button[cui-areatype="menu-panel"][state="disabled"] > .toolbarbutton-badge-container,
+-#loop-button[cui-areatype="menu-panel"][disabled="true"] > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 64px, 32px, 32px);
+-}
+-
+-#loop-button[cui-areatype="menu-panel"]:not([disabled="true"])[state="error"] > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 96px, 32px, 64px);
+-}
+-
+-#loop-button[cui-areatype="menu-panel"]:not([disabled="true"])[state="action"] > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 128px, 32px, 96px);
+-}
+-
+-#loop-button[cui-areatype="menu-panel"]:not([disabled="true"])[state="action"]:-moz-any(:hover,:hover:active,[open]) > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 160px, 32px, 128px);
+-}
+-
+-#loop-button[cui-areatype="menu-panel"]:not([disabled="true"])[state="active"] > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 192px, 32px, 160px);
+-}
+-
+-#loop-button[cui-areatype="menu-panel"]:not([disabled="true"])[state="active"]:-moz-any(:hover,:hover:active,[open]) > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 224px, 32px, 192px);
+-}
+-
+ /* Wide panel control icons */
+
+ #edit-controls@inAnyPanel@ > toolbarbutton,
+diff -Naur mozilla-esr38.bak/browser/themes/shared/toolbarbuttons.inc.css mozilla-esr38/browser/themes/shared/toolbarbuttons.inc.css
+--- mozilla-esr38.bak/browser/themes/shared/toolbarbuttons.inc.css 2015-09-16 18:44:22.000000000 +0200
++++ mozilla-esr38/browser/themes/shared/toolbarbuttons.inc.css 2015-10-01 23:15:01.476061349 +0200
+@@ -200,40 +200,6 @@
+ }
+ %endif
+
+-#loop-button > .toolbarbutton-badge-container {
+- list-style-image: url(chrome://browser/skin/loop/toolbar.png);
+- -moz-image-region: rect(0, 18px, 18px, 0);
+-}
+-
+-toolbar[brighttext] #loop-button > .toolbarbutton-badge-container {
+- list-style-image: url(chrome://browser/skin/loop/toolbar-inverted.png);
+-}
+-
+-#loop-button[state="disabled"] > .toolbarbutton-badge-container,
+-#loop-button[disabled="true"] > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 36px, 18px, 18px);
+-}
+-
+-#loop-button:not([disabled="true"])[state="error"] > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 54px, 18px, 36px);
+-}
+-
+-#loop-button:not([disabled="true"])[state="action"] > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 72px, 18px, 54px);
+-}
+-
+-#loop-button:not([disabled="true"])[state="action"]:-moz-any(:hover,:hover:active,[open]) > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 90px, 18px, 72px);
+-}
+-
+-#loop-button:not([disabled="true"])[state="active"] > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 108px, 18px, 90px);
+-}
+-
+-#loop-button:not([disabled="true"])[state="active"]:-moz-any(:hover,:hover:active,[open]) > .toolbarbutton-badge-container {
+- -moz-image-region: rect(0, 126px, 18px, 108px);
+-}
+-
+ #webide-button[cui-areatype="toolbar"] {
+ -moz-image-region: rect(0, 738px, 18px, 720px);
+ }
+diff -Naur mozilla-esr38.bak/browser/themes/windows/browser.css mozilla-esr38/browser/themes/windows/browser.css
+--- mozilla-esr38.bak/browser/themes/windows/browser.css 2015-09-16 18:44:22.000000000 +0200
++++ mozilla-esr38/browser/themes/windows/browser.css 2015-10-01 23:15:21.836061613 +0200
+@@ -595,10 +595,6 @@
+ #bookmarks-menu-button.toolbarbutton-1 > .toolbarbutton-menubutton-dropmarker > .dropmarker-icon {
+ list-style-image: url("chrome://browser/skin/Toolbar-lunaSilver.png");
+ }
+-
+- #loop-button > .toolbarbutton-badge-container {
+- list-style-image: url(chrome://browser/skin/loop/toolbar-lunaSilver.png)
+- }
+ }
+ %endif
+
+@@ -2503,19 +2499,6 @@
+ -moz-appearance: none;
+ }
+
+-/* Loop/ Hello browser styles */
+-
+-notification[value="loop-sharing-notification"] .button-menubutton-button {
+- -moz-appearance: none;
+- min-width: 0;
+- border: 0;
+- margin: 0;
+-}
+-
+-notification[value="loop-sharing-notification"] .messageImage {
+- list-style-image: url(chrome://browser/skin/webRTC-shareScreen-16.png);
+-}
+-
+ /* Bookmarks roots menu-items */
+ #subscribeToPageMenuitem:not([disabled]),
+ #subscribeToPageMenupopup,
+diff -Naur mozilla-esr38.bak/browser/themes/windows/jar.mn mozilla-esr38/browser/themes/windows/jar.mn
+--- mozilla-esr38.bak/browser/themes/windows/jar.mn 2015-09-16 18:44:22.000000000 +0200
++++ mozilla-esr38/browser/themes/windows/jar.mn 2015-10-01 23:15:51.276061995 +0200
+@@ -131,10 +131,6 @@
+ skin/classic/browser/webRTC-camera-white-16.png (../shared/webrtc/camera-white-16.png)
+ skin/classic/browser/webRTC-microphone-white-16.png (../shared/webrtc/microphone-white-16.png)
+ skin/classic/browser/webRTC-screen-white-16.png (../shared/webrtc/screen-white-16.png)
+- skin/classic/browser/loop/menuPanel.png (loop/menuPanel.png)
+- skin/classic/browser/loop/toolbar.png (loop/toolbar-XP.png)
+- skin/classic/browser/loop/toolbar-inverted.png (loop/toolbar-inverted.png)
+- skin/classic/browser/loop/toolbar-lunaSilver.png (loop/toolbar-lunaSilver.png)
+ skin/classic/browser/customizableui/background-noise-toolbar.png (customizableui/background-noise-toolbar.png)
+ skin/classic/browser/customizableui/customizeFavicon.ico (../shared/customizableui/customizeFavicon.ico)
+ skin/classic/browser/customizableui/customize-illustration.png (../shared/customizableui/customize-illustration.png)
+@@ -600,11 +596,6 @@
+ skin/classic/aero/browser/webRTC-camera-white-16.png (../shared/webrtc/camera-white-16.png)
+ skin/classic/aero/browser/webRTC-microphone-white-16.png (../shared/webrtc/microphone-white-16.png)
+ skin/classic/aero/browser/webRTC-screen-white-16.png (../shared/webrtc/screen-white-16.png)
+- skin/classic/aero/browser/loop/menuPanel.png (loop/menuPanel.png)
+- skin/classic/aero/browser/loop/menuPanel-aero.png (loop/menuPanel-aero.png)
+- skin/classic/aero/browser/loop/toolbar.png (loop/toolbar.png)
+- skin/classic/aero/browser/loop/toolbar-aero.png (loop/toolbar-aero.png)
+- skin/classic/aero/browser/loop/toolbar-inverted.png (loop/toolbar-inverted.png)
+ skin/classic/aero/browser/customizableui/background-noise-toolbar.png (customizableui/background-noise-toolbar.png)
+ skin/classic/aero/browser/customizableui/customize-illustration.png (../shared/customizableui/customize-illustration.png)
+ skin/classic/aero/browser/customizableui/customize-illustration-rtl.png (../shared/customizableui/customize-illustration-rtl.png)
+@@ -968,9 +959,3 @@
+
+ % override chrome://browser/skin/tabbrowser/tab-arrow-left.png chrome://browser/skin/tabbrowser/tab-arrow-left-XPVista7.png os=WINNT osversion=6
+ % override chrome://browser/skin/tabbrowser/tab-arrow-left.png chrome://browser/skin/tabbrowser/tab-arrow-left-XPVista7.png os=WINNT osversion=6.1
+-
+-% override chrome://browser/skin/loop/toolbar.png chrome://browser/skin/loop/toolbar-aero.png os=WINNT osversion=6
+-% override chrome://browser/skin/loop/toolbar.png chrome://browser/skin/loop/toolbar-aero.png os=WINNT osversion=6.1
+-
+-% override chrome://browser/skin/loop/menuPanel.png chrome://browser/skin/loop/menuPanel-aero.png os=WINNT osversion=6
+-% override chrome://browser/skin/loop/menuPanel.png chrome://browser/skin/loop/menuPanel-aero.png os=WINNT osversion=6.1