Index: chrome/browser/component_updater/pepper_flash_component_installer.cc |
=================================================================== |
--- chrome/browser/component_updater/pepper_flash_component_installer.cc (revision 112808) |
+++ chrome/browser/component_updater/pepper_flash_component_installer.cc (working copy) |
@@ -21,6 +21,7 @@ |
#include "chrome/browser/component_updater/component_updater_service.h" |
#include "chrome/browser/plugin_prefs.h" |
#include "chrome/common/chrome_paths.h" |
+#include "chrome/installer/util/browser_distribution.h" |
#include "content/browser/plugin_service.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/common/pepper_plugin_info.h" |
@@ -78,12 +79,23 @@ |
// If we don't have a Pepper Flash component, this is the version we claim. |
const char kNullVersion[] = "0.0.0.0"; |
-// True if Pepper Flash should be enabled by default. |
+// True if Pepper Flash should be enabled by default. Aura builds for any OS |
+// and Windows canary have it enabled by default. |
+bool IsPepperFlashEnabledByDefault() { |
#if defined(USE_AURA) |
-const bool kEnablePepperFlash = true; |
+ return true; |
+#elif !defined(OS_WIN) |
+ return false; |
#else |
-const bool kEnablePepperFlash = false; |
+ BrowserDistribution* dist = BrowserDistribution::GetDistribution(); |
+ if (!dist) |
+ return false; |
+ string16 channel; |
+ if (!dist->GetChromeChannel(&channel)) |
+ return false; |
+ return (channel == L"canary"); |
#endif |
+} |
// The base directory on Windows looks like: |
// <profile>\AppData\Local\Google\Chrome\User Data\PepperFlash\. |
@@ -160,14 +172,19 @@ |
return true; |
} |
+// If it is a |fresh_install| we enable or disable it by default in some |
+// configurations. See IsPepperFlashEnabledByDefault() for more information. |
void RegisterPepperFlashWithChrome(const FilePath& path, |
- const Version& version) { |
+ const Version& version, |
+ bool fresh_install) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
content::PepperPluginInfo plugin_info; |
- // Register it as out-of-process and disabled. |
if (!MakePepperFlashPluginInfo(path, version, true, &plugin_info)) |
return; |
- PluginPrefs::EnablePluginGlobally(kEnablePepperFlash, plugin_info.path); |
+ if (fresh_install) { |
+ PluginPrefs::EnablePluginGlobally(IsPepperFlashEnabledByDefault(), |
+ plugin_info.path); |
+ } |
PluginService::GetInstance()->RegisterInternalPlugin( |
plugin_info.ToWebPluginInfo()); |
PluginService::GetInstance()->RefreshPlugins(); |
@@ -222,7 +239,7 @@ |
PathService::Override(chrome::FILE_PEPPER_FLASH_PLUGIN, path); |
BrowserThread::PostTask( |
BrowserThread::UI, FROM_HERE, |
- base::Bind(&RegisterPepperFlashWithChrome, path, version)); |
+ base::Bind(&RegisterPepperFlashWithChrome, path, version, true)); |
return true; |
} |
@@ -311,7 +328,7 @@ |
if (file_util::PathExists(path)) { |
BrowserThread::PostTask( |
BrowserThread::UI, FROM_HERE, |
- base::Bind(&RegisterPepperFlashWithChrome, path, version)); |
+ base::Bind(&RegisterPepperFlashWithChrome, path, version, false)); |
} else { |
version = Version(kNullVersion); |
} |
@@ -325,8 +342,8 @@ |
} // namespace |
void RegisterPepperFlashComponent(ComponentUpdateService* cus) { |
-// #if defined(GOOGLE_CHROME_BUILD) |
+#if defined(GOOGLE_CHROME_BUILD) |
BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, |
base::Bind(&StartPepperFlashUpdateRegistration, cus)); |
-// #endif |
+#endif |
} |