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

Side by Side Diff: chrome/browser/extensions/extension_webnavigation_api.cc

Issue 4997001: C++ readability change for jochen (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/chrome/browser/extensions
Patch Set: Created 10 years, 1 month 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/extension_webnavigation_api.h" 7 #include "chrome/browser/extensions/extension_webnavigation_api.h"
8 8
9 #include "base/json/json_writer.h" 9 #include "base/json/json_writer.h"
10 #include "base/time.h" 10 #include "base/time.h"
(...skipping 19 matching lines...) Expand all
30 return details->main_frame() ? 0 : static_cast<int>(details->frame_id()); 30 return details->main_frame() ? 0 : static_cast<int>(details->frame_id());
31 } 31 }
32 32
33 // Returns |time| as milliseconds since the epoch. 33 // Returns |time| as milliseconds since the epoch.
34 double MilliSecondsFromTime(const base::Time& time) { 34 double MilliSecondsFromTime(const base::Time& time) {
35 return 1000 * time.ToDoubleT(); 35 return 1000 * time.ToDoubleT();
36 } 36 }
37 37
38 } // namespace 38 } // namespace
39 39
40
40 FrameNavigationState::FrameNavigationState() { 41 FrameNavigationState::FrameNavigationState() {
41 } 42 }
42 43
43 FrameNavigationState::~FrameNavigationState() { 44 FrameNavigationState::~FrameNavigationState() {
44 } 45 }
45 46
46 bool FrameNavigationState::CanSendEvents(long long frame_id) const { 47 bool FrameNavigationState::CanSendEvents(long long frame_id) const {
47 FrameIdToStateMap::const_iterator frame_state = 48 FrameIdToStateMap::const_iterator frame_state =
48 frame_state_map_.find(frame_id); 49 frame_state_map_.find(frame_id);
49 return frame_state != frame_state_map_.end() && 50 return frame_state != frame_state_map_.end() &&
50 !frame_state->second.error_occurred; 51 !frame_state->second.error_occurred;
51 } 52 }
52 53
53 void FrameNavigationState::TrackFrame(long long frame_id, 54 void FrameNavigationState::TrackFrame(long long frame_id,
54 const GURL& url, 55 const GURL& url,
55 bool is_main_frame, 56 bool is_main_frame,
56 const TabContents* tab_contents) { 57 const TabContents* tab_contents) {
57 if (is_main_frame) 58 if (is_main_frame)
58 RemoveTabContentsState(tab_contents); 59 RemoveTabContentsState(tab_contents);
59 tab_contents_map_.insert( 60 tab_contents_map_.insert(
60 TabContentsToFrameIdMap::value_type(tab_contents, frame_id)); 61 TabContentsToFrameIdMap::value_type(tab_contents, frame_id));
brettw 2010/11/23 22:44:09 Optional: I might have used std::make_pair(tab_con
jochen (gone - plz use gerrit) 2010/11/24 07:37:37 Done.
61 FrameState& frame_state = frame_state_map_[frame_id]; 62 FrameState& frame_state = frame_state_map_[frame_id];
62 frame_state.error_occurred = (url.spec() == chrome::kUnreachableWebDataURL); 63 frame_state.error_occurred = (url.spec() == chrome::kUnreachableWebDataURL);
63 frame_state.url = url; 64 frame_state.url = url;
64 frame_state.is_main_frame = is_main_frame; 65 frame_state.is_main_frame = is_main_frame;
65 } 66 }
66 67
67 GURL FrameNavigationState::GetUrl(long long frame_id) const { 68 GURL FrameNavigationState::GetUrl(long long frame_id) const {
68 FrameIdToStateMap::const_iterator frame_state = 69 FrameIdToStateMap::const_iterator frame_state =
69 frame_state_map_.find(frame_id); 70 frame_state_map_.find(frame_id);
70 if (frame_state == frame_state_map_.end()) { 71 if (frame_state == frame_state_map_.end()) {
(...skipping 15 matching lines...) Expand all
86 87
87 void FrameNavigationState::ErrorOccurredInFrame(long long frame_id) { 88 void FrameNavigationState::ErrorOccurredInFrame(long long frame_id) {
88 DCHECK(frame_state_map_.find(frame_id) != frame_state_map_.end()); 89 DCHECK(frame_state_map_.find(frame_id) != frame_state_map_.end());
89 frame_state_map_[frame_id].error_occurred = true; 90 frame_state_map_[frame_id].error_occurred = true;
90 } 91 }
91 92
92 void FrameNavigationState::RemoveTabContentsState( 93 void FrameNavigationState::RemoveTabContentsState(
93 const TabContents* tab_contents) { 94 const TabContents* tab_contents) {
94 typedef TabContentsToFrameIdMap::iterator FrameIdIterator; 95 typedef TabContentsToFrameIdMap::iterator FrameIdIterator;
95 std::pair<FrameIdIterator, FrameIdIterator> frame_ids = 96 std::pair<FrameIdIterator, FrameIdIterator> frame_ids =
96 tab_contents_map_.equal_range(tab_contents); 97 tab_contents_map_.equal_range(tab_contents);
brettw 2010/11/23 22:44:09 This only needs to be indented 4 spaces.
jochen (gone - plz use gerrit) 2010/11/24 07:37:37 Done.
97 for (FrameIdIterator frame_id = frame_ids.first; frame_id != frame_ids.second; 98 for (FrameIdIterator frame_id = frame_ids.first; frame_id != frame_ids.second;
98 ++frame_id) { 99 ++frame_id) {
99 frame_state_map_.erase(frame_id->second); 100 frame_state_map_.erase(frame_id->second);
100 } 101 }
101 tab_contents_map_.erase(tab_contents); 102 tab_contents_map_.erase(tab_contents);
102 } 103 }
103 104
104 105
105 // static 106 // static
106 ExtensionWebNavigationEventRouter* 107 ExtensionWebNavigationEventRouter*
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 FrameDidFinishLoad( 156 FrameDidFinishLoad(
156 Source<NavigationController>(source).ptr(), 157 Source<NavigationController>(source).ptr(),
157 *Details<long long>(details).ptr()); 158 *Details<long long>(details).ptr());
158 break; 159 break;
159 case NotificationType::FAIL_PROVISIONAL_LOAD_WITH_ERROR: 160 case NotificationType::FAIL_PROVISIONAL_LOAD_WITH_ERROR:
160 FailProvisionalLoadWithError( 161 FailProvisionalLoadWithError(
161 Source<NavigationController>(source).ptr(), 162 Source<NavigationController>(source).ptr(),
162 Details<ProvisionalLoadDetails>(details).ptr()); 163 Details<ProvisionalLoadDetails>(details).ptr());
163 break; 164 break;
164 165
165 case NotificationType::TAB_CONTENTS_DESTROYED: 166 case NotificationType::TAB_CONTENTS_DESTROYED:
brettw 2010/11/23 22:44:09 Can you be consistent about whether there's a blan
jochen (gone - plz use gerrit) 2010/11/24 07:37:37 Done.
166 navigation_state_.RemoveTabContentsState( 167 navigation_state_.RemoveTabContentsState(
167 Source<TabContents>(source).ptr()); 168 Source<TabContents>(source).ptr());
168 break; 169 break;
169 170
170 default: 171 default:
171 NOTREACHED(); 172 NOTREACHED();
172 } 173 }
173 } 174 }
174 void ExtensionWebNavigationEventRouter::FrameProvisionalLoadStart( 175 void ExtensionWebNavigationEventRouter::FrameProvisionalLoadStart(
175 NavigationController* controller, 176 NavigationController* controller,
176 ProvisionalLoadDetails* details) { 177 ProvisionalLoadDetails* details) {
177 navigation_state_.TrackFrame(details->frame_id(), 178 navigation_state_.TrackFrame(details->frame_id(),
178 details->url(), 179 details->url(),
179 details->main_frame(), 180 details->main_frame(),
180 controller->tab_contents()); 181 controller->tab_contents());
181 if (!navigation_state_.CanSendEvents(details->frame_id())) 182 if (!navigation_state_.CanSendEvents(details->frame_id()))
182 return; 183 return;
183 ListValue args; 184 ListValue args;
184 DictionaryValue* dict = new DictionaryValue(); 185 DictionaryValue* dict = new DictionaryValue();
185 dict->SetInteger(keys::kTabIdKey, 186 dict->SetInteger(keys::kTabIdKey,
186 ExtensionTabUtil::GetTabId(controller->tab_contents())); 187 ExtensionTabUtil::GetTabId(controller->tab_contents()));
187 dict->SetString(keys::kUrlKey, 188 dict->SetString(keys::kUrlKey,
brettw 2010/11/23 22:44:09 This can fit on one line (same below when you set
jochen (gone - plz use gerrit) 2010/11/24 07:37:37 Done.
188 details->url().spec()); 189 details->url().spec());
189 dict->SetInteger(keys::kFrameIdKey, GetFrameId(details)); 190 dict->SetInteger(keys::kFrameIdKey, GetFrameId(details));
190 dict->SetInteger(keys::kRequestIdKey, 0); 191 dict->SetInteger(keys::kRequestIdKey, 0);
191 dict->SetReal(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now())); 192 dict->SetReal(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
192 args.Append(dict); 193 args.Append(dict);
193 194
194 std::string json_args; 195 std::string json_args;
195 base::JSONWriter::Write(&args, false, &json_args); 196 base::JSONWriter::Write(&args, false, &json_args);
196 DispatchEvent(controller->profile(), keys::kOnBeforeNavigate, json_args); 197 DispatchEvent(controller->profile(), keys::kOnBeforeNavigate, json_args);
197 } 198 }
(...skipping 26 matching lines...) Expand all
224 225
225 void ExtensionWebNavigationEventRouter::FrameDomContentLoaded( 226 void ExtensionWebNavigationEventRouter::FrameDomContentLoaded(
226 NavigationController* controller, long long frame_id) { 227 NavigationController* controller, long long frame_id) {
227 if (!navigation_state_.CanSendEvents(frame_id)) 228 if (!navigation_state_.CanSendEvents(frame_id))
228 return; 229 return;
229 ListValue args; 230 ListValue args;
230 DictionaryValue* dict = new DictionaryValue(); 231 DictionaryValue* dict = new DictionaryValue();
231 dict->SetInteger(keys::kTabIdKey, 232 dict->SetInteger(keys::kTabIdKey,
232 ExtensionTabUtil::GetTabId(controller->tab_contents())); 233 ExtensionTabUtil::GetTabId(controller->tab_contents()));
233 dict->SetString(keys::kUrlKey, navigation_state_.GetUrl(frame_id).spec()); 234 dict->SetString(keys::kUrlKey, navigation_state_.GetUrl(frame_id).spec());
234 dict->SetInteger(keys::kFrameIdKey, navigation_state_.IsMainFrame(frame_id) ? 235 dict->SetInteger(keys::kFrameIdKey, navigation_state_.IsMainFrame(frame_id) ?
brettw 2010/11/23 22:44:09 I always try to format the ternary operators as cl
jochen (gone - plz use gerrit) 2010/11/24 07:37:37 Done.
235 0 : static_cast<int>(frame_id)); 236 0 : static_cast<int>(frame_id));
236 dict->SetReal(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now())); 237 dict->SetReal(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
237 args.Append(dict); 238 args.Append(dict);
238 239
239 std::string json_args; 240 std::string json_args;
240 base::JSONWriter::Write(&args, false, &json_args); 241 base::JSONWriter::Write(&args, false, &json_args);
241 DispatchEvent(controller->profile(), keys::kOnDOMContentLoaded, json_args); 242 DispatchEvent(controller->profile(), keys::kOnDOMContentLoaded, json_args);
242 } 243 }
243 244
244 void ExtensionWebNavigationEventRouter::FrameDidFinishLoad( 245 void ExtensionWebNavigationEventRouter::FrameDidFinishLoad(
245 NavigationController* controller, long long frame_id) { 246 NavigationController* controller, long long frame_id) {
brettw 2010/11/23 22:44:09 the frame_id should probably be on the next line l
jochen (gone - plz use gerrit) 2010/11/24 07:37:37 Done.
246 if (!navigation_state_.CanSendEvents(frame_id)) 247 if (!navigation_state_.CanSendEvents(frame_id))
247 return; 248 return;
248 ListValue args; 249 ListValue args;
249 DictionaryValue* dict = new DictionaryValue(); 250 DictionaryValue* dict = new DictionaryValue();
250 dict->SetInteger(keys::kTabIdKey, 251 dict->SetInteger(keys::kTabIdKey,
251 ExtensionTabUtil::GetTabId(controller->tab_contents())); 252 ExtensionTabUtil::GetTabId(controller->tab_contents()));
252 dict->SetString(keys::kUrlKey, navigation_state_.GetUrl(frame_id).spec()); 253 dict->SetString(keys::kUrlKey, navigation_state_.GetUrl(frame_id).spec());
253 dict->SetInteger(keys::kFrameIdKey, navigation_state_.IsMainFrame(frame_id) ? 254 dict->SetInteger(keys::kFrameIdKey, navigation_state_.IsMainFrame(frame_id) ?
brettw 2010/11/23 22:44:09 Sane ternary formatting suggestion.
jochen (gone - plz use gerrit) 2010/11/24 07:37:37 Done.
254 0 : static_cast<int>(frame_id)); 255 0 : static_cast<int>(frame_id));
255 dict->SetReal(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now())); 256 dict->SetReal(keys::kTimeStampKey, MilliSecondsFromTime(base::Time::Now()));
256 args.Append(dict); 257 args.Append(dict);
257 258
258 std::string json_args; 259 std::string json_args;
259 base::JSONWriter::Write(&args, false, &json_args); 260 base::JSONWriter::Write(&args, false, &json_args);
260 DispatchEvent(controller->profile(), keys::kOnCompleted, json_args); 261 DispatchEvent(controller->profile(), keys::kOnCompleted, json_args);
261 } 262 }
262 263
263 void ExtensionWebNavigationEventRouter::FailProvisionalLoadWithError( 264 void ExtensionWebNavigationEventRouter::FailProvisionalLoadWithError(
(...skipping 21 matching lines...) Expand all
285 286
286 void ExtensionWebNavigationEventRouter::DispatchEvent( 287 void ExtensionWebNavigationEventRouter::DispatchEvent(
287 Profile* profile, 288 Profile* profile,
288 const char* event_name, 289 const char* event_name,
289 const std::string& json_args) { 290 const std::string& json_args) {
290 if (profile && profile->GetExtensionEventRouter()) { 291 if (profile && profile->GetExtensionEventRouter()) {
291 profile->GetExtensionEventRouter()->DispatchEventToRenderers( 292 profile->GetExtensionEventRouter()->DispatchEventToRenderers(
292 event_name, json_args, profile, GURL()); 293 event_name, json_args, profile, GURL());
293 } 294 }
294 } 295 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698