Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / android / chrome_startup_flags.cc
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 for the omnibox.
39   SetCommandLineSwitchASCII(switches::kPrerenderMode,
40                             switches::kPrerenderModeSwitchValueEnabled);
41   SetCommandLineSwitchASCII(switches::kPrerenderFromOmnibox,
42                             switches::kPrerenderFromOmniboxSwitchValueEnabled);
43
44   // Disable syncing favicons on low end devices.
45   if (base::android::SysUtils::IsLowEndDevice())
46     SetCommandLineSwitchASCII(switches::kDisableSyncTypes, "Favicon Images");
47
48   // Enable DOM Distiller on local builds, canary and dev-channel.
49   chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel();
50   if (channel == chrome::VersionInfo::CHANNEL_UNKNOWN ||
51       channel == chrome::VersionInfo::CHANNEL_CANARY ||
52       channel == chrome::VersionInfo::CHANNEL_DEV) {
53     SetCommandLineSwitch(switches::kEnableDomDistiller);
54   }
55 }