summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/api/web_request
diff options
context:
space:
mode:
authorgdk@chromium.org <gdk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-07 23:58:15 +0000
committergdk@chromium.org <gdk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-07 23:58:15 +0000
commitc9bd90f81516f5d051800d0988da73e6274eb574 (patch)
tree4037363b29435134d0a9f4dd27e6078f7b1e41ad /chrome/browser/extensions/api/web_request
parente1a7cefe77402ad5d05be9e907d177f231afae7f (diff)
downloadchromium_src-c9bd90f81516f5d051800d0988da73e6274eb574.zip
chromium_src-c9bd90f81516f5d051800d0988da73e6274eb574.tar.gz
chromium_src-c9bd90f81516f5d051800d0988da73e6274eb574.tar.bz2
Refactor extension event distribution to use Values instead of JSON strings.
Also renames Event.dispatchJSON to Event.dispatch and removes all JSON serialization surrounding invocations of DispatchEvent variants. BUG=136045 TEST=none Review URL: https://chromiumcodereview.appspot.com/10694085 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150460 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/api/web_request')
-rw-r--r--chrome/browser/extensions/api/web_request/web_request_api.cc7
-rw-r--r--chrome/browser/extensions/api/web_request/web_request_api_unittest.cc13
2 files changed, 5 insertions, 15 deletions
diff --git a/chrome/browser/extensions/api/web_request/web_request_api.cc b/chrome/browser/extensions/api/web_request/web_request_api.cc
index 2d8d8ad..e8b5d91 100644
--- a/chrome/browser/extensions/api/web_request/web_request_api.cc
+++ b/chrome/browser/extensions/api/web_request/web_request_api.cc
@@ -917,8 +917,6 @@ bool ExtensionWebRequestEventRouter::DispatchEvent(
net::URLRequest* request,
const std::vector<const EventListener*>& listeners,
const ListValue& args) {
- std::string json_args;
-
// TODO(mpcomplete): Consider consolidating common (extension_id,json_args)
// pairs into a single message sent to a list of sub_event_names.
int num_handlers_blocking = 0;
@@ -933,11 +931,10 @@ bool ExtensionWebRequestEventRouter::DispatchEvent(
if (!((*it)->extra_info_spec & ExtraInfoSpec::RESPONSE_HEADERS))
dict->Remove(keys::kResponseHeadersKey, NULL);
- base::JSONWriter::Write(args_filtered.get(), &json_args);
-
extensions::EventRouter::DispatchEvent(
(*it)->ipc_sender.get(), (*it)->extension_id, (*it)->sub_event_name,
- json_args, GURL(), extensions::EventRouter::USER_GESTURE_UNKNOWN,
+ args_filtered.Pass(), GURL(),
+ extensions::EventRouter::USER_GESTURE_UNKNOWN,
extensions::EventFilteringInfo());
if ((*it)->extra_info_spec &
(ExtraInfoSpec::BLOCKING | ExtraInfoSpec::ASYNC_BLOCKING)) {
diff --git a/chrome/browser/extensions/api/web_request/web_request_api_unittest.cc b/chrome/browser/extensions/api/web_request/web_request_api_unittest.cc
index 3976343..e330fe0 100644
--- a/chrome/browser/extensions/api/web_request/web_request_api_unittest.cc
+++ b/chrome/browser/extensions/api/web_request/web_request_api_unittest.cc
@@ -587,18 +587,11 @@ TEST_P(ExtensionWebRequestHeaderModificationTest, TestModifications) {
continue;
}
- std::string event_arg_string;
- ASSERT_TRUE(args.GetString(1, &event_arg_string));
-
- scoped_ptr<Value> event_arg_value(
- JSONStringValueSerializer(event_arg_string).Deserialize(NULL, NULL));
- ASSERT_TRUE(event_arg_value.get() &&
- event_arg_value->IsType(Value::TYPE_LIST));
+ ListValue* event_arg = NULL;
+ ASSERT_TRUE(args.GetList(1, &event_arg));
DictionaryValue* event_arg_dict = NULL;
- ASSERT_TRUE(
- static_cast<ListValue*>(event_arg_value.get())->GetDictionary(
- 0, &event_arg_dict));
+ ASSERT_TRUE(event_arg->GetDictionary(0, &event_arg_dict));
ListValue* request_headers = NULL;
ASSERT_TRUE(event_arg_dict->GetList(keys::kRequestHeadersKey,