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

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

Issue 6549015: Extension half of the proxy error event (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/chrome/common/extensions/docs
Patch Set: Created 9 years, 10 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
index 8f40ac4642619219ed5bf52b3a8a8a5317cf9418..5416af3ded1410a9978b275352305ac5570cbf29 100644
--- a/chrome/browser/extensions/extension_proxy_api.cc
+++ b/chrome/browser/extensions/extension_proxy_api.cc
@@ -5,15 +5,18 @@
#include "chrome/browser/extensions/extension_proxy_api.h"
#include "base/base64.h"
+#include "base/json/json_writer.h"
#include "base/string_util.h"
#include "base/string_tokenizer.h"
#include "base/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/prefs/proxy_config_dictionary.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/extensions/extension_io_event_router.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/common/extensions/extension_error_utils.h"
#include "chrome/common/pref_names.h"
+#include "net/base/net_errors.h"
#include "net/proxy/proxy_config.h"
namespace {
@@ -57,6 +60,12 @@ const char kProxyCfgRulePort[] = "port";
const char kProxyCfgBypassList[] = "bypassList";
const char kProxyCfgScheme[] = "scheme";
+const char kProxyEventFatal[] = "fatal";
+const char kProxyEventError[] = "error";
+const char kProxyEventDetails[] = "details";
+const char kProxyEventOnProxyError[] = "experimental.proxy.onProxyError";
+
+
const char kPACDataUrlPrefix[] =
"data:application/x-ns-proxy-autoconfig;base64,";
@@ -101,6 +110,33 @@ bool CreatePACScriptFromDataURL(
} // namespace
+// static
+ExtensionProxyEventRouter* ExtensionProxyEventRouter::GetInstance() {
+ return Singleton<ExtensionProxyEventRouter>::get();
+}
+
+ExtensionProxyEventRouter::ExtensionProxyEventRouter() {
+}
+
+ExtensionProxyEventRouter::~ExtensionProxyEventRouter() {
+}
+
+void ExtensionProxyEventRouter::OnProxyError(
+ const ExtensionIOEventRouter* event_router,
+ int error_code) {
+ ListValue args;
+ DictionaryValue* dict = new DictionaryValue();
+ dict->SetBoolean(kProxyEventFatal, true);
+ dict->SetString(kProxyEventError, net::ErrorToString(error_code));
+ dict->SetString(kProxyEventDetails, "");
+ args.Append(dict);
+
+ std::string json_args;
+ base::JSONWriter::Write(&args, false, &json_args);
+ event_router->DispatchEventToRenderers(
+ kProxyEventOnProxyError, json_args, GURL());
+}
+
bool UseCustomProxySettingsFunction::GetProxyServer(
const DictionaryValue* dict,
net::ProxyServer::Scheme default_scheme,

Powered by Google App Engine
This is Rietveld 408576698