Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1656)

Unified Diff: chrome/browser/extensions/extension_proxy_api.cc

Issue 9690006: Move Proxy Settings API from chrome/browser/extensions to chrome/browser/eextensions/api/proxy (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();
-}
« no previous file with comments | « chrome/browser/extensions/extension_proxy_api.h ('k') | chrome/browser/extensions/extension_proxy_api_constants.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698