Index: chrome/browser/extensions/extension_proxy_api.cc |
diff --git a/chrome/browser/extensions/extension_proxy_api.cc b/chrome/browser/extensions/extension_proxy_api.cc |
deleted file mode 100644 |
index 2dedbd8ef747bc70634b2a7e6c3a2dc51722c800..0000000000000000000000000000000000000000 |
--- a/chrome/browser/extensions/extension_proxy_api.cc |
+++ /dev/null |
@@ -1,184 +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. |
- |
-// Implementation of the Chrome Extensions Proxy Settings API. |
- |
-#include "chrome/browser/extensions/extension_proxy_api.h" |
- |
-#include "base/json/json_writer.h" |
-#include "base/stringprintf.h" |
-#include "base/utf_string_conversions.h" |
-#include "base/values.h" |
-#include "chrome/browser/extensions/extension_event_router_forwarder.h" |
-#include "chrome/browser/extensions/extension_proxy_api_constants.h" |
-#include "chrome/browser/extensions/extension_proxy_api_helpers.h" |
-#include "chrome/browser/extensions/extension_service.h" |
-#include "chrome/browser/prefs/proxy_config_dictionary.h" |
-#include "net/base/net_errors.h" |
- |
-namespace helpers = extension_proxy_api_helpers; |
-namespace keys = extension_proxy_api_constants; |
- |
-// static |
-ExtensionProxyEventRouter* ExtensionProxyEventRouter::GetInstance() { |
- return Singleton<ExtensionProxyEventRouter>::get(); |
-} |
- |
-ExtensionProxyEventRouter::ExtensionProxyEventRouter() { |
-} |
- |
-ExtensionProxyEventRouter::~ExtensionProxyEventRouter() { |
-} |
- |
-void ExtensionProxyEventRouter::OnProxyError( |
- ExtensionEventRouterForwarder* event_router, |
- void* profile, |
- int error_code) { |
- ListValue args; |
- DictionaryValue* dict = new DictionaryValue(); |
- dict->SetBoolean(keys::kProxyEventFatal, true); |
- dict->SetString(keys::kProxyEventError, net::ErrorToString(error_code)); |
- dict->SetString(keys::kProxyEventDetails, ""); |
- args.Append(dict); |
- |
- std::string json_args; |
- base::JSONWriter::Write(&args, false, &json_args); |
- |
- if (profile) { |
- event_router->DispatchEventToRenderers( |
- keys::kProxyEventOnProxyError, json_args, profile, true, GURL()); |
- } else { |
- event_router->BroadcastEventToRenderers( |
- keys::kProxyEventOnProxyError, json_args, GURL()); |
- } |
-} |
- |
-void ExtensionProxyEventRouter::OnPACScriptError( |
- ExtensionEventRouterForwarder* event_router, |
- void* profile, |
- int line_number, |
- const string16& error) { |
- ListValue args; |
- DictionaryValue* dict = new DictionaryValue(); |
- dict->SetBoolean(keys::kProxyEventFatal, false); |
- dict->SetString(keys::kProxyEventError, |
- net::ErrorToString(net::ERR_PAC_SCRIPT_FAILED)); |
- std::string error_msg; |
- if (line_number != -1) { |
- base::SStringPrintf( |
- &error_msg, "line: %d: %s", line_number, UTF16ToUTF8(error).c_str()); |
- } else { |
- error_msg = UTF16ToUTF8(error); |
- } |
- dict->SetString(keys::kProxyEventDetails, error_msg); |
- args.Append(dict); |
- |
- std::string json_args; |
- base::JSONWriter::Write(&args, false, &json_args); |
- |
- if (profile) { |
- event_router->DispatchEventToRenderers( |
- keys::kProxyEventOnProxyError, json_args, profile, true, GURL()); |
- } else { |
- event_router->BroadcastEventToRenderers( |
- keys::kProxyEventOnProxyError, json_args, GURL()); |
- } |
-} |
- |
-ProxyPrefTransformer::ProxyPrefTransformer() { |
-} |
- |
-ProxyPrefTransformer::~ProxyPrefTransformer() { |
-} |
- |
-Value* ProxyPrefTransformer::ExtensionToBrowserPref(const Value* extension_pref, |
- std::string* error, |
- bool* bad_message) { |
- // When ExtensionToBrowserPref is called, the format of |extension_pref| |
- // has been verified already by the extension API to match the schema |
- // defined in the extension API JSON. |
- CHECK(extension_pref->IsType(Value::TYPE_DICTIONARY)); |
- const DictionaryValue* config = |
- static_cast<const DictionaryValue*>(extension_pref); |
- |
- // Extract the various pieces of information passed to |
- // chrome.proxy.settings.set(). Several of these strings will |
- // remain blank no respective values have been passed to set(). |
- // If a values has been passed to set but could not be parsed, we bail |
- // out and return NULL. |
- ProxyPrefs::ProxyMode mode_enum; |
- bool pac_mandatory; |
- std::string pac_url; |
- std::string pac_data; |
- std::string proxy_rules_string; |
- std::string bypass_list; |
- if (!helpers::GetProxyModeFromExtensionPref( |
- config, &mode_enum, error, bad_message) || |
- !helpers::GetPacMandatoryFromExtensionPref( |
- config, &pac_mandatory, error, bad_message) || |
- !helpers::GetPacUrlFromExtensionPref( |
- config, &pac_url, error, bad_message) || |
- !helpers::GetPacDataFromExtensionPref( |
- config, &pac_data, error, bad_message) || |
- !helpers::GetProxyRulesStringFromExtensionPref( |
- config, &proxy_rules_string, error, bad_message) || |
- !helpers::GetBypassListFromExtensionPref( |
- config, &bypass_list, error, bad_message)) { |
- return NULL; |
- } |
- |
- return helpers::CreateProxyConfigDict( |
- mode_enum, pac_mandatory, pac_url, pac_data, proxy_rules_string, |
- bypass_list, error); |
-} |
- |
-Value* ProxyPrefTransformer::BrowserToExtensionPref(const Value* browser_pref) { |
- CHECK(browser_pref->IsType(Value::TYPE_DICTIONARY)); |
- |
- // This is a dictionary wrapper that exposes the proxy configuration stored in |
- // the browser preferences. |
- ProxyConfigDictionary config( |
- static_cast<const DictionaryValue*>(browser_pref)); |
- |
- ProxyPrefs::ProxyMode mode; |
- if (!config.GetMode(&mode)) { |
- LOG(ERROR) << "Cannot determine proxy mode."; |
- return NULL; |
- } |
- |
- // Build a new ProxyConfig instance as defined in the extension API. |
- scoped_ptr<DictionaryValue> extension_pref(new DictionaryValue); |
- |
- extension_pref->SetString(keys::kProxyConfigMode, |
- ProxyPrefs::ProxyModeToString(mode)); |
- |
- switch (mode) { |
- case ProxyPrefs::MODE_DIRECT: |
- case ProxyPrefs::MODE_AUTO_DETECT: |
- case ProxyPrefs::MODE_SYSTEM: |
- // These modes have no further parameters. |
- break; |
- case ProxyPrefs::MODE_PAC_SCRIPT: { |
- // A PAC URL either point to a PAC script or contain a base64 encoded |
- // PAC script. In either case we build a PacScript dictionary as defined |
- // in the extension API. |
- DictionaryValue* pac_dict = helpers::CreatePacScriptDict(config); |
- if (!pac_dict) |
- return NULL; |
- extension_pref->Set(keys::kProxyConfigPacScript, pac_dict); |
- break; |
- } |
- case ProxyPrefs::MODE_FIXED_SERVERS: { |
- // Build ProxyRules dictionary according to the extension API. |
- DictionaryValue* proxy_rules_dict = helpers::CreateProxyRulesDict(config); |
- if (!proxy_rules_dict) |
- return NULL; |
- extension_pref->Set(keys::kProxyConfigRules, proxy_rules_dict); |
- break; |
- } |
- case ProxyPrefs::kModeCount: |
- NOTREACHED(); |
- } |
- return extension_pref.release(); |
-} |