| 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 |