Index: ui/gfx/win/dpi.cc |
diff --git a/ui/gfx/win/dpi.cc b/ui/gfx/win/dpi.cc |
index 798e954eb54760eabbe4922ea36cc277448951ef..f84b88e044024ec1e7a0c409101c10623363421f 100644 |
--- a/ui/gfx/win/dpi.cc |
+++ b/ui/gfx/win/dpi.cc |
@@ -98,6 +98,24 @@ BOOL SetProcessDPIAwareWrapper() { |
set_process_dpi_aware_func(); |
} |
+const wchar_t kRegistryProfilePath[] = L"SOFTWARE\\Google\\Chrome\\Profile"; |
sky
2014/02/20 15:48:43
nit: move constants to top of namespace (right her
girard
2014/02/20 20:20:16
Done.
|
+const wchar_t kHighDPISupportW[] = L"high-dpi-support"; |
+ |
+DWORD ReadRegistryValue(HKEY root, |
+ const wchar_t* base_key, |
+ const wchar_t* value_name, |
+ DWORD default_value) { |
+ base::win::RegKey reg_key(HKEY_CURRENT_USER, |
+ base_key, |
+ KEY_QUERY_VALUE); |
+ DWORD value; |
+ if (reg_key.Valid() && |
+ reg_key.ReadValueDW(value_name, &value) == ERROR_SUCCESS) { |
+ return value; |
+ } |
+ return default_value; |
+} |
+ |
} // namespace |
namespace gfx { |
@@ -138,13 +156,13 @@ float GetDPIScale() { |
} |
bool IsHighDPIEnabled() { |
+ // Flag stored in HKEY_CURRENT_USER\SOFTWARE\\Google\\Chrome\\Profile, |
+ // under the DWORD value high-dpi-support. |
// Default is disabled. |
- if (CommandLine::ForCurrentProcess()->HasSwitch( |
- switches::kHighDPISupport)) { |
- return CommandLine::ForCurrentProcess()->GetSwitchValueASCII( |
- switches::kHighDPISupport).compare("1") == 0; |
- } |
- return false; |
+ static DWORD value = ReadRegistryValue( |
+ HKEY_CURRENT_USER, kRegistryProfilePath, |
+ kHighDPISupportW, FALSE); |
+ return value == 1; |
} |
bool IsInHighDPIMode() { |
@@ -153,10 +171,8 @@ bool IsInHighDPIMode() { |
void EnableHighDPISupport() { |
if (IsHighDPIEnabled() && |
- (base::win::GetVersion() < base::win::VERSION_WIN8_1)) { |
- if (!SetProcessDpiAwarenessWrapper(PROCESS_SYSTEM_DPI_AWARE)) { |
- SetProcessDPIAwareWrapper(); |
- } |
+ !SetProcessDpiAwarenessWrapper(PROCESS_SYSTEM_DPI_AWARE)) { |
+ SetProcessDPIAwareWrapper(); |
} |
} |