Index: chrome/browser/chrome_browser_main_win.cc |
diff --git a/chrome/browser/chrome_browser_main_win.cc b/chrome/browser/chrome_browser_main_win.cc |
index b9ef21059b6c938b3ff2e009f551ec40a85d85fe..16a64525c3436361ae119b913d4ea76e257f8623 100644 |
--- a/chrome/browser/chrome_browser_main_win.cc |
+++ b/chrome/browser/chrome_browser_main_win.cc |
@@ -30,6 +30,7 @@ |
#include "chrome/common/chrome_constants.h" |
#include "chrome/common/chrome_result_codes.h" |
#include "chrome/common/chrome_switches.h" |
+#include "chrome/common/chrome_version_info.h" |
#include "chrome/common/env_vars.h" |
#include "chrome/installer/launcher_support/chrome_launcher_support.h" |
#include "chrome/installer/util/browser_distribution.h" |
@@ -141,11 +142,26 @@ int DoUninstallTasks(bool chrome_still_running) { |
return result; |
} |
+void MaybeEnableHighResolutionTimeEverywhere() { |
+ chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel(); |
+ bool user_enabled = CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kEnableHighResolutionTime); |
+ if (user_enabled || channel == chrome::VersionInfo::CHANNEL_CANARY) { |
+ bool is_enabled = base::TimeTicks::SetNowIsHighResNowIfSupported(); |
+ if (is_enabled && !user_enabled) { |
+ // Ensure that all of the renderers will enable it too. |
+ CommandLine::ForCurrentProcess()->AppendSwitch( |
+ switches::kEnableHighResolutionTime); |
+ } |
+ } |
+} |
+ |
// ChromeBrowserMainPartsWin --------------------------------------------------- |
ChromeBrowserMainPartsWin::ChromeBrowserMainPartsWin( |
const content::MainFunctionParams& parameters) |
: ChromeBrowserMainParts(parameters) { |
+ MaybeEnableHighResolutionTimeEverywhere(); |
if (base::win::IsMetroProcess()) { |
typedef const wchar_t* (*GetMetroSwitches)(void); |
GetMetroSwitches metro_switches_proc = reinterpret_cast<GetMetroSwitches>( |