OLD | NEW |
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 470 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
481 replacements.ClearRef(); | 481 replacements.ClearRef(); |
482 return existing_url.ReplaceComponents(replacements) == | 482 return existing_url.ReplaceComponents(replacements) == |
483 url.ReplaceComponents(replacements); | 483 url.ReplaceComponents(replacements); |
484 } | 484 } |
485 | 485 |
486 bool WebNavigationGetFrameFunction::RunSync() { | 486 bool WebNavigationGetFrameFunction::RunSync() { |
487 scoped_ptr<GetFrame::Params> params(GetFrame::Params::Create(*args_)); | 487 scoped_ptr<GetFrame::Params> params(GetFrame::Params::Create(*args_)); |
488 EXTENSION_FUNCTION_VALIDATE(params.get()); | 488 EXTENSION_FUNCTION_VALIDATE(params.get()); |
489 int tab_id = params->details.tab_id; | 489 int tab_id = params->details.tab_id; |
490 int frame_id = params->details.frame_id; | 490 int frame_id = params->details.frame_id; |
491 int process_id = params->details.process_id; | |
492 | 491 |
493 SetResult(base::Value::CreateNullValue()); | 492 SetResult(base::Value::CreateNullValue()); |
494 | 493 |
495 content::WebContents* web_contents; | 494 content::WebContents* web_contents; |
496 if (!ExtensionTabUtil::GetTabById(tab_id, | 495 if (!ExtensionTabUtil::GetTabById(tab_id, |
497 GetProfile(), | 496 GetProfile(), |
498 include_incognito(), | 497 include_incognito(), |
499 NULL, | 498 NULL, |
500 NULL, | 499 NULL, |
501 &web_contents, | 500 &web_contents, |
502 NULL) || | 501 NULL) || |
503 !web_contents) { | 502 !web_contents) { |
504 return true; | 503 return true; |
505 } | 504 } |
506 | 505 |
507 WebNavigationTabObserver* observer = | 506 WebNavigationTabObserver* observer = |
508 WebNavigationTabObserver::Get(web_contents); | 507 WebNavigationTabObserver::Get(web_contents); |
509 DCHECK(observer); | 508 DCHECK(observer); |
510 | 509 |
511 const FrameNavigationState& frame_navigation_state = | 510 const FrameNavigationState& frame_navigation_state = |
512 observer->frame_navigation_state(); | 511 observer->frame_navigation_state(); |
513 | 512 |
514 content::RenderFrameHost* render_frame_host = | 513 content::RenderFrameHost* render_frame_host = |
515 frame_id == 0 ? web_contents->GetMainFrame() | 514 frame_id == 0 ? web_contents->GetMainFrame() |
516 : content::RenderFrameHost::FromID(process_id, frame_id); | 515 : web_contents->FindFrameByFrameTreeNodeID(frame_id); |
517 if (!frame_navigation_state.IsValidFrame(render_frame_host)) | 516 if (!frame_navigation_state.IsValidFrame(render_frame_host)) |
518 return true; | 517 return true; |
519 | 518 |
520 GURL frame_url = frame_navigation_state.GetUrl(render_frame_host); | 519 GURL frame_url = frame_navigation_state.GetUrl(render_frame_host); |
521 if (!frame_navigation_state.IsValidUrl(frame_url)) | 520 if (!frame_navigation_state.IsValidUrl(frame_url)) |
522 return true; | 521 return true; |
523 | 522 |
524 GetFrame::Results::Details frame_details; | 523 GetFrame::Results::Details frame_details; |
525 frame_details.url = frame_url.spec(); | 524 frame_details.url = frame_url.spec(); |
526 frame_details.error_occurred = | 525 frame_details.error_occurred = |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
613 return g_factory.Pointer(); | 612 return g_factory.Pointer(); |
614 } | 613 } |
615 | 614 |
616 void WebNavigationAPI::OnListenerAdded(const EventListenerInfo& details) { | 615 void WebNavigationAPI::OnListenerAdded(const EventListenerInfo& details) { |
617 web_navigation_event_router_.reset(new WebNavigationEventRouter( | 616 web_navigation_event_router_.reset(new WebNavigationEventRouter( |
618 Profile::FromBrowserContext(browser_context_))); | 617 Profile::FromBrowserContext(browser_context_))); |
619 EventRouter::Get(browser_context_)->UnregisterObserver(this); | 618 EventRouter::Get(browser_context_)->UnregisterObserver(this); |
620 } | 619 } |
621 | 620 |
622 } // namespace extensions | 621 } // namespace extensions |
OLD | NEW |