diff options
Diffstat (limited to 'chrome_frame/utils.cc')
-rw-r--r-- | chrome_frame/utils.cc | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/chrome_frame/utils.cc b/chrome_frame/utils.cc index 1edbee9..b97e461 100644 --- a/chrome_frame/utils.cc +++ b/chrome_frame/utils.cc @@ -47,6 +47,10 @@ const wchar_t kDevChannelName[] = L"-dev"; const wchar_t kChromeAttachExternalTabPrefix[] = L"attach_external_tab"; +// Indicates that we are running in a test environment, where execptions, etc +// are handled by the chrome test crash server. +const wchar_t kChromeFrameHeadlessMode[] = L"ChromeFrameHeadlessMode"; + HRESULT UtilRegisterTypeLib(HINSTANCE tlb_instance, LPCOLESTR index, bool for_current_user_only) { @@ -546,6 +550,31 @@ bool GetConfigBool(bool default_value, const wchar_t* value_name) { return (value != FALSE); } +bool SetConfigInt(const wchar_t* value_name, int value) { + RegKey config_key; + if (config_key.Open(HKEY_CURRENT_USER, kChromeFrameConfigKey, + KEY_SET_VALUE)) { + if (config_key.WriteValue(value_name, value)) { + return true; + } + } + + return false; +} + +bool SetConfigBool(const wchar_t* value_name, bool value) { + return SetConfigInt(value_name, value); +} + +bool DeleteConfigValue(const wchar_t* value_name) { + RegKey config_key; + if (config_key.Open(HKEY_CURRENT_USER, kChromeFrameConfigKey, + KEY_WRITE)) { + return config_key.DeleteValue(value_name); + } + return false; +} + bool IsOptInUrl(const wchar_t* url) { RegKey config_key; if (!config_key.Open(HKEY_CURRENT_USER, kChromeFrameConfigKey, KEY_READ)) @@ -667,3 +696,9 @@ bool IsSubFrameRequest(IUnknown* service_provider) { return is_non_top_level_request; } + +bool IsHeadlessMode() { + bool headless = GetConfigBool(false, kChromeFrameHeadlessMode); + return headless; +} + |