Index: chrome_frame/policy_settings.cc |
diff --git a/chrome_frame/policy_settings.cc b/chrome_frame/policy_settings.cc |
deleted file mode 100644 |
index 24032041d54cbba3d34823348c7f6d498d39040f..0000000000000000000000000000000000000000 |
--- a/chrome_frame/policy_settings.cc |
+++ /dev/null |
@@ -1,232 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome_frame/policy_settings.h" |
- |
-#include <algorithm> |
- |
-#include "base/logging.h" |
-#include "base/strings/string_util.h" |
-#include "base/strings/utf_string_conversions.h" |
-#include "base/win/registry.h" |
-#include "chrome_frame/utils.h" |
-#include "policy/policy_constants.h" |
- |
-namespace { |
- |
-// This array specifies the order in which registry keys are tested. Do not |
-// change this unless the decision is made product-wide (i.e., in Chrome's |
-// configuration policy provider). |
-const HKEY kRootKeys[] = { |
- HKEY_LOCAL_MACHINE, |
- HKEY_CURRENT_USER |
-}; |
- |
-} // namespace |
- |
-PolicySettings::RendererForUrl PolicySettings::GetRendererForUrl( |
- const wchar_t* url) { |
- RendererForUrl renderer = default_renderer_; |
- std::vector<std::wstring>::const_iterator it; |
- for (it = renderer_exclusion_list_.begin(); |
- it != renderer_exclusion_list_.end(); ++it) { |
- if (MatchPattern(url, (*it))) { |
- renderer = (renderer == RENDER_IN_HOST) ? |
- RENDER_IN_CHROME_FRAME : RENDER_IN_HOST; |
- break; |
- } |
- } |
- return renderer; |
-} |
- |
-PolicySettings::RendererForUrl PolicySettings::GetRendererForContentType( |
- const wchar_t* content_type) { |
- DCHECK(content_type); |
- RendererForUrl renderer = RENDERER_NOT_SPECIFIED; |
- std::vector<std::wstring>::const_iterator it; |
- for (it = content_type_list_.begin(); |
- it != content_type_list_.end(); ++it) { |
- if (lstrcmpiW(content_type, (*it).c_str()) == 0) { |
- renderer = RENDER_IN_CHROME_FRAME; |
- break; |
- } |
- } |
- return renderer; |
-} |
- |
-const CommandLine& PolicySettings::AdditionalLaunchParameters() const { |
- return additional_launch_parameters_; |
-} |
- |
-// static |
-void PolicySettings::ReadUrlSettings( |
- RendererForUrl* default_renderer, |
- std::vector<std::wstring>* renderer_exclusion_list) { |
- DCHECK(default_renderer); |
- DCHECK(renderer_exclusion_list); |
- |
- *default_renderer = RENDERER_NOT_SPECIFIED; |
- renderer_exclusion_list->clear(); |
- |
- base::win::RegKey config_key; |
- DWORD value = RENDERER_NOT_SPECIFIED; |
- std::wstring settings_value( |
- base::ASCIIToWide(policy::key::kChromeFrameRendererSettings)); |
- for (int i = 0; i < arraysize(kRootKeys); ++i) { |
- if ((config_key.Open(kRootKeys[i], policy::kRegistryChromePolicyKey, |
- KEY_READ) == ERROR_SUCCESS) && |
- (config_key.ReadValueDW(settings_value.c_str(), |
- &value) == ERROR_SUCCESS)) { |
- break; |
- } |
- } |
- |
- DCHECK(value == RENDERER_NOT_SPECIFIED || |
- value == RENDER_IN_HOST || |
- value == RENDER_IN_CHROME_FRAME) |
- << "invalid default renderer setting: " << value; |
- |
- if (value != RENDER_IN_HOST && value != RENDER_IN_CHROME_FRAME) { |
- DVLOG(1) << "default renderer not specified via policy"; |
- } else { |
- *default_renderer = static_cast<RendererForUrl>(value); |
- const char* exclusion_list_name = (*default_renderer == RENDER_IN_HOST) ? |
- policy::key::kRenderInChromeFrameList : |
- policy::key::kRenderInHostList; |
- |
- EnumerateKeyValues(config_key.Handle(), |
- base::ASCIIToWide(exclusion_list_name).c_str(), |
- renderer_exclusion_list); |
- |
- DVLOG(1) << "Default renderer as specified via policy: " |
- << *default_renderer |
- << " exclusion list size: " << renderer_exclusion_list->size(); |
- } |
-} |
- |
-// static |
-void PolicySettings::ReadMetadataCheckSettings( |
- SkipMetadataCheck* skip_metadata_check) { |
- DCHECK(skip_metadata_check); |
- |
- *skip_metadata_check = SKIP_METADATA_CHECK_NOT_SPECIFIED; |
- |
- base::win::RegKey config_key; |
- DWORD value = SKIP_METADATA_CHECK_NOT_SPECIFIED; |
- base::string16 settings_value( |
- base::ASCIIToWide(policy::key::kSkipMetadataCheck)); |
- for (int i = 0; i < arraysize(kRootKeys); ++i) { |
- if ((config_key.Open(kRootKeys[i], policy::kRegistryChromePolicyKey, |
- KEY_READ) == ERROR_SUCCESS) && |
- (config_key.ReadValueDW(settings_value.c_str(), |
- &value) == ERROR_SUCCESS)) { |
- break; |
- } |
- } |
- |
- DCHECK(value == SKIP_METADATA_CHECK_NOT_SPECIFIED || |
- value == SKIP_METADATA_CHECK_NO || |
- value == SKIP_METADATA_CHECK_YES) |
- << "invalid skip metadata check setting: " << value; |
- |
- if (value != SKIP_METADATA_CHECK_NO && value != SKIP_METADATA_CHECK_YES) { |
- DVLOG(1) << "metadata check not specified via policy"; |
- } else { |
- *skip_metadata_check = static_cast<SkipMetadataCheck>(value); |
- DVLOG(1) << "SkipMetadata check as specified via policy: " |
- << *skip_metadata_check; |
- } |
-} |
- |
-// static |
-void PolicySettings::ReadContentTypeSetting( |
- std::vector<std::wstring>* content_type_list) { |
- DCHECK(content_type_list); |
- |
- std::wstring sub_key(policy::kRegistryChromePolicyKey); |
- sub_key += L"\\"; |
- sub_key += base::ASCIIToWide(policy::key::kChromeFrameContentTypes); |
- |
- content_type_list->clear(); |
- for (int i = 0; i < arraysize(kRootKeys) && content_type_list->empty(); |
- ++i) { |
- EnumerateKeyValues(kRootKeys[i], sub_key.c_str(), content_type_list); |
- } |
-} |
- |
-// static |
-void PolicySettings::ReadStringSetting(const char* value_name, |
- std::wstring* value) { |
- DCHECK(value); |
- value->clear(); |
- base::win::RegKey config_key; |
- std::wstring value_name_str(base::ASCIIToWide(value_name)); |
- for (int i = 0; i < arraysize(kRootKeys); ++i) { |
- if ((config_key.Open(kRootKeys[i], policy::kRegistryChromePolicyKey, |
- KEY_READ) == ERROR_SUCCESS) && |
- (config_key.ReadValue(value_name_str.c_str(), |
- value) == ERROR_SUCCESS)) { |
- break; |
- } |
- } |
-} |
- |
-// static |
-void PolicySettings::ReadBoolSetting(const char* value_name, bool* value) { |
- DCHECK(value); |
- base::win::RegKey config_key; |
- base::string16 value_name_str(base::ASCIIToWide(value_name)); |
- DWORD dword_value = 0; |
- for (int i = 0; i < arraysize(kRootKeys); ++i) { |
- if ((config_key.Open(kRootKeys[i], policy::kRegistryChromePolicyKey, |
- KEY_QUERY_VALUE) == ERROR_SUCCESS) && |
- (config_key.ReadValueDW(value_name_str.c_str(), |
- &dword_value) == ERROR_SUCCESS)) { |
- *value = (dword_value != 0); |
- break; |
- } |
- } |
-} |
- |
-void PolicySettings::RefreshFromRegistry() { |
- RendererForUrl default_renderer; |
- SkipMetadataCheck skip_metadata_check; |
- std::vector<std::wstring> renderer_exclusion_list; |
- std::vector<std::wstring> content_type_list; |
- std::wstring application_locale; |
- CommandLine additional_launch_parameters(CommandLine::NO_PROGRAM); |
- std::wstring additional_parameters_str; |
- bool suppress_turndown_prompt = false; |
- |
- // Read the latest settings from the registry |
- ReadUrlSettings(&default_renderer, &renderer_exclusion_list); |
- ReadMetadataCheckSettings(&skip_metadata_check); |
- ReadContentTypeSetting(&content_type_list); |
- ReadStringSetting(policy::key::kApplicationLocaleValue, &application_locale); |
- ReadStringSetting(policy::key::kAdditionalLaunchParameters, |
- &additional_parameters_str); |
- if (!additional_parameters_str.empty()) { |
- additional_parameters_str.insert(0, L"fake.exe "); |
- additional_launch_parameters.ParseFromString(additional_parameters_str); |
- } |
- ReadBoolSetting(policy::key::kSuppressChromeFrameTurndownPrompt, |
- &suppress_turndown_prompt); |
- |
- // Nofail swap in the new values. (Note: this is all that need be protected |
- // under a mutex if/when this becomes thread safe.) |
- using std::swap; |
- |
- swap(default_renderer_, default_renderer); |
- swap(skip_metadata_check_, skip_metadata_check); |
- swap(renderer_exclusion_list_, renderer_exclusion_list); |
- swap(content_type_list_, content_type_list); |
- swap(application_locale_, application_locale); |
- swap(additional_launch_parameters_, additional_launch_parameters); |
- swap(suppress_turndown_prompt_, suppress_turndown_prompt); |
-} |
- |
-// static |
-PolicySettings* PolicySettings::GetInstance() { |
- return Singleton<PolicySettings>::get(); |
-} |