| Index: chrome/browser/extensions/api/web_navigation/web_navigation_api_helpers.cc
|
| diff --git a/chrome/browser/extensions/api/web_navigation/web_navigation_api_helpers.cc b/chrome/browser/extensions/api/web_navigation/web_navigation_api_helpers.cc
|
| index 0e625ba98dec761691edfe5315ad18dbe0560410..2b6634667977c69c3d867b28bad6b2d879e77934 100644
|
| --- a/chrome/browser/extensions/api/web_navigation/web_navigation_api_helpers.cc
|
| +++ b/chrome/browser/extensions/api/web_navigation/web_navigation_api_helpers.cc
|
| @@ -36,18 +36,15 @@ double MilliSecondsFromTime(const base::Time& time) {
|
| // Dispatches events to the extension message service.
|
| void DispatchEvent(content::BrowserContext* browser_context,
|
| const char* event_name,
|
| - const ListValue& args,
|
| + scoped_ptr<ListValue> args,
|
| const GURL& url) {
|
| - std::string json_args;
|
| - base::JSONWriter::Write(&args, &json_args);
|
| -
|
| EventFilteringInfo info;
|
| info.SetURL(url);
|
|
|
| Profile* profile = Profile::FromBrowserContext(browser_context);
|
| if (profile && profile->GetExtensionEventRouter()) {
|
| profile->GetExtensionEventRouter()->DispatchEventToRenderers(
|
| - event_name, json_args, profile, GURL(), info);
|
| + event_name, args.Pass(), profile, GURL(), info);
|
| }
|
| }
|
|
|
| @@ -63,18 +60,18 @@ void DispatchOnBeforeNavigate(content::WebContents* web_contents,
|
| int64 frame_id,
|
| bool is_main_frame,
|
| const GURL& validated_url) {
|
| - ListValue args;
|
| + scoped_ptr<ListValue> args(new ListValue());
|
| DictionaryValue* dict = new DictionaryValue();
|
| dict->SetInteger(keys::kTabIdKey, ExtensionTabUtil::GetTabId(web_contents));
|
| dict->SetString(keys::kUrlKey, validated_url.spec());
|
| dict->SetInteger(keys::kProcessIdKey, render_process_id);
|
| dict->SetInteger(keys::kFrameIdKey, GetFrameId(is_main_frame, frame_id));
|
| dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
|
| - args.Append(dict);
|
| + args->Append(dict);
|
|
|
| DispatchEvent(web_contents->GetBrowserContext(),
|
| keys::kOnBeforeNavigate,
|
| - args,
|
| + args.Pass(),
|
| validated_url);
|
| }
|
|
|
| @@ -86,7 +83,7 @@ void DispatchOnCommitted(const char* event_name,
|
| bool is_main_frame,
|
| const GURL& url,
|
| content::PageTransition transition_type) {
|
| - ListValue args;
|
| + scoped_ptr<ListValue> args(new ListValue());
|
| DictionaryValue* dict = new DictionaryValue();
|
| dict->SetInteger(keys::kTabIdKey, ExtensionTabUtil::GetTabId(web_contents));
|
| dict->SetString(keys::kUrlKey, url.spec());
|
| @@ -107,9 +104,10 @@ void DispatchOnCommitted(const char* event_name,
|
| qualifiers->Append(Value::CreateStringValue("from_address_bar"));
|
| dict->Set(keys::kTransitionQualifiersKey, qualifiers);
|
| dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
|
| - args.Append(dict);
|
| + args->Append(dict);
|
|
|
| - DispatchEvent(web_contents->GetBrowserContext(), event_name, args, url);
|
| + DispatchEvent(web_contents->GetBrowserContext(), event_name, args.Pass(),
|
| + url);
|
| }
|
|
|
| // Constructs and dispatches an onDOMContentLoaded event.
|
| @@ -117,7 +115,7 @@ void DispatchOnDOMContentLoaded(content::WebContents* web_contents,
|
| const GURL& url,
|
| bool is_main_frame,
|
| int64 frame_id) {
|
| - ListValue args;
|
| + scoped_ptr<ListValue> args(new ListValue());
|
| DictionaryValue* dict = new DictionaryValue();
|
| dict->SetInteger(keys::kTabIdKey,
|
| ExtensionTabUtil::GetTabId(web_contents));
|
| @@ -126,11 +124,11 @@ void DispatchOnDOMContentLoaded(content::WebContents* web_contents,
|
| web_contents->GetRenderViewHost()->GetProcess()->GetID());
|
| dict->SetInteger(keys::kFrameIdKey, GetFrameId(is_main_frame, frame_id));
|
| dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
|
| - args.Append(dict);
|
| + args->Append(dict);
|
|
|
| DispatchEvent(web_contents->GetBrowserContext(),
|
| keys::kOnDOMContentLoaded,
|
| - args,
|
| + args.Pass(),
|
| url);
|
| }
|
|
|
| @@ -139,7 +137,7 @@ void DispatchOnCompleted(content::WebContents* web_contents,
|
| const GURL& url,
|
| bool is_main_frame,
|
| int64 frame_id) {
|
| - ListValue args;
|
| + scoped_ptr<ListValue> args(new ListValue());
|
| DictionaryValue* dict = new DictionaryValue();
|
| dict->SetInteger(keys::kTabIdKey,
|
| ExtensionTabUtil::GetTabId(web_contents));
|
| @@ -148,10 +146,10 @@ void DispatchOnCompleted(content::WebContents* web_contents,
|
| web_contents->GetRenderViewHost()->GetProcess()->GetID());
|
| dict->SetInteger(keys::kFrameIdKey, GetFrameId(is_main_frame, frame_id));
|
| dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
|
| - args.Append(dict);
|
| + args->Append(dict);
|
|
|
| - DispatchEvent(web_contents->GetBrowserContext(), keys::kOnCompleted, args,
|
| - url);
|
| + DispatchEvent(web_contents->GetBrowserContext(), keys::kOnCompleted,
|
| + args.Pass(), url);
|
| }
|
|
|
| // Constructs and dispatches an onCreatedNavigationTarget event.
|
| @@ -169,7 +167,7 @@ void DispatchOnCreatedNavigationTarget(
|
| Profile::FromBrowserContext(target_web_contents->GetBrowserContext()),
|
| false, NULL, NULL, NULL, NULL));
|
|
|
| - ListValue args;
|
| + scoped_ptr<ListValue> args(new ListValue());
|
| DictionaryValue* dict = new DictionaryValue();
|
| dict->SetInteger(keys::kSourceTabIdKey,
|
| ExtensionTabUtil::GetTabId(web_contents));
|
| @@ -181,9 +179,9 @@ void DispatchOnCreatedNavigationTarget(
|
| dict->SetInteger(keys::kTabIdKey,
|
| ExtensionTabUtil::GetTabId(target_web_contents));
|
| dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
|
| - args.Append(dict);
|
| + args->Append(dict);
|
|
|
| - DispatchEvent(browser_context, keys::kOnCreatedNavigationTarget, args,
|
| + DispatchEvent(browser_context, keys::kOnCreatedNavigationTarget, args.Pass(),
|
| target_url);
|
| }
|
|
|
| @@ -194,7 +192,7 @@ void DispatchOnErrorOccurred(content::WebContents* web_contents,
|
| int64 frame_id,
|
| bool is_main_frame,
|
| int error_code) {
|
| - ListValue args;
|
| + scoped_ptr<ListValue> args(new ListValue());
|
| DictionaryValue* dict = new DictionaryValue();
|
| dict->SetInteger(keys::kTabIdKey, ExtensionTabUtil::GetTabId(web_contents));
|
| dict->SetString(keys::kUrlKey, url.spec());
|
| @@ -202,10 +200,10 @@ void DispatchOnErrorOccurred(content::WebContents* web_contents,
|
| dict->SetInteger(keys::kFrameIdKey, GetFrameId(is_main_frame, frame_id));
|
| dict->SetString(keys::kErrorKey, net::ErrorToString(error_code));
|
| dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
|
| - args.Append(dict);
|
| + args->Append(dict);
|
|
|
| DispatchEvent(web_contents->GetBrowserContext(), keys::kOnErrorOccurred,
|
| - args, url);
|
| + args.Pass(), url);
|
| }
|
|
|
| // Constructs and dispatches an onTabReplaced event.
|
| @@ -213,16 +211,16 @@ void DispatchOnTabReplaced(
|
| content::WebContents* old_web_contents,
|
| content::BrowserContext* browser_context,
|
| content::WebContents* new_web_contents) {
|
| - ListValue args;
|
| + scoped_ptr<ListValue> args(new ListValue());
|
| DictionaryValue* dict = new DictionaryValue();
|
| dict->SetInteger(keys::kReplacedTabIdKey,
|
| ExtensionTabUtil::GetTabId(old_web_contents));
|
| dict->SetInteger(keys::kTabIdKey,
|
| ExtensionTabUtil::GetTabId(new_web_contents));
|
| dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
|
| - args.Append(dict);
|
| + args->Append(dict);
|
|
|
| - DispatchEvent(browser_context, keys::kOnTabReplaced, args, GURL());
|
| + DispatchEvent(browser_context, keys::kOnTabReplaced, args.Pass(), GURL());
|
| }
|
|
|
| } // namespace web_navigation_api_helpers
|
|
|