Add GYP flag to optionally enable the Hangout Services extension in
any build (not just Chrome-branded builds).

BUG=343567

Review URL: https://codereview.chromium.org/163583004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251350 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/build/common.gypi b/build/common.gypi
index a5e2ce0..caadf6e0 100644
--- a/build/common.gypi
+++ b/build/common.gypi
@@ -513,6 +513,7 @@
       'data_reduction_proxy_probe_url%' : '',
       'enable_mdns%' : 0,
       'enable_enhanced_bookmarks%': 0,
+      'enable_hangout_services_extension%': 0,
 
       'conditions': [
         # A flag for POSIX platforms
@@ -983,6 +984,7 @@
     'data_reduction_proxy_probe_url%': '<(data_reduction_proxy_probe_url)',
     'enable_mdns%' : '<(enable_mdns)',
     'enable_enhanced_bookmarks%' : '<(enable_enhanced_bookmarks)',
+    'enable_hangout_services_extension%' : '<(enable_hangout_services_extension)',
     'v8_optimized_debug%': '<(v8_optimized_debug)',
     'proprietary_codecs%': '<(proprietary_codecs)',
     'use_goma%': '<(use_goma)',
@@ -1789,6 +1791,9 @@
       ['enable_enhanced_bookmarks==1', {
         'grit_defines': ['-D', 'enable_enhanced_bookmarks'],
       }],
+      ['enable_hangout_services_extension==1', {
+        'grit_defines': ['-D', 'enable_hangout_services_extension'],
+      }],
       ['enable_task_manager==1', {
         'grit_defines': ['-D', 'enable_task_manager'],
       }],
@@ -2484,6 +2489,9 @@
       ['enable_enhanced_bookmarks==1', {
         'defines': ['ENABLE_ENHANCED_BOOKMARKS=1'],
       }],
+      ['enable_hangout_services_extension==1', {
+        'defines': ['ENABLE_HANGOUT_SERVICES_EXTENSION=1'],
+      }],
       ['enable_ipc_fuzzer==1', {
         'defines': ['ENABLE_IPC_FUZZER=1'],
       }],
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
index aa6e258..76a910ed 100644
--- a/chrome/browser/browser_resources.grd
+++ b/chrome/browser/browser_resources.grd
@@ -143,7 +143,7 @@
       <include name="IDR_FEEDBACK_MANIFEST" file="resources\feedback\manifest.json" type="BINDATA" />
       <include name="IDR_FLAGS_HTML" file="resources\flags.html" flattenhtml="true" type="BINDATA" />
       <include name="IDR_FLAGS_JS" file="resources\flags.js" type="BINDATA" />
-      <if expr="pp_ifdef('_google_chrome')">
+      <if expr="pp_ifdef('_google_chrome') or pp_ifdef('enable_hangout_services_extension')">
         <!-- Hangout Services extension, included in Google Chrome builds only. -->
         <include name="IDR_HANGOUT_SERVICES_MANIFEST" file="resources\hangout_services\manifest.json" type="BINDATA" />
       </if>
diff --git a/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_browsertest.cc b/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_browsertest.cc
index a885cb8..d8487fe 100644
--- a/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_browsertest.cc
+++ b/chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_browsertest.cc
@@ -374,7 +374,7 @@
   }
 };
 
-#if defined(GOOGLE_CHROME_BUILD)
+#if defined(GOOGLE_CHROME_BUILD) || defined(ENABLE_HANGOUT_SERVICES_EXTENSION)
 IN_PROC_BROWSER_TEST_F(HangoutServicesBrowserTest,
                        RunComponentExtensionTest) {
   // This runs the end-to-end JavaScript test for the Hangout Services
@@ -407,6 +407,6 @@
   base::string16 result = title_watcher.WaitAndGetTitle();
   EXPECT_EQ(base::ASCIIToUTF16("success"), result);
 }
-#endif  // defined(GOOGLE_CHROME_BUILD)
+#endif  // defined(GOOGLE_CHROME_BUILD) || defined(ENABLE_HANGOUT_SERVICES_EXTENSION)
 
 }  // namespace extensions
diff --git a/chrome/browser/extensions/component_loader.cc b/chrome/browser/extensions/component_loader.cc
index 84ad6de..92f68ef 100644
--- a/chrome/browser/extensions/component_loader.cc
+++ b/chrome/browser/extensions/component_loader.cc
@@ -289,7 +289,7 @@
 }
 
 void ComponentLoader::AddHangoutServicesExtension() {
-#if defined(GOOGLE_CHROME_BUILD)
+#if defined(GOOGLE_CHROME_BUILD) || defined(ENABLE_HANGOUT_SERVICES_EXTENSION)
   Add(IDR_HANGOUT_SERVICES_MANIFEST,
       base::FilePath(FILE_PATH_LITERAL("hangout_services")));
 #endif
diff --git a/chrome/browser/resources/component_extension_resources.grd b/chrome/browser/resources/component_extension_resources.grd
index eb1440960..76e1856e 100644
--- a/chrome/browser/resources/component_extension_resources.grd
+++ b/chrome/browser/resources/component_extension_resources.grd
@@ -64,7 +64,7 @@
       <include name="IDR_GAIA_AUTH_INLINE_INJECTED_JS" file="gaia_auth/inline_injected.js" type="BINDATA" />
       <include name="IDR_GAIA_AUTH_INLINE_MAIN" file="gaia_auth/inline_main.html" allowexternalscript="true" type="BINDATA" />
       <!-- Hangout Services extension, included in Google Chrome builds only. -->
-      <if expr="pp_ifdef('_google_chrome')">
+      <if expr="pp_ifdef('_google_chrome') or pp_ifdef('enable_hangout_services_extension')">
         <include name="IDR_HANGOUT_SERVICES_BACKGROUND_HTML" file="hangout_services/background.html" type="BINDATA" />
         <include name="IDR_HANGOUT_SERVICES_THUNK_JS" file="hangout_services/thunk.js" type="BINDATA" />
       </if>