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

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

Issue 1140023002: Code Refactor and making function static in frame_navigation_state. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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
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.h" 7 #include "chrome/browser/extensions/api/web_navigation/web_navigation_api.h"
8 8
9 #include "base/lazy_instance.h" 9 #include "base/lazy_instance.h"
10 #include "chrome/browser/chrome_notification_types.h" 10 #include "chrome/browser/chrome_notification_types.h"
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 content::WebContents* new_contents, 115 content::WebContents* new_contents,
116 int index) { 116 int index) {
117 WebNavigationTabObserver* tab_observer = 117 WebNavigationTabObserver* tab_observer =
118 WebNavigationTabObserver::Get(old_contents); 118 WebNavigationTabObserver::Get(old_contents);
119 if (!tab_observer) { 119 if (!tab_observer) {
120 // If you hit this DCHECK(), please add reproduction steps to 120 // If you hit this DCHECK(), please add reproduction steps to
121 // http://crbug.com/109464. 121 // http://crbug.com/109464.
122 DCHECK(GetViewType(old_contents) != VIEW_TYPE_TAB_CONTENTS); 122 DCHECK(GetViewType(old_contents) != VIEW_TYPE_TAB_CONTENTS);
123 return; 123 return;
124 } 124 }
125 const FrameNavigationState& frame_navigation_state = 125 if (!FrameNavigationState::IsValidUrl(old_contents->GetURL()) ||
126 tab_observer->frame_navigation_state(); 126 !FrameNavigationState::IsValidUrl(new_contents->GetURL()))
127
128 if (!frame_navigation_state.IsValidUrl(old_contents->GetURL()) ||
129 !frame_navigation_state.IsValidUrl(new_contents->GetURL()))
130 return; 127 return;
131 128
132 helpers::DispatchOnTabReplaced(old_contents, profile_, new_contents); 129 helpers::DispatchOnTabReplaced(old_contents, profile_, new_contents);
133 } 130 }
134 131
135 void WebNavigationEventRouter::Observe( 132 void WebNavigationEventRouter::Observe(
136 int type, 133 int type,
137 const content::NotificationSource& source, 134 const content::NotificationSource& source,
138 const content::NotificationDetails& details) { 135 const content::NotificationDetails& details) {
139 switch (type) { 136 switch (type) {
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 WebNavigationTabObserver* WebNavigationTabObserver::Get( 246 WebNavigationTabObserver* WebNavigationTabObserver::Get(
250 content::WebContents* web_contents) { 247 content::WebContents* web_contents) {
251 TabObserverMap::iterator i = g_tab_observer.Get().find(web_contents); 248 TabObserverMap::iterator i = g_tab_observer.Get().find(web_contents);
252 return i == g_tab_observer.Get().end() ? NULL : i->second; 249 return i == g_tab_observer.Get().end() ? NULL : i->second;
253 } 250 }
254 251
255 void WebNavigationTabObserver::RenderFrameDeleted( 252 void WebNavigationTabObserver::RenderFrameDeleted(
256 content::RenderFrameHost* render_frame_host) { 253 content::RenderFrameHost* render_frame_host) {
257 if (navigation_state_.CanSendEvents(render_frame_host) && 254 if (navigation_state_.CanSendEvents(render_frame_host) &&
258 !navigation_state_.GetNavigationCompleted(render_frame_host)) { 255 !navigation_state_.GetNavigationCompleted(render_frame_host)) {
259 helpers::DispatchOnErrorOccurred( 256 DispatchErrorToHelper(render_frame_host, net::ERR_ABORTED);
260 web_contents(),
261 render_frame_host,
262 navigation_state_.GetUrl(render_frame_host),
263 net::ERR_ABORTED);
264 navigation_state_.SetErrorOccurredInFrame(render_frame_host); 257 navigation_state_.SetErrorOccurredInFrame(render_frame_host);
265 } 258 }
266 } 259 }
267 260
268 void WebNavigationTabObserver::FrameDeleted( 261 void WebNavigationTabObserver::FrameDeleted(
269 content::RenderFrameHost* render_frame_host) { 262 content::RenderFrameHost* render_frame_host) {
270 navigation_state_.FrameHostDeleted(render_frame_host); 263 navigation_state_.FrameHostDeleted(render_frame_host);
271 } 264 }
272 265
273 void WebNavigationTabObserver::RenderFrameHostChanged( 266 void WebNavigationTabObserver::RenderFrameHostChanged(
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 344
352 void WebNavigationTabObserver::DidFailProvisionalLoad( 345 void WebNavigationTabObserver::DidFailProvisionalLoad(
353 content::RenderFrameHost* render_frame_host, 346 content::RenderFrameHost* render_frame_host,
354 const GURL& validated_url, 347 const GURL& validated_url,
355 int error_code, 348 int error_code,
356 const base::string16& error_description) { 349 const base::string16& error_description) {
357 DVLOG(2) << "DidFailProvisionalLoad(" 350 DVLOG(2) << "DidFailProvisionalLoad("
358 << "render_frame_host=" << render_frame_host 351 << "render_frame_host=" << render_frame_host
359 << ", frame_num=" << render_frame_host->GetRoutingID() 352 << ", frame_num=" << render_frame_host->GetRoutingID()
360 << ", url=" << validated_url << ")"; 353 << ", url=" << validated_url << ")";
361 if (navigation_state_.CanSendEvents(render_frame_host)) { 354 if (navigation_state_.CanSendEvents(render_frame_host))
362 helpers::DispatchOnErrorOccurred( 355 DispatchErrorToHelper(render_frame_host, error_code);
363 web_contents(),
364 render_frame_host,
365 navigation_state_.GetUrl(render_frame_host),
366 error_code);
367 }
368 navigation_state_.SetErrorOccurredInFrame(render_frame_host); 356 navigation_state_.SetErrorOccurredInFrame(render_frame_host);
369 } 357 }
370 358
371 void WebNavigationTabObserver::DocumentLoadedInFrame( 359 void WebNavigationTabObserver::DocumentLoadedInFrame(
372 content::RenderFrameHost* render_frame_host) { 360 content::RenderFrameHost* render_frame_host) {
373 DVLOG(2) << "DocumentLoadedInFrame(" 361 DVLOG(2) << "DocumentLoadedInFrame("
374 << "render_frame_host=" << render_frame_host 362 << "render_frame_host=" << render_frame_host
375 << ", frame_num=" << render_frame_host->GetRoutingID() << ")"; 363 << ", frame_num=" << render_frame_host->GetRoutingID() << ")";
376 if (!navigation_state_.CanSendEvents(render_frame_host)) 364 if (!navigation_state_.CanSendEvents(render_frame_host))
377 return; 365 return;
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 int error_code, 417 int error_code,
430 const base::string16& error_description) { 418 const base::string16& error_description) {
431 DVLOG(2) << "DidFailLoad(" 419 DVLOG(2) << "DidFailLoad("
432 << "render_frame_host=" << render_frame_host 420 << "render_frame_host=" << render_frame_host
433 << ", frame_num=" << render_frame_host->GetRoutingID() 421 << ", frame_num=" << render_frame_host->GetRoutingID()
434 << ", url=" << validated_url << ")"; 422 << ", url=" << validated_url << ")";
435 // When showing replacement content, we might get load signals for frames 423 // When showing replacement content, we might get load signals for frames
436 // that weren't reguarly loaded. 424 // that weren't reguarly loaded.
437 if (!navigation_state_.IsValidFrame(render_frame_host)) 425 if (!navigation_state_.IsValidFrame(render_frame_host))
438 return; 426 return;
439 if (navigation_state_.CanSendEvents(render_frame_host)) { 427 if (navigation_state_.CanSendEvents(render_frame_host))
440 helpers::DispatchOnErrorOccurred( 428 DispatchErrorToHelper(render_frame_host, error_code);
441 web_contents(),
442 render_frame_host,
443 navigation_state_.GetUrl(render_frame_host),
444 error_code);
445 }
446 navigation_state_.SetErrorOccurredInFrame(render_frame_host); 429 navigation_state_.SetErrorOccurredInFrame(render_frame_host);
447 } 430 }
448 431
449 void WebNavigationTabObserver::DidGetRedirectForResourceRequest( 432 void WebNavigationTabObserver::DidGetRedirectForResourceRequest(
450 content::RenderFrameHost* render_frame_host, 433 content::RenderFrameHost* render_frame_host,
451 const content::ResourceRedirectDetails& details) { 434 const content::ResourceRedirectDetails& details) {
452 if (details.resource_type != content::RESOURCE_TYPE_MAIN_FRAME && 435 if (details.resource_type != content::RESOURCE_TYPE_MAIN_FRAME &&
453 details.resource_type != content::RESOURCE_TYPE_SUB_FRAME) { 436 details.resource_type != content::RESOURCE_TYPE_SUB_FRAME) {
454 return; 437 return;
455 } 438 }
(...skipping 25 matching lines...) Expand all
481 source_render_frame_host, 464 source_render_frame_host,
482 new_contents, 465 new_contents,
483 url); 466 url);
484 } 467 }
485 468
486 void WebNavigationTabObserver::WebContentsDestroyed() { 469 void WebNavigationTabObserver::WebContentsDestroyed() {
487 g_tab_observer.Get().erase(web_contents()); 470 g_tab_observer.Get().erase(web_contents());
488 registrar_.RemoveAll(); 471 registrar_.RemoveAll();
489 } 472 }
490 473
474 void WebNavigationTabObserver::DispatchErrorToHelper(
nasko 2015/05/14 17:00:41 First of all, it is unrelated to the change you ar
475 content::RenderFrameHost* render_frame_host,
476 int error_code) {
477 helpers::DispatchOnErrorOccurred(web_contents(), render_frame_host,
478 navigation_state_.GetUrl(render_frame_host),
479 error_code);
480 }
481
491 // See also NavigationController::IsURLInPageNavigation. 482 // See also NavigationController::IsURLInPageNavigation.
492 bool WebNavigationTabObserver::IsReferenceFragmentNavigation( 483 bool WebNavigationTabObserver::IsReferenceFragmentNavigation(
493 content::RenderFrameHost* render_frame_host, 484 content::RenderFrameHost* render_frame_host,
494 const GURL& url) { 485 const GURL& url) {
495 GURL existing_url = navigation_state_.GetUrl(render_frame_host); 486 GURL existing_url = navigation_state_.GetUrl(render_frame_host);
496 if (existing_url == url) 487 if (existing_url == url)
497 return false; 488 return false;
498 489
499 url::Replacements<char> replacements; 490 url::Replacements<char> replacements;
500 replacements.ClearRef(); 491 replacements.ClearRef();
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
632 return g_factory.Pointer(); 623 return g_factory.Pointer();
633 } 624 }
634 625
635 void WebNavigationAPI::OnListenerAdded(const EventListenerInfo& details) { 626 void WebNavigationAPI::OnListenerAdded(const EventListenerInfo& details) {
636 web_navigation_event_router_.reset(new WebNavigationEventRouter( 627 web_navigation_event_router_.reset(new WebNavigationEventRouter(
637 Profile::FromBrowserContext(browser_context_))); 628 Profile::FromBrowserContext(browser_context_)));
638 EventRouter::Get(browser_context_)->UnregisterObserver(this); 629 EventRouter::Get(browser_context_)->UnregisterObserver(this);
639 } 630 }
640 631
641 } // namespace extensions 632 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698