Date: Tuesday, June 16, 2015 @ 17:49:27 Author: foutrelis Revision: 240952
upgpkg: chromium 43.0.2357.125-2 Disable 'Ok Google' hotwording feature. Added: chromium/trunk/add-build-flag-to-disable-hotwording.patch Modified: chromium/trunk/PKGBUILD --------------------------------------------+ PKGBUILD | 13 ++ add-build-flag-to-disable-hotwording.patch | 120 +++++++++++++++++++++++++++ 2 files changed, 131 insertions(+), 2 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2015-06-16 15:26:31 UTC (rev 240951) +++ PKGBUILD 2015-06-16 15:49:27 UTC (rev 240952) @@ -6,7 +6,7 @@ pkgname=chromium pkgver=43.0.2357.125 -pkgrel=1 +pkgrel=2 _launcher_ver=2 pkgdesc="The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browser" arch=('i686' 'x86_64') @@ -27,10 +27,12 @@ source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz chromium.desktop + add-build-flag-to-disable-hotwording.patch chromium-widevine.patch) sha256sums=('af1774d093f90f9ccfd7def3b2b3a8caa109274ac28d4bec0285e50f8a5a5405' '7f91c81721092d707d7b94e6555a48bc7fd0bc0e1174df4649bdcd745930e52f' '028a748a5c275de9b8f776f97909f999a8583a4b77fd1cd600b4fc5c0c3e91e9' + '3a1c589aa90c0597776d945d34638d43e2d40d93bc1962148815831a5122ac4e' '379b746e187de28f80f5a7cd19edcfa31859656826f802a1ede054fcb6dfb221') # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) @@ -53,6 +55,12 @@ prepare() { cd "$srcdir/$pkgname-$pkgver" + # Add build flag to disable 'Ok Google' hotwording feature + # The issue with this functionality is that it downloads a binary blob + # and that this behavior cannot be disabled if a user wishes to do so. + # https://code.google.com/p/chromium/issues/detail?id=491435 + patch -Np1 -i ../add-build-flag-to-disable-hotwording.patch + # Enable support for the Widevine CDM plugin # The actual libraries are not included, but can be copied over from Chrome: # libwidevinecdmadapter.so @@ -62,7 +70,7 @@ patch -Np1 # Remove bundled ICU; its header files appear to get picked up instead of - # the system ones, leading to errors during the final link stage + # the system ones, leading to errors during the final link stage. # https://groups.google.com/a/chromium.org/d/topic/chromium-packagers/BNGvJc08B6Q find third_party/icu -type f \! -regex '.*\.\(gyp\|gypi\|isolate\)' -delete @@ -132,6 +140,7 @@ -Dusb_ids_path=/usr/share/hwdata/usb.ids -Duse_mojo=0 -Duse_gconf=0 + -Denable_hotwording=0 -Ddisable_fatal_linker_warnings=1 -Ddisable_glibc=1) Added: add-build-flag-to-disable-hotwording.patch =================================================================== --- add-build-flag-to-disable-hotwording.patch (rev 0) +++ add-build-flag-to-disable-hotwording.patch 2015-06-16 15:49:27 UTC (rev 240952) @@ -0,0 +1,120 @@ +Index: build/common.gypi +diff --git a/build/common.gypi b/build/common.gypi +index b26d0e1aaf3baa8c0bea2aa21795051e0767bb39..bac0544541b1ffbd4c9a072e86425476f01fa3d9 100644 +--- a/build/common.gypi ++++ b/build/common.gypi +@@ -391,6 +391,9 @@ + # Web speech is enabled by default. Set to 0 to disable. + 'enable_web_speech%': 1, + ++ # 'Ok Google' hotwording is enabled by default. Set to 0 to disable. ++ 'enable_hotwording%': 1, ++ + # Notifications are compiled in by default. Set to 0 to disable. + 'notifications%' : 1, + +@@ -1136,6 +1139,7 @@ + 'configuration_policy%': '<(configuration_policy)', + 'safe_browsing%': '<(safe_browsing)', + 'enable_web_speech%': '<(enable_web_speech)', ++ 'enable_hotwording%': '<(enable_hotwording)', + 'notifications%': '<(notifications)', + 'clang_use_chrome_plugins%': '<(clang_use_chrome_plugins)', + 'mac_want_real_dsym%': '<(mac_want_real_dsym)', +Index: chrome/browser/BUILD.gn +diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn +index 30127a3a2ee6836ffb108fd2859707b765d42cb8..867dc390d0b7f623423ed64bfbbe5f938fbc0659 100644 +--- a/chrome/browser/BUILD.gn ++++ b/chrome/browser/BUILD.gn +@@ -19,6 +19,11 @@ if (is_desktop_linux) { + import("//build/config/linux/pkg_config.gni") + } + ++declare_args() { ++ # 'Ok Google' hotwording is enabled. ++ enable_hotwording = true ++} ++ + about_credits_file = "$target_gen_dir/about_credits.html" + additional_modules_list_file = + "$root_gen_dir/chrome/browser/internal/additional_modules_list.txt" +@@ -452,6 +457,10 @@ source_set("browser") { + } + } + ++ if (enable_hotwording) { ++ defines += [ "ENABLE_HOTWORDING" ] ++ } ++ + if (is_linux) { + deps += [ + "//device/media_transfer_protocol", +Index: chrome/browser/search/hotword_service.cc +diff --git a/chrome/browser/search/hotword_service.cc b/chrome/browser/search/hotword_service.cc +index d222b150fbae877fe74598681e956e6e624890fa..5b08027ef4c198480f703a9420a55068e88aa435 100644 +--- a/chrome/browser/search/hotword_service.cc ++++ b/chrome/browser/search/hotword_service.cc +@@ -639,7 +639,11 @@ bool HotwordService::IsServiceAvailable() { + if (group == hotword_internal::kHotwordFieldTrialDisabledGroupName) + return false; + ++#if defined(ENABLE_HOTWORDING) + return DoesHotwordSupportLanguage(profile_); ++#else ++ return false; ++#endif + } + + bool HotwordService::IsOptedIntoAudioLogging() { +Index: chrome/browser/search/hotword_service_unittest.cc +diff --git a/chrome/browser/search/hotword_service_unittest.cc b/chrome/browser/search/hotword_service_unittest.cc +index 588706c1c186e7f410230b12f649a6b8853da2fb..84444468e2f7634ad895d0752355303babf0c7d7 100644 +--- a/chrome/browser/search/hotword_service_unittest.cc ++++ b/chrome/browser/search/hotword_service_unittest.cc +@@ -157,6 +157,7 @@ INSTANTIATE_TEST_CASE_P(HotwordServiceTests, + extension_misc::kHotwordSharedModuleId)); + + TEST_P(HotwordServiceTest, IsHotwordAllowedLocale) { ++#if defined(ENABLE_HOTWORDING) + TestingProfile::Builder profile_builder; + scoped_ptr<TestingProfile> profile = profile_builder.Build(); + +@@ -187,6 +188,7 @@ TEST_P(HotwordServiceTest, IsHotwordAllowedLocale) { + Profile* otr_profile = profile->GetOffTheRecordProfile(); + SetApplicationLocale(otr_profile, "en"); + EXPECT_FALSE(HotwordServiceFactory::IsHotwordAllowed(otr_profile)); ++#endif // defined(ENABLE_HOTWORDING) + } + + TEST_P(HotwordServiceTest, ShouldReinstallExtension) { +@@ -243,6 +245,7 @@ TEST_P(HotwordServiceTest, PreviousLanguageSetOnInstall) { + } + + TEST_P(HotwordServiceTest, UninstallReinstallTriggeredCorrectly) { ++#if defined(ENABLE_HOTWORDING) + InitializeEmptyExtensionService(); + service_->Init(); + +@@ -313,6 +316,7 @@ TEST_P(HotwordServiceTest, UninstallReinstallTriggeredCorrectly) { + EXPECT_TRUE(HotwordServiceFactory::IsHotwordAllowed(profile())); + EXPECT_FALSE(hotword_service->MaybeReinstallHotwordExtension()); + EXPECT_EQ(1, hotword_service->uninstall_count()); // no change ++#endif // defined(ENABLE_HOTWORDING) + } + + TEST_P(HotwordServiceTest, DisableAlwaysOnOnLanguageChange) { +Index: chrome/chrome_browser.gypi +diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi +index 4070c8c38867d2394d3a2a60b1cd17361ccea1c3..b589e9a52e0ca183da7bee5a644c0de8f61a0d89 100644 +--- a/chrome/chrome_browser.gypi ++++ b/chrome/chrome_browser.gypi +@@ -3573,6 +3573,9 @@ + ['enable_session_service==1', { + 'sources': [ '<@(chrome_browser_session_service_sources)' ], + }], ++ ['enable_hotwording==1', { ++ 'defines': [ 'ENABLE_HOTWORDING' ], ++ }], + ['OS!="android" and OS!="ios" and chromeos==0', { + 'sources': [ '<@(chrome_browser_desktop_sources)' ], + }],