1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include <jni.h> 6 7 #include "chrome/browser/android/chrome_startup_flags.h" 8 9 #include "base/android/jni_android.h" 10 #include "base/android/jni_string.h" 11 #include "base/android/scoped_java_ref.h" 12 #include "base/android/sys_utils.h" 13 #include "base/command_line.h" 14 #include "base/logging.h" 15 #include "chrome/common/chrome_switches.h" 16 #include "chrome/common/chrome_version_info.h" 17 #include "content/public/common/content_switches.h" 18 #include "media/base/media_switches.h" 19 20 namespace { 21 22 void SetCommandLineSwitch(const std::string& switch_string) { 23 CommandLine* command_line = CommandLine::ForCurrentProcess(); 24 if (!command_line->HasSwitch(switch_string)) 25 command_line->AppendSwitch(switch_string); 26 } 27 28 void SetCommandLineSwitchASCII(const std::string& switch_string, 29 const std::string& value) { 30 CommandLine* command_line = CommandLine::ForCurrentProcess(); 31 if (!command_line->HasSwitch(switch_string)) 32 command_line->AppendSwitchASCII(switch_string, value); 33 } 34 35 } // namespace 36 37 void SetChromeSpecificCommandLineFlags() { 38 // Enable prerender with holdback. 39 SetCommandLineSwitchASCII(switches::kPrerenderMode, 40 switches::kPrerenderModeSwitchValueAuto); 41 42 // Enable prerender for the omnibox. 43 SetCommandLineSwitchASCII(switches::kPrerenderFromOmnibox, 44 switches::kPrerenderFromOmniboxSwitchValueEnabled); 45 46 // Disable syncing favicons on low end devices. 47 if (base::android::SysUtils::IsLowEndDevice()) 48 SetCommandLineSwitchASCII(switches::kDisableSyncTypes, "Favicon Images"); 49 50 // Enable DOM Distiller on local builds, canary and dev-channel. 51 chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel(); 52 if (channel == chrome::VersionInfo::CHANNEL_UNKNOWN || 53 channel == chrome::VersionInfo::CHANNEL_CANARY || 54 channel == chrome::VersionInfo::CHANNEL_DEV) { 55 SetCommandLineSwitch(switches::kEnableDomDistiller); 56 } 57 } 58