diff options
author | gdk@chromium.org <gdk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-07 23:58:15 +0000 |
---|---|---|
committer | gdk@chromium.org <gdk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-07 23:58:15 +0000 |
commit | c9bd90f81516f5d051800d0988da73e6274eb574 (patch) | |
tree | 4037363b29435134d0a9f4dd27e6078f7b1e41ad /chrome/browser/extensions/api/web_request | |
parent | e1a7cefe77402ad5d05be9e907d177f231afae7f (diff) | |
download | chromium_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.cc | 7 | ||||
-rw-r--r-- | chrome/browser/extensions/api/web_request/web_request_api_unittest.cc | 13 |
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, |