| Index: chrome/browser/extensions/extension_content_settings_helpers.cc
|
| diff --git a/chrome/browser/extensions/extension_content_settings_helpers.cc b/chrome/browser/extensions/extension_content_settings_helpers.cc
|
| deleted file mode 100644
|
| index 87876d4395582cab847ef84d3daf6d58af6743b1..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/extensions/extension_content_settings_helpers.cc
|
| +++ /dev/null
|
| @@ -1,147 +0,0 @@
|
| -// Copyright (c) 2011 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/browser/extensions/extension_content_settings_helpers.h"
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/logging.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "chrome/common/extensions/url_pattern.h"
|
| -#include "content/public/common/url_constants.h"
|
| -
|
| -namespace {
|
| -
|
| -const char kNoPathWildcardsError[] =
|
| - "Path wildcards in file URL patterns are not allowed.";
|
| -const char kNoPathsError[] = "Specific paths are not allowed.";
|
| -const char kInvalidPatternError[] = "The pattern \"*\" is invalid.";
|
| -
|
| -const char* const kContentSettingsTypeNames[] = {
|
| - "cookies",
|
| - "images",
|
| - "javascript",
|
| - "plugins",
|
| - "popups",
|
| - "location",
|
| - "notifications",
|
| -};
|
| -COMPILE_ASSERT(arraysize(kContentSettingsTypeNames) <=
|
| - CONTENT_SETTINGS_NUM_TYPES,
|
| - content_settings_type_names_size_invalid);
|
| -
|
| -const char* const kContentSettingNames[] = {
|
| - "default",
|
| - "allow",
|
| - "block",
|
| - "ask",
|
| - "session_only",
|
| -};
|
| -COMPILE_ASSERT(arraysize(kContentSettingNames) <=
|
| - CONTENT_SETTING_NUM_SETTINGS,
|
| - content_setting_names_size_invalid);
|
| -
|
| -// TODO(bauerb): Move this someplace where it can be reused.
|
| -std::string GetDefaultPort(const std::string& scheme) {
|
| - if (scheme == chrome::kHttpScheme)
|
| - return "80";
|
| - if (scheme == chrome::kHttpsScheme)
|
| - return "443";
|
| - NOTREACHED();
|
| - return "";
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -namespace extension_content_settings_helpers {
|
| -
|
| -ContentSettingsPattern ParseExtensionPattern(const std::string& pattern_str,
|
| - std::string* error) {
|
| - const int kAllowedSchemes =
|
| - URLPattern::SCHEME_HTTP | URLPattern::SCHEME_HTTPS |
|
| - URLPattern::SCHEME_FILE;
|
| - URLPattern url_pattern(kAllowedSchemes);
|
| - URLPattern::ParseResult result = url_pattern.Parse(pattern_str);
|
| - if (result != URLPattern::PARSE_SUCCESS) {
|
| - *error = URLPattern::GetParseResultString(result);
|
| - return ContentSettingsPattern();
|
| - } else {
|
| - scoped_ptr<ContentSettingsPattern::BuilderInterface> builder(
|
| - ContentSettingsPattern::CreateBuilder(false));
|
| - builder->WithHost(url_pattern.host());
|
| - if (url_pattern.match_subdomains())
|
| - builder->WithDomainWildcard();
|
| -
|
| - std::string scheme = url_pattern.scheme();
|
| - if (scheme == "*")
|
| - builder->WithSchemeWildcard();
|
| - else
|
| - builder->WithScheme(scheme);
|
| -
|
| - std::string port = url_pattern.port();
|
| - if (port.empty() && scheme != "file") {
|
| - if (scheme == "*")
|
| - port = "*";
|
| - else
|
| - port = GetDefaultPort(scheme);
|
| - }
|
| - if (port == "*")
|
| - builder->WithPortWildcard();
|
| - else
|
| - builder->WithPort(port);
|
| -
|
| - std::string path = url_pattern.path();
|
| - if (scheme == "file") {
|
| - // For file URLs we allow only exact path matches.
|
| - if (path.find_first_of("*?") != std::string::npos) {
|
| - *error = kNoPathWildcardsError;
|
| - return ContentSettingsPattern();
|
| - } else {
|
| - builder->WithPath(path);
|
| - }
|
| - } else if (path != "/*") {
|
| - // For other URLs we allow only paths which match everything.
|
| - *error = kNoPathsError;
|
| - return ContentSettingsPattern();
|
| - }
|
| -
|
| - ContentSettingsPattern pattern = builder->Build();
|
| - if (!pattern.IsValid())
|
| - *error = kInvalidPatternError;
|
| - return pattern;
|
| - }
|
| -}
|
| -
|
| -ContentSettingsType StringToContentSettingsType(
|
| - const std::string& content_type) {
|
| - for (size_t type = 0; type < arraysize(kContentSettingsTypeNames); ++type) {
|
| - if (content_type == kContentSettingsTypeNames[type])
|
| - return static_cast<ContentSettingsType>(type);
|
| - }
|
| - return CONTENT_SETTINGS_TYPE_DEFAULT;
|
| -}
|
| -
|
| -const char* ContentSettingsTypeToString(ContentSettingsType type) {
|
| - size_t index = static_cast<size_t>(type);
|
| - DCHECK_LT(index, arraysize(kContentSettingsTypeNames));
|
| - return kContentSettingsTypeNames[index];
|
| -}
|
| -
|
| -bool StringToContentSetting(const std::string& setting_str,
|
| - ContentSetting* setting) {
|
| - for (size_t type = 0; type < arraysize(kContentSettingNames); ++type) {
|
| - if (setting_str == kContentSettingNames[type]) {
|
| - *setting = static_cast<ContentSetting>(type);
|
| - return true;
|
| - }
|
| - }
|
| - return false;
|
| -}
|
| -
|
| -const char* ContentSettingToString(ContentSetting setting) {
|
| - size_t index = static_cast<size_t>(setting);
|
| - DCHECK_LT(index, arraysize(kContentSettingNames));
|
| - return kContentSettingNames[index];
|
| -}
|
| -
|
| -} // namespace extension_content_settings_helpers
|
|
|