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

Side by Side Diff: chrome/browser/extensions/api/web_navigation/web_navigation_api_helpers.cc

Issue 16915006: Convert most of extensions and some other random stuff to using the base namespace for Values. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Implements the Chrome Extensions WebNavigation API. 5 // Implements the Chrome Extensions WebNavigation API.
6 6
7 #include "chrome/browser/extensions/api/web_navigation/web_navigation_api_helper s.h" 7 #include "chrome/browser/extensions/api/web_navigation/web_navigation_api_helper s.h"
8 8
9 #include "base/json/json_writer.h" 9 #include "base/json/json_writer.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 19 matching lines...) Expand all
30 namespace { 30 namespace {
31 31
32 // Returns |time| as milliseconds since the epoch. 32 // Returns |time| as milliseconds since the epoch.
33 double MilliSecondsFromTime(const base::Time& time) { 33 double MilliSecondsFromTime(const base::Time& time) {
34 return 1000 * time.ToDoubleT(); 34 return 1000 * time.ToDoubleT();
35 } 35 }
36 36
37 // Dispatches events to the extension message service. 37 // Dispatches events to the extension message service.
38 void DispatchEvent(content::BrowserContext* browser_context, 38 void DispatchEvent(content::BrowserContext* browser_context,
39 const char* event_name, 39 const char* event_name,
40 scoped_ptr<ListValue> args, 40 scoped_ptr<base::ListValue> args,
41 const GURL& url) { 41 const GURL& url) {
42 EventFilteringInfo info; 42 EventFilteringInfo info;
43 info.SetURL(url); 43 info.SetURL(url);
44 44
45 Profile* profile = Profile::FromBrowserContext(browser_context); 45 Profile* profile = Profile::FromBrowserContext(browser_context);
46 if (profile && extensions::ExtensionSystem::Get(profile)->event_router()) { 46 if (profile && extensions::ExtensionSystem::Get(profile)->event_router()) {
47 scoped_ptr<Event> event(new Event(event_name, args.Pass())); 47 scoped_ptr<Event> event(new Event(event_name, args.Pass()));
48 event->restrict_to_profile = profile; 48 event->restrict_to_profile = profile;
49 event->filter_info = info; 49 event->filter_info = info;
50 ExtensionSystem::Get(profile)->event_router()->BroadcastEvent(event.Pass()); 50 ExtensionSystem::Get(profile)->event_router()->BroadcastEvent(event.Pass());
51 } 51 }
52 } 52 }
53 53
54 } // namespace 54 } // namespace
55 55
56 int GetFrameId(bool is_main_frame, int64 frame_id) { 56 int GetFrameId(bool is_main_frame, int64 frame_id) {
57 return is_main_frame ? 0 : static_cast<int>(frame_id); 57 return is_main_frame ? 0 : static_cast<int>(frame_id);
58 } 58 }
59 59
60 // Constructs and dispatches an onBeforeNavigate event. 60 // Constructs and dispatches an onBeforeNavigate event.
61 void DispatchOnBeforeNavigate(content::WebContents* web_contents, 61 void DispatchOnBeforeNavigate(content::WebContents* web_contents,
62 int render_process_id, 62 int render_process_id,
63 int64 frame_id, 63 int64 frame_id,
64 bool is_main_frame, 64 bool is_main_frame,
65 int64 parent_frame_id, 65 int64 parent_frame_id,
66 bool parent_is_main_frame, 66 bool parent_is_main_frame,
67 const GURL& validated_url) { 67 const GURL& validated_url) {
68 scoped_ptr<ListValue> args(new ListValue()); 68 scoped_ptr<base::ListValue> args(new base::ListValue());
69 DictionaryValue* dict = new DictionaryValue(); 69 base::DictionaryValue* dict = new base::DictionaryValue();
70 dict->SetInteger(keys::kTabIdKey, ExtensionTabUtil::GetTabId(web_contents)); 70 dict->SetInteger(keys::kTabIdKey, ExtensionTabUtil::GetTabId(web_contents));
71 dict->SetString(keys::kUrlKey, validated_url.spec()); 71 dict->SetString(keys::kUrlKey, validated_url.spec());
72 dict->SetInteger(keys::kProcessIdKey, render_process_id); 72 dict->SetInteger(keys::kProcessIdKey, render_process_id);
73 dict->SetInteger(keys::kFrameIdKey, GetFrameId(is_main_frame, frame_id)); 73 dict->SetInteger(keys::kFrameIdKey, GetFrameId(is_main_frame, frame_id));
74 dict->SetInteger(keys::kParentFrameIdKey, 74 dict->SetInteger(keys::kParentFrameIdKey,
75 GetFrameId(parent_is_main_frame, parent_frame_id)); 75 GetFrameId(parent_is_main_frame, parent_frame_id));
76 dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now())); 76 dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
77 args->Append(dict); 77 args->Append(dict);
78 78
79 DispatchEvent(web_contents->GetBrowserContext(), 79 DispatchEvent(web_contents->GetBrowserContext(),
80 keys::kOnBeforeNavigate, 80 keys::kOnBeforeNavigate,
81 args.Pass(), 81 args.Pass(),
82 validated_url); 82 validated_url);
83 } 83 }
84 84
85 // Constructs and dispatches an onCommitted or onReferenceFragmentUpdated 85 // Constructs and dispatches an onCommitted or onReferenceFragmentUpdated
86 // event. 86 // event.
87 void DispatchOnCommitted(const char* event_name, 87 void DispatchOnCommitted(const char* event_name,
88 content::WebContents* web_contents, 88 content::WebContents* web_contents,
89 int64 frame_id, 89 int64 frame_id,
90 bool is_main_frame, 90 bool is_main_frame,
91 const GURL& url, 91 const GURL& url,
92 content::PageTransition transition_type) { 92 content::PageTransition transition_type) {
93 scoped_ptr<ListValue> args(new ListValue()); 93 scoped_ptr<base::ListValue> args(new base::ListValue());
94 DictionaryValue* dict = new DictionaryValue(); 94 base::DictionaryValue* dict = new base::DictionaryValue();
95 dict->SetInteger(keys::kTabIdKey, ExtensionTabUtil::GetTabId(web_contents)); 95 dict->SetInteger(keys::kTabIdKey, ExtensionTabUtil::GetTabId(web_contents));
96 dict->SetString(keys::kUrlKey, url.spec()); 96 dict->SetString(keys::kUrlKey, url.spec());
97 dict->SetInteger(keys::kProcessIdKey, 97 dict->SetInteger(keys::kProcessIdKey,
98 web_contents->GetRenderViewHost()->GetProcess()->GetID()); 98 web_contents->GetRenderViewHost()->GetProcess()->GetID());
99 dict->SetInteger(keys::kFrameIdKey, GetFrameId(is_main_frame, frame_id)); 99 dict->SetInteger(keys::kFrameIdKey, GetFrameId(is_main_frame, frame_id));
100 dict->SetString( 100 dict->SetString(
101 keys::kTransitionTypeKey, 101 keys::kTransitionTypeKey,
102 content::PageTransitionGetCoreTransitionString(transition_type)); 102 content::PageTransitionGetCoreTransitionString(transition_type));
103 ListValue* qualifiers = new ListValue(); 103 base::ListValue* qualifiers = new base::ListValue();
104 if (transition_type & content::PAGE_TRANSITION_CLIENT_REDIRECT) 104 if (transition_type & content::PAGE_TRANSITION_CLIENT_REDIRECT)
105 qualifiers->Append(Value::CreateStringValue("client_redirect")); 105 qualifiers->Append(Value::CreateStringValue("client_redirect"));
106 if (transition_type & content::PAGE_TRANSITION_SERVER_REDIRECT) 106 if (transition_type & content::PAGE_TRANSITION_SERVER_REDIRECT)
107 qualifiers->Append(Value::CreateStringValue("server_redirect")); 107 qualifiers->Append(Value::CreateStringValue("server_redirect"));
108 if (transition_type & content::PAGE_TRANSITION_FORWARD_BACK) 108 if (transition_type & content::PAGE_TRANSITION_FORWARD_BACK)
109 qualifiers->Append(Value::CreateStringValue("forward_back")); 109 qualifiers->Append(Value::CreateStringValue("forward_back"));
110 if (transition_type & content::PAGE_TRANSITION_FROM_ADDRESS_BAR) 110 if (transition_type & content::PAGE_TRANSITION_FROM_ADDRESS_BAR)
111 qualifiers->Append(Value::CreateStringValue("from_address_bar")); 111 qualifiers->Append(Value::CreateStringValue("from_address_bar"));
112 dict->Set(keys::kTransitionQualifiersKey, qualifiers); 112 dict->Set(keys::kTransitionQualifiersKey, qualifiers);
113 dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now())); 113 dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
114 args->Append(dict); 114 args->Append(dict);
115 115
116 DispatchEvent(web_contents->GetBrowserContext(), event_name, args.Pass(), 116 DispatchEvent(web_contents->GetBrowserContext(), event_name, args.Pass(),
117 url); 117 url);
118 } 118 }
119 119
120 // Constructs and dispatches an onDOMContentLoaded event. 120 // Constructs and dispatches an onDOMContentLoaded event.
121 void DispatchOnDOMContentLoaded(content::WebContents* web_contents, 121 void DispatchOnDOMContentLoaded(content::WebContents* web_contents,
122 const GURL& url, 122 const GURL& url,
123 bool is_main_frame, 123 bool is_main_frame,
124 int64 frame_id) { 124 int64 frame_id) {
125 scoped_ptr<ListValue> args(new ListValue()); 125 scoped_ptr<base::ListValue> args(new base::ListValue());
126 DictionaryValue* dict = new DictionaryValue(); 126 base::DictionaryValue* dict = new base::DictionaryValue();
127 dict->SetInteger(keys::kTabIdKey, 127 dict->SetInteger(keys::kTabIdKey,
128 ExtensionTabUtil::GetTabId(web_contents)); 128 ExtensionTabUtil::GetTabId(web_contents));
129 dict->SetString(keys::kUrlKey, url.spec()); 129 dict->SetString(keys::kUrlKey, url.spec());
130 dict->SetInteger(keys::kProcessIdKey, 130 dict->SetInteger(keys::kProcessIdKey,
131 web_contents->GetRenderViewHost()->GetProcess()->GetID()); 131 web_contents->GetRenderViewHost()->GetProcess()->GetID());
132 dict->SetInteger(keys::kFrameIdKey, GetFrameId(is_main_frame, frame_id)); 132 dict->SetInteger(keys::kFrameIdKey, GetFrameId(is_main_frame, frame_id));
133 dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now())); 133 dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
134 args->Append(dict); 134 args->Append(dict);
135 135
136 DispatchEvent(web_contents->GetBrowserContext(), 136 DispatchEvent(web_contents->GetBrowserContext(),
137 keys::kOnDOMContentLoaded, 137 keys::kOnDOMContentLoaded,
138 args.Pass(), 138 args.Pass(),
139 url); 139 url);
140 } 140 }
141 141
142 // Constructs and dispatches an onCompleted event. 142 // Constructs and dispatches an onCompleted event.
143 void DispatchOnCompleted(content::WebContents* web_contents, 143 void DispatchOnCompleted(content::WebContents* web_contents,
144 const GURL& url, 144 const GURL& url,
145 bool is_main_frame, 145 bool is_main_frame,
146 int64 frame_id) { 146 int64 frame_id) {
147 scoped_ptr<ListValue> args(new ListValue()); 147 scoped_ptr<base::ListValue> args(new base::ListValue());
148 DictionaryValue* dict = new DictionaryValue(); 148 base::DictionaryValue* dict = new base::DictionaryValue();
149 dict->SetInteger(keys::kTabIdKey, 149 dict->SetInteger(keys::kTabIdKey,
150 ExtensionTabUtil::GetTabId(web_contents)); 150 ExtensionTabUtil::GetTabId(web_contents));
151 dict->SetString(keys::kUrlKey, url.spec()); 151 dict->SetString(keys::kUrlKey, url.spec());
152 dict->SetInteger(keys::kProcessIdKey, 152 dict->SetInteger(keys::kProcessIdKey,
153 web_contents->GetRenderViewHost()->GetProcess()->GetID()); 153 web_contents->GetRenderViewHost()->GetProcess()->GetID());
154 dict->SetInteger(keys::kFrameIdKey, GetFrameId(is_main_frame, frame_id)); 154 dict->SetInteger(keys::kFrameIdKey, GetFrameId(is_main_frame, frame_id));
155 dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now())); 155 dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
156 args->Append(dict); 156 args->Append(dict);
157 157
158 DispatchEvent(web_contents->GetBrowserContext(), keys::kOnCompleted, 158 DispatchEvent(web_contents->GetBrowserContext(), keys::kOnCompleted,
159 args.Pass(), url); 159 args.Pass(), url);
160 } 160 }
161 161
162 // Constructs and dispatches an onCreatedNavigationTarget event. 162 // Constructs and dispatches an onCreatedNavigationTarget event.
163 void DispatchOnCreatedNavigationTarget( 163 void DispatchOnCreatedNavigationTarget(
164 content::WebContents* web_contents, 164 content::WebContents* web_contents,
165 content::BrowserContext* browser_context, 165 content::BrowserContext* browser_context,
166 int64 source_frame_id, 166 int64 source_frame_id,
167 bool source_frame_is_main_frame, 167 bool source_frame_is_main_frame,
168 content::WebContents* target_web_contents, 168 content::WebContents* target_web_contents,
169 const GURL& target_url) { 169 const GURL& target_url) {
170 // Check that the tab is already inserted into a tab strip model. This code 170 // Check that the tab is already inserted into a tab strip model. This code
171 // path is exercised by ExtensionApiTest.WebNavigationRequestOpenTab. 171 // path is exercised by ExtensionApiTest.WebNavigationRequestOpenTab.
172 DCHECK(ExtensionTabUtil::GetTabById( 172 DCHECK(ExtensionTabUtil::GetTabById(
173 ExtensionTabUtil::GetTabId(target_web_contents), 173 ExtensionTabUtil::GetTabId(target_web_contents),
174 Profile::FromBrowserContext(target_web_contents->GetBrowserContext()), 174 Profile::FromBrowserContext(target_web_contents->GetBrowserContext()),
175 false, NULL, NULL, NULL, NULL)); 175 false, NULL, NULL, NULL, NULL));
176 176
177 scoped_ptr<ListValue> args(new ListValue()); 177 scoped_ptr<base::ListValue> args(new base::ListValue());
178 DictionaryValue* dict = new DictionaryValue(); 178 base::DictionaryValue* dict = new base::DictionaryValue();
179 dict->SetInteger(keys::kSourceTabIdKey, 179 dict->SetInteger(keys::kSourceTabIdKey,
180 ExtensionTabUtil::GetTabId(web_contents)); 180 ExtensionTabUtil::GetTabId(web_contents));
181 dict->SetInteger(keys::kSourceProcessIdKey, 181 dict->SetInteger(keys::kSourceProcessIdKey,
182 web_contents->GetRenderViewHost()->GetProcess()->GetID()); 182 web_contents->GetRenderViewHost()->GetProcess()->GetID());
183 dict->SetInteger(keys::kSourceFrameIdKey, 183 dict->SetInteger(keys::kSourceFrameIdKey,
184 GetFrameId(source_frame_is_main_frame, source_frame_id)); 184 GetFrameId(source_frame_is_main_frame, source_frame_id));
185 dict->SetString(keys::kUrlKey, target_url.possibly_invalid_spec()); 185 dict->SetString(keys::kUrlKey, target_url.possibly_invalid_spec());
186 dict->SetInteger(keys::kTabIdKey, 186 dict->SetInteger(keys::kTabIdKey,
187 ExtensionTabUtil::GetTabId(target_web_contents)); 187 ExtensionTabUtil::GetTabId(target_web_contents));
188 dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now())); 188 dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
189 args->Append(dict); 189 args->Append(dict);
190 190
191 DispatchEvent(browser_context, keys::kOnCreatedNavigationTarget, args.Pass(), 191 DispatchEvent(browser_context, keys::kOnCreatedNavigationTarget, args.Pass(),
192 target_url); 192 target_url);
193 } 193 }
194 194
195 // Constructs and dispatches an onErrorOccurred event. 195 // Constructs and dispatches an onErrorOccurred event.
196 void DispatchOnErrorOccurred(content::WebContents* web_contents, 196 void DispatchOnErrorOccurred(content::WebContents* web_contents,
197 int render_process_id, 197 int render_process_id,
198 const GURL& url, 198 const GURL& url,
199 int64 frame_id, 199 int64 frame_id,
200 bool is_main_frame, 200 bool is_main_frame,
201 int error_code) { 201 int error_code) {
202 scoped_ptr<ListValue> args(new ListValue()); 202 scoped_ptr<base::ListValue> args(new base::ListValue());
203 DictionaryValue* dict = new DictionaryValue(); 203 base::DictionaryValue* dict = new base::DictionaryValue();
204 dict->SetInteger(keys::kTabIdKey, ExtensionTabUtil::GetTabId(web_contents)); 204 dict->SetInteger(keys::kTabIdKey, ExtensionTabUtil::GetTabId(web_contents));
205 dict->SetString(keys::kUrlKey, url.spec()); 205 dict->SetString(keys::kUrlKey, url.spec());
206 dict->SetInteger(keys::kProcessIdKey, render_process_id); 206 dict->SetInteger(keys::kProcessIdKey, render_process_id);
207 dict->SetInteger(keys::kFrameIdKey, GetFrameId(is_main_frame, frame_id)); 207 dict->SetInteger(keys::kFrameIdKey, GetFrameId(is_main_frame, frame_id));
208 dict->SetString(keys::kErrorKey, net::ErrorToString(error_code)); 208 dict->SetString(keys::kErrorKey, net::ErrorToString(error_code));
209 dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now())); 209 dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
210 args->Append(dict); 210 args->Append(dict);
211 211
212 DispatchEvent(web_contents->GetBrowserContext(), keys::kOnErrorOccurred, 212 DispatchEvent(web_contents->GetBrowserContext(), keys::kOnErrorOccurred,
213 args.Pass(), url); 213 args.Pass(), url);
214 } 214 }
215 215
216 // Constructs and dispatches an onTabReplaced event. 216 // Constructs and dispatches an onTabReplaced event.
217 void DispatchOnTabReplaced( 217 void DispatchOnTabReplaced(
218 content::WebContents* old_web_contents, 218 content::WebContents* old_web_contents,
219 content::BrowserContext* browser_context, 219 content::BrowserContext* browser_context,
220 content::WebContents* new_web_contents) { 220 content::WebContents* new_web_contents) {
221 scoped_ptr<ListValue> args(new ListValue()); 221 scoped_ptr<base::ListValue> args(new base::ListValue());
222 DictionaryValue* dict = new DictionaryValue(); 222 base::DictionaryValue* dict = new base::DictionaryValue();
223 dict->SetInteger(keys::kReplacedTabIdKey, 223 dict->SetInteger(keys::kReplacedTabIdKey,
224 ExtensionTabUtil::GetTabId(old_web_contents)); 224 ExtensionTabUtil::GetTabId(old_web_contents));
225 dict->SetInteger(keys::kTabIdKey, 225 dict->SetInteger(keys::kTabIdKey,
226 ExtensionTabUtil::GetTabId(new_web_contents)); 226 ExtensionTabUtil::GetTabId(new_web_contents));
227 dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now())); 227 dict->SetDouble(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
228 args->Append(dict); 228 args->Append(dict);
229 229
230 DispatchEvent(browser_context, keys::kOnTabReplaced, args.Pass(), GURL()); 230 DispatchEvent(browser_context, keys::kOnTabReplaced, args.Pass(), GURL());
231 } 231 }
232 232
233 } // namespace web_navigation_api_helpers 233 } // namespace web_navigation_api_helpers
234 234
235 } // namespace extensions 235 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698