Disable Firefox Hello (Loop)

Discussion of third-party/unofficial Firefox/Thunderbird/SeaMonkey builds.
Post Reply
barbaz
Posts: 1504
Joined: October 1st, 2014, 3:25 pm

Disable Firefox Hello (Loop)

Post by barbaz »

I'm trying to self build Firefox Developer Edition using Tim Taubert's build VM (https://developer.mozilla.org/docs/Mozilla/Developer_guide/Using_the_VM), but I don't want to build _all_ the features that come with standard Firefox. I've been able to achieve most of my desired customizations by setting/changing build flags and flipping a few default preferences, however I can't figure out how to build without Firefox Hello aka Loop. I tried

Code: Select all

ac_add_options --disable-webrtc

with no luck, and saw nothing obvious in the source code that I looked at.

Is there a mozconfig option (or confvars.sh change) to not include Firefox Hello at all at build time?

(I can't even find the commit where Firefox Hello was introduced despite searching hg.mozilla.org.)
xunxun1982
Posts: 311
Joined: June 20th, 2011, 10:37 am

Re: Disable Firefox Hello (Loop)

Post by xunxun1982 »

There is no option to disable hello, but you can do that yourself.

You can follow the example similar patches: https://github.com/xunxun1982/pcxfirefo ... ini/29.0.1
Removing Loop/Hello code is also an easy thing.

Or you can read the similar patch below, and it's based on fx38.0 one nightly edition code, which will remove Hello service by using --disable-webrtc, and it's one patch of my pcxFirefoxLite Project, maybe I can finish it after 38.0 is released:

Code: Select all

# HG changeset patch
# User xunxun1982
# Date 1423889475 -28800
#      Sat Feb 14 12:51:15 2015 +0800
# Node ID d60efa52d56c396d9c38912259482a91ab204346
# Parent  743749e19c634a57e26c904cc6284be59d796ecc
Disable WebRTC part

diff -r 743749e19c63 -r d60efa52d56c browser/app/profile/firefox.js
--- a/browser/app/profile/firefox.js   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/app/profile/firefox.js   Sat Feb 14 12:51:15 2015 +0800
@@ -1646,6 +1646,7 @@
 // (This is intentionally on the high side; see bug 746055.)
 pref("image.mem.max_decoded_image_kb", 256000);
 
+#ifdef MOZ_WEBRTC
 pref("loop.enabled", true);
 pref("loop.server", "https://loop.services.mozilla.com/v0");
 pref("loop.seenToS", "unseen");
@@ -1679,6 +1680,7 @@
 pref("loop.fxa_oauth.tokendata", "");
 pref("loop.fxa_oauth.profile", "");
 pref("loop.support_url", "https://support.mozilla.org/kb/group-conversations-firefox-hello-webrtc");
+#endif
 
 // serverURL to be assigned by services team
 pref("services.push.serverURL", "wss://push.services.mozilla.com/");
diff -r 743749e19c63 -r d60efa52d56c browser/base/content/browser.js
--- a/browser/base/content/browser.js   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/base/content/browser.js   Sat Feb 14 12:51:15 2015 +0800
@@ -175,8 +175,10 @@
 XPCOMUtils.defineLazyModuleGetter(this, "fxAccounts",
   "resource://gre/modules/FxAccounts.jsm");
 
+#ifdef MOZ_WEBRTC
 XPCOMUtils.defineLazyModuleGetter(this, "gWebRTCUI",
   "resource:///modules/webrtcUI.jsm", "webrtcUI");
+#endif
 
 #ifdef MOZ_CRASHREPORTER
 XPCOMUtils.defineLazyModuleGetter(this, "TabCrashReporter",
@@ -212,7 +214,9 @@
 #include browser-fullScreen.js
 #include browser-fullZoom.js
 #include browser-gestureSupport.js
+#ifdef MOZ_WEBRTC
 #include browser-loop.js
+#endif
 #include browser-places.js
 #include browser-plugins.js
 #include browser-safebrowsing.js
@@ -1318,8 +1322,10 @@
     gDataNotificationInfoBar.init();
 #endif
 
+#ifdef MOZ_WEBRTC
     LoopUI.init();
-
+#endif
+   
     gBrowserThumbnails.init();
 
     // Add Devtools menuitems and listeners
@@ -1498,7 +1504,9 @@
       TabView.uninit();
       SocialUI.uninit();
       gBrowserThumbnails.uninit();
+#ifdef MOZ_WEBRTC
       LoopUI.uninit();
+#endif
       FullZoom.destroy();
 
       Services.obs.removeObserver(gSessionHistoryObserver, "browser:purge-session-history");
diff -r 743749e19c63 -r d60efa52d56c browser/base/content/browser.xul
--- a/browser/base/content/browser.xul   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/base/content/browser.xul   Sat Feb 14 12:51:15 2015 +0800
@@ -322,6 +322,7 @@
            noautofocus="true"
            position="topcenter topright"/>
 
+#ifdef MOZ_WEBRTC
     <panel id="loop-notification-panel"
            class="loop-panel social-panel"
            type="arrow"
@@ -333,6 +334,7 @@
            type="arrow"
            orient="horizontal"
            hidden="true"/>
+#endif
 
     <menupopup id="toolbar-context-menu"
                onpopupshowing="onViewToolbarsPopupShowing(event, document.getElementById('viewToolbarsMenuSeparator'));">
@@ -729,9 +731,17 @@
              fullscreentoolbar="true" mode="icons" customizable="true"
              iconsize="small"
 #ifdef MOZ_DEV_EDITION
+#ifdef MOZ_WEBRTC
              defaultset="urlbar-container,search-container,developer-button,bookmarks-menu-button,downloads-button,home-button,loop-button"
 #else
+             defaultset="urlbar-container,search-container,developer-button,bookmarks-menu-button,downloads-button,home-button"
+#endif
+#else
+#ifdef MOZ_WEBRTC
              defaultset="urlbar-container,search-container,bookmarks-menu-button,downloads-button,home-button,loop-button"
+#else
+             defaultset="urlbar-container,search-container,bookmarks-menu-button,downloads-button,home-button"
+#endif
 #endif
              customizationtarget="nav-bar-customization-target"
              overflowable="true"
@@ -787,12 +797,14 @@
                 <image id="web-notifications-notification-icon" class="notification-anchor-icon" role="button"/>
                 <image id="bad-content-blocked-notification-icon" class="notification-anchor-icon" role="button"/>
                 <image id="bad-content-unblocked-notification-icon" class="notification-anchor-icon" role="button"/>
+#ifdef MOZ_WEBRTC
                 <image id="webRTC-shareDevices-notification-icon" class="notification-anchor-icon" role="button"/>
                 <image id="webRTC-sharingDevices-notification-icon" class="notification-anchor-icon" role="button"/>
                 <image id="webRTC-shareMicrophone-notification-icon" class="notification-anchor-icon" role="button"/>
                 <image id="webRTC-sharingMicrophone-notification-icon" class="notification-anchor-icon" role="button"/>
                 <image id="webRTC-shareScreen-notification-icon" class="notification-anchor-icon" role="button"/>
                 <image id="webRTC-sharingScreen-notification-icon" class="notification-anchor-icon" role="button"/>
+#endif
                 <image id="pointerLock-notification-icon" class="notification-anchor-icon" role="button"/>
                 <image id="servicesInstall-notification-icon" class="notification-anchor-icon" role="button"/>
                 <image id="translate-notification-icon" class="notification-anchor-icon" role="button"/>
diff -r 743749e19c63 -r d60efa52d56c browser/base/content/content.js
--- a/browser/base/content/content.js   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/base/content/content.js   Sat Feb 14 12:51:15 2015 +0800
@@ -7,7 +7,9 @@
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 Cu.import("resource://gre/modules/Services.jsm");
+#ifdef MOZ_WEBRTC
 Cu.import("resource:///modules/ContentWebRTC.jsm");
+#endif
 Cu.import("resource://gre/modules/InlineSpellChecker.jsm");
 Cu.import("resource://gre/modules/InlineSpellCheckerContent.jsm");
 
@@ -838,10 +840,12 @@
 };
 DOMFullscreenHandler.init();
 
+#ifdef MOZ_WEBRTC
 ContentWebRTC.init();
 addMessageListener("webrtc:Allow", ContentWebRTC);
 addMessageListener("webrtc:Deny", ContentWebRTC);
 addMessageListener("webrtc:StopSharing", ContentWebRTC);
+#endif
 
 function gKeywordURIFixup(fixupInfo) {
   fixupInfo.QueryInterface(Ci.nsIURIFixupInfo);
diff -r 743749e19c63 -r d60efa52d56c browser/base/content/popup-notifications.inc
--- a/browser/base/content/popup-notifications.inc   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/base/content/popup-notifications.inc   Sat Feb 14 12:51:15 2015 +0800
@@ -8,6 +8,7 @@
            orient="vertical"
            role="alert"/>
 
+#ifdef MOZ_WEBRTC
     <popupnotification id="webRTC-shareDevices-notification" hidden="true">
       <popupnotificationcontent id="webRTC-selectCamera" orient="vertical">
         <separator class="thin"/>
@@ -40,6 +41,7 @@
         </menulist>
       </popupnotificationcontent>
     </popupnotification>
+#endif
 
     <popupnotification id="webapps-install-progress-notification" hidden="true">
       <popupnotificationcontent id="webapps-install-progress-content" orient="vertical" align="start">
diff -r 743749e19c63 -r d60efa52d56c browser/base/jar.mn
--- a/browser/base/jar.mn   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/base/jar.mn   Sat Feb 14 12:51:15 2015 +0800
@@ -76,7 +76,7 @@
 *       content/browser/browser.xul                   (content/browser.xul)
 *       content/browser/browser-tabPreviews.xml       (content/browser-tabPreviews.xml)
 *       content/browser/chatWindow.xul                (content/chatWindow.xul)
-        content/browser/content.js                    (content/content.js)
+*       content/browser/content.js                    (content/content.js)
         content/browser/defaultthemes/1.footer.jpg    (content/defaultthemes/1.footer.jpg)
         content/browser/defaultthemes/1.header.jpg    (content/defaultthemes/1.header.jpg)
         content/browser/defaultthemes/1.icon.jpg      (content/defaultthemes/1.icon.jpg)
@@ -157,9 +157,11 @@
 #endif
 *       content/browser/viewSourceOverlay.xul         (content/viewSourceOverlay.xul)
 #ifndef XP_MACOSX
+#ifdef MOZ_WEBRTC
 *       content/browser/webrtcIndicator.xul           (content/webrtcIndicator.xul)
         content/browser/webrtcIndicator.js            (content/webrtcIndicator.js)
 #endif
+#endif
 #ifdef XP_WIN
         content/browser/win6BrowserOverlay.xul        (content/win6BrowserOverlay.xul)
 #endif
diff -r 743749e19c63 -r d60efa52d56c browser/components/about/AboutRedirector.cpp
--- a/browser/components/about/AboutRedirector.cpp   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/components/about/AboutRedirector.cpp   Sat Feb 14 12:51:15 2015 +0800
@@ -103,6 +103,7 @@
     nsIAboutModule::ALLOW_SCRIPT },
   { "customizing", "chrome://browser/content/customizableui/aboutCustomizing.xul",
     nsIAboutModule::ALLOW_SCRIPT },
+#ifdef MOZ_WEBRTC
   { "loopconversation", "chrome://browser/content/loop/conversation.html",
     nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
     nsIAboutModule::ALLOW_SCRIPT |
@@ -115,6 +116,7 @@
     nsIAboutModule::ENABLE_INDEXED_DB,
     // Shares an IndexedDB origin with about:loopconversation.
     "loopconversation" },
+#endif
   { "reader", "chrome://global/content/reader/aboutReader.html",
     nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
     nsIAboutModule::ALLOW_SCRIPT |
diff -r 743749e19c63 -r d60efa52d56c browser/components/build/nsModule.cpp
--- a/browser/components/build/nsModule.cpp   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/components/build/nsModule.cpp   Sat Feb 14 12:51:15 2015 +0800
@@ -113,8 +113,10 @@
 #endif
     { NS_ABOUT_MODULE_CONTRACTID_PREFIX "app-manager", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
     { NS_ABOUT_MODULE_CONTRACTID_PREFIX "customizing", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
+#ifdef MOZ_WEBRTC
     { NS_ABOUT_MODULE_CONTRACTID_PREFIX "looppanel", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
     { NS_ABOUT_MODULE_CONTRACTID_PREFIX "loopconversation", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
+#endif
     { NS_ABOUT_MODULE_CONTRACTID_PREFIX "reader", &kNS_BROWSER_ABOUT_REDIRECTOR_CID },
 #if defined(XP_WIN)
     { NS_IEHISTORYENUMERATOR_CONTRACTID, &kNS_WINIEHISTORYENUMERATOR_CID },
diff -r 743749e19c63 -r d60efa52d56c browser/components/customizableui/CustomizableUI.jsm
--- a/browser/components/customizableui/CustomizableUI.jsm   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/components/customizableui/CustomizableUI.jsm   Sat Feb 14 12:51:15 2015 +0800
@@ -217,7 +217,9 @@
       "bookmarks-menu-button",
       "downloads-button",
       "home-button",
+#ifdef MOZ_WEBRTC
       "loop-button",
+#endif
     ];
 
     if (Services.prefs.getBoolPref(kPrefWebIDEInNavbar)) {
@@ -316,6 +318,7 @@
       }
     }
 
+#ifdef MOZ_WEBRTC
     if (currentVersion < 2) {
       // Nuke the old 'loop-call-button' out of orbit.
       CustomizableUI.removeWidgetFromArea("loop-call-button");
@@ -324,6 +327,7 @@
     if (currentVersion < 4) {
       CustomizableUI.removeWidgetFromArea("loop-button-throttled");
     }
+#endif
   },
 
   wrapWidget: function(aWidgetId) {
diff -r 743749e19c63 -r d60efa52d56c browser/components/customizableui/CustomizableWidgets.jsm
--- a/browser/components/customizableui/CustomizableWidgets.jsm   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/components/customizableui/CustomizableWidgets.jsm   Sat Feb 14 12:51:15 2015 +0800
@@ -922,6 +922,7 @@
       let win = aEvent.view;
       win.MailIntegration.sendLinkForBrowser(win.gBrowser.selectedBrowser)
     }
+#ifdef MOZ_WEBRTC
   }, {
     id: "loop-button",
     type: "custom",
@@ -950,6 +951,9 @@
       return node;
     }
   }, {
+#else
+  }, {
+#endif
     id: "web-apps-button",
     label: "web-apps-button.label",
     tooltiptext: "web-apps-button.tooltiptext",
diff -r 743749e19c63 -r d60efa52d56c browser/components/customizableui/content/panelUI.inc.xul
--- a/browser/components/customizableui/content/panelUI.inc.xul   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/components/customizableui/content/panelUI.inc.xul   Sat Feb 14 12:51:15 2015 +0800
@@ -146,8 +146,10 @@
 
     <panelview id="PanelUI-socialapi" flex="1"/>
 
+#ifdef MOZ_WEBRTC
     <panelview id="PanelUI-loopapi" flex="1"/>
-
+#endif
+   
     <panelview id="PanelUI-feeds" flex="1" oncommand="FeedHandler.subscribeToFeed(null, event);">
       <label value="&feedsMenu.label;" class="panel-subview-header"/>
     </panelview>
diff -r 743749e19c63 -r d60efa52d56c browser/components/moz.build
--- a/browser/components/moz.build   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/components/moz.build   Sat Feb 14 12:51:15 2015 +0800
@@ -10,7 +10,6 @@
     'dirprovider',
     'downloads',
     'feeds',
-    'loop',
     'migration',
     'places',
     'preferences',
@@ -25,6 +24,9 @@
     'translation',
 ]
 
+if CONFIG['MOZ_WEBRTC']:
+    DIRS += ['loop']
+
 DIRS += ['build']
 
 XPIDL_SOURCES += [
diff -r 743749e19c63 -r d60efa52d56c browser/components/nsBrowserGlue.js
--- a/browser/components/nsBrowserGlue.js   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/components/nsBrowserGlue.js   Sat Feb 14 12:51:15 2015 +0800
@@ -64,8 +64,10 @@
                                   "resource://shumway/ShumwayUtils.jsm");
 #endif
 
+#ifdef MOZ_WEBRTC
 XPCOMUtils.defineLazyModuleGetter(this, "webrtcUI",
                                   "resource:///modules/webrtcUI.jsm");
+#endif
 
 XPCOMUtils.defineLazyModuleGetter(this, "PrivateBrowsingUtils",
                                   "resource://gre/modules/PrivateBrowsingUtils.jsm");
@@ -578,7 +580,9 @@
 #ifdef NIGHTLY_BUILD
     ShumwayUtils.init();
 #endif
+#ifdef MOZ_WEBRTC
     webrtcUI.init();
+#endif
     AboutHome.init();
     SessionStore.init();
     BrowserUITelemetry.init();
@@ -819,7 +823,9 @@
       SignInToWebsiteUX.uninit();
     }
 #endif
+#ifdef MOZ_WEBRTC
     webrtcUI.uninit();
+#endif
     FormValidationHandler.uninit();
   },
 
diff -r 743749e19c63 -r d60efa52d56c browser/confvars.sh
--- a/browser/confvars.sh   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/confvars.sh   Sat Feb 14 12:51:15 2015 +0800
@@ -54,7 +54,6 @@
 MOZ_PROFILE_MIGRATOR=1
 MOZ_APP_STATIC_INI=1
 MOZ_WEBAPP_RUNTIME=1
-MOZ_MEDIA_NAVIGATOR=1
 MOZ_WEBGL_CONFORMANT=1
 # Enable navigator.mozPay
 MOZ_PAY=1
diff -r 743749e19c63 -r d60efa52d56c browser/locales/jar.mn
--- a/browser/locales/jar.mn   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/locales/jar.mn   Sat Feb 14 12:51:15 2015 +0800
@@ -95,7 +95,9 @@
     locale/browser/taskbar.properties              (%chrome/browser/taskbar.properties)
     locale/browser/translation.dtd                 (%chrome/browser/translation.dtd)
     locale/browser/translation.properties          (%chrome/browser/translation.properties)
+#ifdef MOZ_WEBRTC
     locale/browser/webrtcIndicator.properties      (%chrome/browser/webrtcIndicator.properties)
+#endif
     locale/browser/downloads/downloads.dtd         (%chrome/browser/downloads/downloads.dtd)
     locale/browser/downloads/downloads.properties  (%chrome/browser/downloads/downloads.properties)
     locale/browser/places/places.dtd               (%chrome/browser/places/places.dtd)
diff -r 743749e19c63 -r d60efa52d56c browser/modules/moz.build
--- a/browser/modules/moz.build   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/modules/moz.build   Sat Feb 14 12:51:15 2015 +0800
@@ -17,7 +17,6 @@
     'ContentClick.jsm',
     'ContentLinkHandler.jsm',
     'ContentSearch.jsm',
-    'ContentWebRTC.jsm',
     'CustomizationTabPreloader.jsm',
     'DirectoryLinksProvider.jsm',
     'E10SUtils.jsm',
@@ -46,16 +45,25 @@
         'SignInToWebsite.jsm',
     ]
 
+if CONFIG['MOZ_WEBRTC']:
+    EXTRA_JS_MODULES += [
+        'ContentWebRTC.jsm',
+    ]
+
 EXTRA_PP_JS_MODULES += [
     'AboutHome.jsm',
     'PluginContent.jsm',
     'RecentWindow.jsm',
-    'webrtcUI.jsm',
 ]
 
 EXTRA_PP_COMPONENTS += [
     'browsermodules.manifest',
 ]
 
+if CONFIG['MOZ_WEBRTC']:
+    EXTRA_PP_JS_MODULES += [
+        'webrtcUI.jsm',
+    ]
+
 if CONFIG['MOZILLA_OFFICIAL']:
     DEFINES['MOZILLA_OFFICIAL'] = 1
diff -r 743749e19c63 -r d60efa52d56c browser/themes/linux/browser.css
--- a/browser/themes/linux/browser.css   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/themes/linux/browser.css   Sat Feb 14 12:51:15 2015 +0800
@@ -1210,6 +1210,7 @@
   list-style-image: url(chrome://browser/skin/bad-content-unblocked-64.png);
 }
 
+%ifdef MOZ_WEBRTC
 .popup-notification-icon[popupid="webRTC-sharingDevices"],
 .popup-notification-icon[popupid="webRTC-shareDevices"] {
   list-style-image: url(chrome://browser/skin/webRTC-shareDevice-64.png);
@@ -1224,6 +1225,7 @@
 .popup-notification-icon[popupid="webRTC-shareScreen"] {
   list-style-image: url(chrome://browser/skin/webRTC-shareScreen-64.png);
 }
+%endif
 
 .popup-notification-icon[popupid="pointerLock"] {
   list-style-image: url(chrome://browser/skin/pointerLock-64.png);
diff -r 743749e19c63 -r d60efa52d56c browser/themes/linux/jar.mn
--- a/browser/themes/linux/jar.mn   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/themes/linux/jar.mn   Sat Feb 14 12:51:15 2015 +0800
@@ -85,6 +85,7 @@
   skin/classic/browser/Toolbar-small.png
   skin/classic/browser/undoCloseTab.png                        (../shared/undoCloseTab.png)
   skin/classic/browser/urlbar-arrow.png
+#ifdef MOZ_WEBRTC
   skin/classic/browser/webRTC-shareDevice-16.png
   skin/classic/browser/webRTC-shareDevice-64.png
   skin/classic/browser/webRTC-sharingDevice-16.png    (../shared/webrtc/webRTC-sharingDevice-16.png)
@@ -98,9 +99,12 @@
   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)
+#endif
+#ifdef MOZ_WEBRTC
   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)
+#endif
   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 -r 743749e19c63 -r d60efa52d56c browser/themes/osx/browser.css
--- a/browser/themes/osx/browser.css   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/themes/osx/browser.css   Sat Feb 14 12:51:15 2015 +0800
@@ -1441,6 +1441,7 @@
     -moz-image-region: rect(0px, 192px, 32px, 160px);
   }
 
+%ifdef MOZ_WEBRTC
   #loop-button > .toolbarbutton-badge-container {
     list-style-image: url("chrome://browser/skin/loop/toolbar@2x.png");
     -moz-image-region: rect(0, 36px, 36px, 0);
@@ -1510,6 +1511,7 @@
   #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);
   }
+%endif
 }
 
 toolbar .toolbarbutton-1:not([type="menu-button"]),
@@ -3825,6 +3827,7 @@
   }
 }
 
+%ifdef MOZ_WEBRTC
 .webRTC-shareDevices-notification-icon,
 #webRTC-shareDevices-notification-icon {
   list-style-image: url(chrome://browser/skin/webRTC-shareDevice-16.png);
@@ -3890,6 +3893,7 @@
     list-style-image: url(chrome://browser/skin/webRTC-sharingScreen-16@2x.png);
   }
 }
+%endif
 
 .web-notifications-notification-icon,
 #web-notifications-notification-icon {
diff -r 743749e19c63 -r d60efa52d56c browser/themes/osx/jar.mn
--- a/browser/themes/osx/jar.mn   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/themes/osx/jar.mn   Sat Feb 14 12:51:15 2015 +0800
@@ -135,6 +135,7 @@
   skin/classic/browser/urlbar-arrow@2x.png
   skin/classic/browser/urlbar-popup-blocked.png
   skin/classic/browser/urlbar-popup-blocked@2x.png
+#ifdef MOZ_WEBRTC
   skin/classic/browser/webRTC-shareDevice-16.png
   skin/classic/browser/webRTC-shareDevice-16@2x.png
   skin/classic/browser/webRTC-shareDevice-64.png
@@ -160,6 +161,8 @@
   skin/classic/browser/webRTC-sharingScreen-menubar.png
   skin/classic/browser/webRTC-sharingScreen-menubar@2x.png
   skin/classic/browser/webRTC-indicator.css
+#endif
+#ifdef MOZ_WEBRTC
   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)
@@ -170,6 +173,7 @@
   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)
+#endif
   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)
@@ -590,10 +594,12 @@
 % 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
+#ifdef MOZ_WEBRTC
 % 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
+#endif
 % 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 -r 743749e19c63 -r d60efa52d56c browser/themes/windows/browser.css
--- a/browser/themes/windows/browser.css   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/themes/windows/browser.css   Sat Feb 14 12:51:15 2015 +0800
@@ -596,9 +596,11 @@
     list-style-image: url("chrome://browser/skin/Toolbar-lunaSilver.png");
   }
 
+%ifdef MOZ_WEBRTC
   #loop-button > .toolbarbutton-badge-container {
     list-style-image: url(chrome://browser/skin/loop/toolbar-lunaSilver.png)
   }
+%endif
 }
 %endif
 
@@ -2213,6 +2215,7 @@
   list-style-image: url(chrome://browser/skin/bad-content-unblocked-64.png);
 }
 
+%ifdef MOZ_WEBRTC
 .popup-notification-icon[popupid="webRTC-sharingDevices"],
 .popup-notification-icon[popupid="webRTC-shareDevices"] {
   list-style-image: url(chrome://browser/skin/webRTC-shareDevice-64.png);
@@ -2227,6 +2230,7 @@
 .popup-notification-icon[popupid="webRTC-shareScreen"] {
   list-style-image: url(chrome://browser/skin/webRTC-shareScreen-64.png);
 }
+%endif
 
 .popup-notification-icon[popupid="pointerLock"] {
   list-style-image: url(chrome://browser/skin/pointerLock-64.png);
@@ -2349,6 +2353,7 @@
   list-style-image: url(chrome://browser/skin/bad-content-unblocked-16.png);
 }
 
+%ifdef MOZ_WEBRTC
 .webRTC-shareDevices-notification-icon,
 #webRTC-shareDevices-notification-icon {
   list-style-image: url(chrome://browser/skin/webRTC-shareDevice-16.png);
@@ -2378,6 +2383,7 @@
 #webRTC-sharingScreen-notification-icon {
   list-style-image: url(chrome://browser/skin/webRTC-sharingScreen-16.png);
 }
+%endif
 
 .web-notifications-notification-icon,
 #web-notifications-notification-icon {
diff -r 743749e19c63 -r d60efa52d56c browser/themes/windows/jar.mn
--- a/browser/themes/windows/jar.mn   Thu Jan 22 22:23:13 2015 +0800
+++ b/browser/themes/windows/jar.mn   Sat Feb 14 12:51:15 2015 +0800
@@ -107,6 +107,7 @@
         skin/classic/browser/notification-pluginNormal.png           (../shared/plugins/notification-pluginNormal.png)
         skin/classic/browser/notification-pluginAlert.png            (../shared/plugins/notification-pluginAlert.png)
         skin/classic/browser/notification-pluginBlocked.png          (../shared/plugins/notification-pluginBlocked.png)
+#ifdef MOZ_WEBRTC
         skin/classic/browser/webRTC-shareDevice-16.png
         skin/classic/browser/webRTC-shareDevice-64.png
         skin/classic/browser/webRTC-sharingDevice-16.png             (../shared/webrtc/webRTC-sharingDevice-16.png)
@@ -120,10 +121,13 @@
         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)
+#endif
+#ifdef MOZ_WEBRTC
         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)
+#endif
         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)
@@ -565,6 +569,7 @@
         skin/classic/aero/browser/notification-pluginNormal.png     (../shared/plugins/notification-pluginNormal.png)
         skin/classic/aero/browser/notification-pluginAlert.png      (../shared/plugins/notification-pluginAlert.png)
         skin/classic/aero/browser/notification-pluginBlocked.png    (../shared/plugins/notification-pluginBlocked.png)
+#ifdef MOZ_WEBRTC
         skin/classic/aero/browser/webRTC-shareDevice-16.png
         skin/classic/aero/browser/webRTC-shareDevice-64.png
         skin/classic/aero/browser/webRTC-sharingDevice-16.png             (../shared/webrtc/webRTC-sharingDevice-16.png)
@@ -578,11 +583,14 @@
         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)
+#endif
+#ifdef MOZ_WEBRTC
         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)
+#endif
         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)
@@ -946,8 +954,10 @@
 % 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
 
+#ifdef MOZ_WEBRTC
 % 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
+#endif
diff -r 743749e19c63 -r d60efa52d56c docshell/base/nsAboutRedirector.cpp
--- a/docshell/base/nsAboutRedirector.cpp   Thu Jan 22 22:23:13 2015 +0800
+++ b/docshell/base/nsAboutRedirector.cpp   Sat Feb 14 12:51:15 2015 +0800
@@ -66,8 +66,10 @@
       nsIAboutModule::ALLOW_SCRIPT },
     { "networking", "chrome://global/content/aboutNetworking.xhtml",
        nsIAboutModule::ALLOW_SCRIPT },
+#ifdef MOZ_WEBRTC
     { "webrtc", "chrome://global/content/aboutwebrtc/aboutWebrtc.xhtml",
        nsIAboutModule::ALLOW_SCRIPT },
+#endif
     // about:srcdoc is unresolvable by specification.  It is included here
     // because the security manager would disallow srcdoc iframes otherwise.
     { "srcdoc", "about:blank",
diff -r 743749e19c63 -r d60efa52d56c dom/base/Navigator.h
--- a/dom/base/Navigator.h   Thu Jan 22 22:23:13 2015 +0800
+++ b/dom/base/Navigator.h   Sat Feb 14 12:51:15 2015 +0800
@@ -35,7 +35,9 @@
 namespace dom {
 class Geolocation;
 class systemMessageCallback;
+#ifdef MOZ_MEDIA_NAVIGATOR
 class MediaDevices;
+#endif
 struct MediaStreamConstraints;
 class WakeLock;
 class ArrayBufferViewOrBlobOrStringOrFormData;
@@ -230,7 +232,9 @@
   TVManager* GetTv();
   network::Connection* GetConnection(ErrorResult& aRv);
   nsDOMCameraManager* GetMozCameras(ErrorResult& aRv);
+#ifdef MOZ_MEDIA_NAVIGATOR
   MediaDevices* GetMediaDevices(ErrorResult& aRv);
+#endif
   void MozSetMessageHandler(const nsAString& aType,
                             systemMessageCallback* aCallback,
                             ErrorResult& aRv);
@@ -364,7 +368,9 @@
   nsRefPtr<system::AudioChannelManager> mAudioChannelManager;
 #endif
   nsRefPtr<nsDOMCameraManager> mCameraManager;
+#ifdef MOZ_MEDIA_NAVIGATOR
   nsRefPtr<MediaDevices> mMediaDevices;
+#endif
   nsCOMPtr<nsIDOMNavigatorSystemMessages> mMessagesManager;
   nsTArray<nsRefPtr<nsDOMDeviceStorage> > mDeviceStorageStores;
   nsRefPtr<time::TimeManager> mTimeManager;
diff -r 743749e19c63 -r d60efa52d56c dom/base/nsDocument.cpp
--- a/dom/base/nsDocument.cpp   Thu Jan 22 22:23:13 2015 +0800
+++ b/dom/base/nsDocument.cpp   Sat Feb 14 12:51:15 2015 +0800
@@ -2803,6 +2803,7 @@
   return NS_OK;
 }
 
+#ifdef MOZ_WEBRTC
 bool
 nsDocument::IsLoopDocument(nsIChannel *aChannel)
 {
@@ -2829,6 +2830,7 @@
   }
   return isLoop;
 }
+#endif
 
 nsresult
 nsDocument::InitCSP(nsIChannel* aChannel)
@@ -2883,13 +2885,17 @@
     }
   }
 
+#ifdef MOZ_WEBRTC
  // Check if this is part of the Loop/Hello service
  bool applyLoopCSP = IsLoopDocument(aChannel);
+#endif
 
   // If there's no CSP to apply, go ahead and return early
   if (!applyAppDefaultCSP &&
       !applyAppManifestCSP &&
+#ifdef MOZ_WEBRTC
       !applyLoopCSP &&
+#endif
       cspHeaderValue.IsEmpty() &&
       cspROHeaderValue.IsEmpty()) {
 #ifdef PR_LOGGING
@@ -2962,6 +2968,7 @@
     csp->AppendPolicy(appManifestCSP, false);
   }
 
+#ifdef MOZ_WEBRTC
   // ----- if the doc is part of Loop, apply the loop CSP
   if (applyLoopCSP) {
     nsAdoptingString loopCSP;
@@ -2972,6 +2979,7 @@
       csp->AppendPolicy(loopCSP, false);
     }
   }
+#endif
 
   // ----- if there's a full-strength CSP header, apply it.
   if (!cspHeaderValue.IsEmpty()) {
diff -r 743749e19c63 -r d60efa52d56c dom/base/nsDocument.h
--- a/dom/base/nsDocument.h   Thu Jan 22 22:23:13 2015 +0800
+++ b/dom/base/nsDocument.h   Sat Feb 14 12:51:15 2015 +0800
@@ -1692,7 +1692,9 @@
   void DoUnblockOnload();
 
   nsresult CheckFrameOptions();
+#ifdef MOZ_WEBRTC
   bool IsLoopDocument(nsIChannel* aChannel);
+#endif
   nsresult InitCSP(nsIChannel* aChannel);
 
   void FlushCSPWebConsoleErrorQueue()
diff -r 743749e19c63 -r d60efa52d56c dom/media/MediaManager.cpp
--- a/dom/media/MediaManager.cpp   Thu Jan 22 22:23:13 2015 +0800
+++ b/dom/media/MediaManager.cpp   Sat Feb 14 12:51:15 2015 +0800
@@ -1715,6 +1715,7 @@
   }
 #endif
 
+#ifdef MOZ_WEBRTC
   bool isLoop = false;
   nsCOMPtr<nsIURI> loopURI;
   nsresult rv = NS_NewURI(getter_AddRefs(loopURI), "about:loopconversation");
@@ -1725,6 +1726,7 @@
   if (isLoop) {
     privileged = true;
   }
+#endif
 
   // XXX No full support for picture in Desktop yet (needs proper UI)
   if (privileged ||
diff -r 743749e19c63 -r d60efa52d56c dom/media/moz.build
--- a/dom/media/moz.build   Thu Jan 22 22:23:13 2015 +0800
+++ b/dom/media/moz.build   Sat Feb 14 12:51:15 2015 +0800
@@ -144,7 +144,6 @@
     'AudioTrack.h',
     'AudioTrackList.h',
     'GetUserMediaRequest.h',
-    'MediaDevices.h',
     'MediaStreamError.h',
     'MediaStreamTrack.h',
     'TextTrack.h',
@@ -158,6 +157,11 @@
     'VideoTrackList.h',
 ]
 
+if CONFIG['MOZ_MEDIA_NAVIGATOR']:
+    EXPORTS.mozilla.dom += [
+        'MediaDevices.h',
+    ]
+
 UNIFIED_SOURCES += [
     'AudioChannelFormat.cpp',
     'AudioCompactor.cpp',
@@ -180,7 +184,6 @@
     'MediaDecoderReader.cpp',
     'MediaDecoderStateMachine.cpp',
     'MediaDecoderStateMachineScheduler.cpp',
-    'MediaDevices.cpp',
     'MediaManager.cpp',
     'MediaPromise.cpp',
     'MediaRecorder.cpp',
@@ -212,6 +215,11 @@
     'WebVTTListener.cpp',
 ]
 
+if CONFIG['MOZ_MEDIA_NAVIGATOR']:
+    UNIFIED_SOURCES += [
+        'MediaDevices.cpp',
+    ]
+
 if CONFIG['OS_TARGET'] == 'WINNT':
   SOURCES += [ 'ThreadPoolCOMListener.cpp' ]
 
diff -r 743749e19c63 -r d60efa52d56c dom/webidl/moz.build
--- a/dom/webidl/moz.build   Thu Jan 22 22:23:13 2015 +0800
+++ b/dom/webidl/moz.build   Sat Feb 14 12:51:15 2015 +0800
@@ -256,7 +256,6 @@
     'ListBoxObject.webidl',
     'LocalMediaStream.webidl',
     'Location.webidl',
-    'MediaDevices.webidl',
     'MediaElementAudioSourceNode.webidl',
     'MediaError.webidl',
     'MediaList.webidl',
@@ -599,6 +598,11 @@
         'Gamepad.webidl',
     ]
 
+if CONFIG['MOZ_MEDIA_NAVIGATOR']:
+    WEBIDL_FILES += [
+        'MediaDevices.webidl',
+    ]
+
 WEBIDL_FILES += [
     'CloseEvent.webidl',
     'CustomEvent.webidl',
diff -r 743749e19c63 -r d60efa52d56c testing/profiles/prefs_general.js
--- a/testing/profiles/prefs_general.js   Thu Jan 22 22:23:13 2015 +0800
+++ b/testing/profiles/prefs_general.js   Sat Feb 14 12:51:15 2015 +0800
@@ -259,6 +259,7 @@
 user_pref("browser.newtabpage.directory.source", 'data:application/json,{"testing":1}');
 user_pref("browser.newtabpage.directory.ping", "");
 
+#ifdef MOZ_WEBRTC
 // Enable Loop
 user_pref("loop.enabled", true);
 user_pref("loop.throttled", false);
@@ -266,7 +267,7 @@
 user_pref("loop.oauth.google.getContactsURL", "http://%(server)s/browser/browser/components/loop/test/mochitest/google_service.sjs?action=contacts");
 user_pref("loop.oauth.google.getGroupsURL", "http://%(server)s/browser/browser/components/loop/test/mochitest/google_service.sjs?action=groups");
 user_pref("loop.server", "http://%(server)s/browser/browser/components/loop/test/mochitest/loop_fxa.sjs?");
-user_pref("loop.CSP","default-src 'self' about: file: chrome: data: wss://* http://* https://*");
+#endif
 
 // Ensure UITour won't hit the network
 user_pref("browser.uitour.pinnedTabUrl", "http://%(server)s/uitour-dummy/pinnedTab");
diff -r 743749e19c63 -r d60efa52d56c toolkit/content/jar.mn
--- a/toolkit/content/jar.mn   Thu Jan 22 22:23:13 2015 +0800
+++ b/toolkit/content/jar.mn   Sat Feb 14 12:51:15 2015 +0800
@@ -20,9 +20,11 @@
    content/global/aboutRights-unbranded.xhtml (aboutRights-unbranded.xhtml)
    content/global/aboutNetworking.js
    content/global/aboutNetworking.xhtml
+#ifdef MOZ_WEBRTC
    content/global/aboutwebrtc/aboutWebrtc.css   (aboutwebrtc/aboutWebrtc.css)
    content/global/aboutwebrtc/aboutWebrtc.js    (aboutwebrtc/aboutWebrtc.js)
    content/global/aboutwebrtc/aboutWebrtc.xhtml (aboutwebrtc/aboutWebrtc.xhtml)
+#endif
 *  content/global/aboutSupport.js
 *  content/global/aboutSupport.xhtml
 *  content/global/aboutTelemetry.js

barbaz
Posts: 1504
Joined: October 1st, 2014, 3:25 pm

Re: Disable Firefox Hello (Loop)

Post by barbaz »

Thanks.
I tried that, and added your patch to disable building Social API while I was at it, and ended up with a non-functional Firefox (and couldn't access the Browser Console to see why it wasn't working). Apparently some change that works in your pcxfirefox makes Mozilla Firefox not work. Off to do some tweaking...
barbaz
Posts: 1504
Joined: October 1st, 2014, 3:25 pm

Re: Disable Firefox Hello (Loop)

Post by barbaz »

Tried again... applied xunxun1982's patch... got a working Firefox after adding one other #ifdef that I noticed was missing when I got a build error.

So I don't know what I am doing differently this time (I'm even working with the same mozilla-aurora changeset)... but thank you again for your help xunxun1982 :D
xunxun1982
Posts: 311
Joined: June 20th, 2011, 10:37 am

Re: Disable Firefox Hello (Loop)

Post by xunxun1982 »

Well, here is my lite edition's removing loop service patch (based on present 38beta code):

Code: Select all

# HG changeset patch
# User xunxun1982@gmail.com
# Date 1427875501 -28800
#      Wed Apr 01 16:05:01 2015 +0800
# Node ID 444ae5f03ae2e45582eb338303209601e0fa5974
# Parent  31ed6fd7e2d69d15b6d6eb7e3ec8b5081890cdf2
Remove Loop service

diff -r 31ed6fd7e2d6 -r 444ae5f03ae2 browser/app/profile/firefox.js
--- a/browser/app/profile/firefox.js   Wed Apr 01 12:38:04 2015 +0800
+++ b/browser/app/profile/firefox.js   Wed Apr 01 16:05:01 2015 +0800
@@ -1741,6 +1741,7 @@
 // (This is intentionally on the high side; see bug 746055.)
 pref("image.mem.max_decoded_image_kb", 256000);
 
+#ifdef MOZ_LOOP
 pref("loop.enabled", true);
 pref("loop.screenshare.enabled", true);
 pref("loop.server", "https://loop.services.mozilla.com/v0");
@@ -1777,6 +1778,7 @@
 pref("loop.contacts.gravatars.show", false);
 pref("loop.contacts.gravatars.promo", true);
 pref("loop.browserSharing.showInfoBar", true);
+#endif
 
 // serverURL to be assigned by services team
 pref("services.push.serverURL", "wss://push.services.mozilla.com/");
diff -r 31ed6fd7e2d6 -r 444ae5f03ae2 browser/base/content/browser.css
--- a/browser/base/content/browser.css   Wed Apr 01 12:38:04 2015 +0800
+++ b/browser/base/content/browser.css   Wed Apr 01 16:05:01 2015 +0800
@@ -899,11 +899,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 {
diff -r 31ed6fd7e2d6 -r 444ae5f03ae2 browser/base/content/browser.js
--- a/browser/base/content/browser.js   Wed Apr 01 12:38:04 2015 +0800
+++ b/browser/base/content/browser.js   Wed Apr 01 16:05:01 2015 +0800
@@ -232,7 +232,9 @@
 #include browser-fullScreen.js
 #include browser-fullZoom.js
 #include browser-gestureSupport.js
+#ifdef MOZ_LOOP
 #include browser-loop.js
+#endif
 #include browser-places.js
 #include browser-plugins.js
 #include browser-readinglist.js
@@ -1355,8 +1357,10 @@
     gDataNotificationInfoBar.init();
 #endif
 
+#ifdef MOZ_LOOP
     LoopUI.init();
-
+#endif
+   
     gBrowserThumbnails.init();
 
     // Add Devtools menuitems and listeners
@@ -1529,7 +1533,9 @@
       TabView.uninit();
       SocialUI.uninit();
       gBrowserThumbnails.uninit();
+#ifdef MOZ_LOOP
       LoopUI.uninit();
+#endif
       FullZoom.destroy();
 
       Services.obs.removeObserver(gSessionHistoryObserver, "browser:purge-session-history");
diff -r 31ed6fd7e2d6 -r 444ae5f03ae2 browser/base/content/browser.xul
--- a/browser/base/content/browser.xul   Wed Apr 01 12:38:04 2015 +0800
+++ b/browser/base/content/browser.xul   Wed Apr 01 16:05:01 2015 +0800
@@ -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 -r 31ed6fd7e2d6 -r 444ae5f03ae2 browser/components/customizableui/CustomizableUI.jsm
--- a/browser/components/customizableui/CustomizableUI.jsm   Wed Apr 01 12:38:04 2015 +0800
+++ b/browser/components/customizableui/CustomizableUI.jsm   Wed Apr 01 16:05:01 2015 +0800
@@ -210,7 +210,9 @@
       "bookmarks-menu-button",
       "downloads-button",
       "home-button",
+#ifdef MOZ_LOOP
       "loop-button",
+#endif
     ];
 
     if (Services.prefs.getBoolPref(kPrefWebIDEInNavbar)) {
@@ -309,6 +311,7 @@
       }
     }
 
+#ifdef MOZ_LOOP
     if (currentVersion < 2) {
       // Nuke the old 'loop-call-button' out of orbit.
       CustomizableUI.removeWidgetFromArea("loop-call-button");
@@ -317,6 +320,7 @@
     if (currentVersion < 4) {
       CustomizableUI.removeWidgetFromArea("loop-button-throttled");
     }
+#endif
   },
 
   wrapWidget: function(aWidgetId) {
diff -r 31ed6fd7e2d6 -r 444ae5f03ae2 browser/components/customizableui/CustomizableWidgets.jsm
--- a/browser/components/customizableui/CustomizableWidgets.jsm   Wed Apr 01 12:38:04 2015 +0800
+++ b/browser/components/customizableui/CustomizableWidgets.jsm   Wed Apr 01 16:05:01 2015 +0800
@@ -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 -r 31ed6fd7e2d6 -r 444ae5f03ae2 browser/components/moz.build
--- a/browser/components/moz.build   Wed Apr 01 12:38:04 2015 +0800
+++ b/browser/components/moz.build   Wed Apr 01 16:05:01 2015 +0800
@@ -10,7 +10,6 @@
     'dirprovider',
     'downloads',
     'feeds',
-    'loop',
     'migration',
     'places',
     'preferences',
@@ -27,6 +26,9 @@
 
 DIRS += ['build']
 
+if CONFIG['MOZ_LOOP']:
+    DIRS += ['loop']
+
 XPIDL_SOURCES += [
     'nsIBrowserGlue.idl',
     'nsIBrowserHandler.idl',
diff -r 31ed6fd7e2d6 -r 444ae5f03ae2 browser/components/uitour/UITour.jsm
--- a/browser/components/uitour/UITour.jsm   Wed Apr 01 12:38:04 2015 +0800
+++ b/browser/components/uitour/UITour.jsm   Wed Apr 01 16:05:01 2015 +0800
@@ -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,11 +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");
@@ -1659,11 +1568,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 +1594,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 -r 31ed6fd7e2d6 -r 444ae5f03ae2 browser/locales/jar.mn
--- a/browser/locales/jar.mn   Wed Apr 01 12:38:04 2015 +0800
+++ b/browser/locales/jar.mn   Wed Apr 01 16:05:01 2015 +0800
@@ -77,7 +77,9 @@
     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)
+#ifdef MOZ_LOOP
     locale/browser/loop/loop.properties            (%chrome/browser/loop/loop.properties)
+#endif
     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 -r 31ed6fd7e2d6 -r 444ae5f03ae2 browser/themes/linux/browser.css
--- a/browser/themes/linux/browser.css   Wed Apr 01 12:38:04 2015 +0800
+++ b/browser/themes/linux/browser.css   Wed Apr 01 16:05:01 2015 +0800
@@ -1484,16 +1484,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 -r 31ed6fd7e2d6 -r 444ae5f03ae2 browser/themes/linux/jar.mn
--- a/browser/themes/linux/jar.mn   Wed Apr 01 12:38:04 2015 +0800
+++ b/browser/themes/linux/jar.mn   Wed Apr 01 16:05:01 2015 +0800
@@ -109,9 +109,11 @@
   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)
+#ifdef MOZ_LOOP
   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)
+#endif
   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 -r 31ed6fd7e2d6 -r 444ae5f03ae2 browser/themes/osx/browser.css
--- a/browser/themes/osx/browser.css   Wed Apr 01 12:38:04 2015 +0800
+++ b/browser/themes/osx/browser.css   Wed Apr 01 16:05:01 2015 +0800
@@ -1442,75 +1442,6 @@
     -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 +4029,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 -r 31ed6fd7e2d6 -r 444ae5f03ae2 browser/themes/osx/jar.mn
--- a/browser/themes/osx/jar.mn   Wed Apr 01 12:38:04 2015 +0800
+++ b/browser/themes/osx/jar.mn   Wed Apr 01 16:05:01 2015 +0800
@@ -171,6 +171,7 @@
   skin/classic/browser/webRTC-sharingScreen-menubar.png
   skin/classic/browser/webRTC-sharingScreen-menubar@2x.png
   skin/classic/browser/webRTC-indicator.css
+#ifdef MOZ_LOOP
   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)
@@ -181,6 +182,7 @@
   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)
+#endif
   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 +604,12 @@
 % 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
+#ifdef MOZ_LOOP
 % 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
+#endif
 % 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 -r 31ed6fd7e2d6 -r 444ae5f03ae2 browser/themes/shared/browser.inc
--- a/browser/themes/shared/browser.inc   Wed Apr 01 12:38:04 2015 +0800
+++ b/browser/themes/shared/browser.inc   Wed Apr 01 16:05:01 2015 +0800
@@ -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 -r 31ed6fd7e2d6 -r 444ae5f03ae2 browser/themes/shared/menupanel.inc.css
--- a/browser/themes/shared/menupanel.inc.css   Wed Apr 01 12:38:04 2015 +0800
+++ b/browser/themes/shared/menupanel.inc.css   Wed Apr 01 16:05:01 2015 +0800
@@ -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 -r 31ed6fd7e2d6 -r 444ae5f03ae2 browser/themes/shared/toolbarbuttons.inc.css
--- a/browser/themes/shared/toolbarbuttons.inc.css   Wed Apr 01 12:38:04 2015 +0800
+++ b/browser/themes/shared/toolbarbuttons.inc.css   Wed Apr 01 16:05:01 2015 +0800
@@ -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 -r 31ed6fd7e2d6 -r 444ae5f03ae2 browser/themes/windows/browser.css
--- a/browser/themes/windows/browser.css   Wed Apr 01 12:38:04 2015 +0800
+++ b/browser/themes/windows/browser.css   Wed Apr 01 16:05:01 2015 +0800
@@ -596,9 +596,6 @@
     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
 
@@ -2502,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 -r 31ed6fd7e2d6 -r 444ae5f03ae2 browser/themes/windows/jar.mn
--- a/browser/themes/windows/jar.mn   Wed Apr 01 12:38:04 2015 +0800
+++ b/browser/themes/windows/jar.mn   Wed Apr 01 16:05:01 2015 +0800
@@ -131,10 +131,12 @@
         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)
+#ifdef MOZ_LOOP
         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)
+#endif
         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 +602,13 @@
         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)
+#ifdef MOZ_LOOP
         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)
+#endif
         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)
@@ -969,8 +973,10 @@
 % 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
 
+#ifdef MOZ_LOOP
 % 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
+#endif

And

Code: Select all

# HG changeset patch
# User xunxun1982@gmail.com
# Date 1427962345 -28800
#      Thu Apr 02 16:12:25 2015 +0800
# Node ID aa8da3f7ad03a206b635c89ad84fac1a5cc1ee8b
# Parent  cdb7033873b8817e54197b115c5750052b5d7d21
Remove Loop service 2

diff -r cdb7033873b8 -r aa8da3f7ad03 browser/components/about/AboutRedirector.cpp
--- a/browser/components/about/AboutRedirector.cpp   Thu Apr 02 14:57:56 2015 +0800
+++ b/browser/components/about/AboutRedirector.cpp   Thu Apr 02 16:12:25 2015 +0800
@@ -105,6 +105,7 @@
     nsIAboutModule::ALLOW_SCRIPT },
   { "customizing", "chrome://browser/content/customizableui/aboutCustomizing.xul",
     nsIAboutModule::ALLOW_SCRIPT },
+#ifdef MOZ_LOOP
   { "loopconversation", "chrome://browser/content/loop/conversation.html",
     nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
     nsIAboutModule::ALLOW_SCRIPT |
@@ -117,6 +118,7 @@
     nsIAboutModule::ENABLE_INDEXED_DB,
     // Shares an IndexedDB origin with about:loopconversation.
     "loopconversation" },
+#endif
   { "reader", "chrome://global/content/reader/aboutReader.html",
     nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
     nsIAboutModule::ALLOW_SCRIPT |
Post Reply