| 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/extensions/api/web_navigation/web_navigation_api_consta
nts.h" | 10 #include "chrome/browser/extensions/api/web_navigation/web_navigation_api_consta
nts.h" |
| 11 #include "chrome/browser/extensions/api/web_navigation/web_navigation_api_helper
s.h" | 11 #include "chrome/browser/extensions/api/web_navigation/web_navigation_api_helper
s.h" |
| 12 #include "chrome/browser/extensions/event_router.h" | 12 #include "chrome/browser/extensions/event_router.h" |
| 13 #include "chrome/browser/extensions/extension_system.h" | 13 #include "chrome/browser/extensions/extension_system.h" |
| 14 #include "chrome/browser/extensions/extension_tab_util.h" | 14 #include "chrome/browser/extensions/extension_tab_util.h" |
| 15 #include "chrome/browser/profiles/profile.h" | 15 #include "chrome/browser/profiles/profile.h" |
| 16 #include "chrome/browser/tab_contents/retargeting_details.h" | 16 #include "chrome/browser/tab_contents/retargeting_details.h" |
| 17 #include "chrome/browser/ui/browser.h" | 17 #include "chrome/browser/ui/browser.h" |
| 18 #include "chrome/browser/ui/browser_list.h" | 18 #include "chrome/browser/ui/browser_list.h" |
| 19 #include "chrome/browser/view_type_utils.h" | 19 #include "chrome/browser/view_type_utils.h" |
| 20 #include "chrome/common/chrome_notification_types.h" | 20 #include "chrome/common/chrome_notification_types.h" |
| 21 #include "chrome/common/extensions/api/web_navigation.h" | 21 #include "chrome/common/extensions/api/web_navigation.h" |
| 22 #include "content/public/browser/resource_request_details.h" | |
| 23 #include "content/public/browser/navigation_details.h" | 22 #include "content/public/browser/navigation_details.h" |
| 24 #include "content/public/browser/notification_service.h" | 23 #include "content/public/browser/notification_service.h" |
| 25 #include "content/public/browser/notification_types.h" | 24 #include "content/public/browser/notification_types.h" |
| 26 #include "content/public/browser/render_process_host.h" | 25 #include "content/public/browser/render_process_host.h" |
| 27 #include "content/public/browser/render_view_host.h" | 26 #include "content/public/browser/render_view_host.h" |
| 27 #include "content/public/browser/resource_request_details.h" |
| 28 #include "content/public/browser/web_contents.h" | 28 #include "content/public/browser/web_contents.h" |
| 29 #include "content/public/common/url_constants.h" | 29 #include "content/public/common/url_constants.h" |
| 30 #include "net/base/net_errors.h" | 30 #include "net/base/net_errors.h" |
| 31 | 31 |
| 32 namespace GetFrame = extensions::api::web_navigation::GetFrame; | 32 namespace GetFrame = extensions::api::web_navigation::GetFrame; |
| 33 namespace GetAllFrames = extensions::api::web_navigation::GetAllFrames; | 33 namespace GetAllFrames = extensions::api::web_navigation::GetAllFrames; |
| 34 | 34 |
| 35 DEFINE_WEB_CONTENTS_USER_DATA_KEY(extensions::WebNavigationTabObserver); | 35 DEFINE_WEB_CONTENTS_USER_DATA_KEY(extensions::WebNavigationTabObserver); |
| 36 | 36 |
| 37 namespace extensions { | 37 namespace extensions { |
| (...skipping 619 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 657 GURL existing_url = navigation_state_.GetUrl(frame_id); | 657 GURL existing_url = navigation_state_.GetUrl(frame_id); |
| 658 if (existing_url == url) | 658 if (existing_url == url) |
| 659 return false; | 659 return false; |
| 660 | 660 |
| 661 url_canon::Replacements<char> replacements; | 661 url_canon::Replacements<char> replacements; |
| 662 replacements.ClearRef(); | 662 replacements.ClearRef(); |
| 663 return existing_url.ReplaceComponents(replacements) == | 663 return existing_url.ReplaceComponents(replacements) == |
| 664 url.ReplaceComponents(replacements); | 664 url.ReplaceComponents(replacements); |
| 665 } | 665 } |
| 666 | 666 |
| 667 bool GetFrameFunction::RunImpl() { | 667 bool WebNavigationGetFrameFunction::RunImpl() { |
| 668 scoped_ptr<GetFrame::Params> params(GetFrame::Params::Create(*args_)); | 668 scoped_ptr<GetFrame::Params> params(GetFrame::Params::Create(*args_)); |
| 669 EXTENSION_FUNCTION_VALIDATE(params.get()); | 669 EXTENSION_FUNCTION_VALIDATE(params.get()); |
| 670 int tab_id = params->details.tab_id; | 670 int tab_id = params->details.tab_id; |
| 671 int frame_id = params->details.frame_id; | 671 int frame_id = params->details.frame_id; |
| 672 int process_id = params->details.process_id; | 672 int process_id = params->details.process_id; |
| 673 | 673 |
| 674 SetResult(Value::CreateNullValue()); | 674 SetResult(Value::CreateNullValue()); |
| 675 | 675 |
| 676 content::WebContents* web_contents; | 676 content::WebContents* web_contents; |
| 677 if (!ExtensionTabUtil::GetTabById(tab_id, | 677 if (!ExtensionTabUtil::GetTabById(tab_id, |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 713 frame_navigation_state.GetErrorOccurredInFrame(internal_frame_id); | 713 frame_navigation_state.GetErrorOccurredInFrame(internal_frame_id); |
| 714 FrameNavigationState::FrameID parent_frame_id = | 714 FrameNavigationState::FrameID parent_frame_id = |
| 715 frame_navigation_state.GetParentFrameID(internal_frame_id); | 715 frame_navigation_state.GetParentFrameID(internal_frame_id); |
| 716 frame_details.parent_frame_id = helpers::GetFrameId( | 716 frame_details.parent_frame_id = helpers::GetFrameId( |
| 717 frame_navigation_state.IsMainFrame(parent_frame_id), | 717 frame_navigation_state.IsMainFrame(parent_frame_id), |
| 718 parent_frame_id.frame_num); | 718 parent_frame_id.frame_num); |
| 719 results_ = GetFrame::Results::Create(frame_details); | 719 results_ = GetFrame::Results::Create(frame_details); |
| 720 return true; | 720 return true; |
| 721 } | 721 } |
| 722 | 722 |
| 723 bool GetAllFramesFunction::RunImpl() { | 723 bool WebNavigationGetAllFramesFunction::RunImpl() { |
| 724 scoped_ptr<GetAllFrames::Params> params(GetAllFrames::Params::Create(*args_)); | 724 scoped_ptr<GetAllFrames::Params> params(GetAllFrames::Params::Create(*args_)); |
| 725 EXTENSION_FUNCTION_VALIDATE(params.get()); | 725 EXTENSION_FUNCTION_VALIDATE(params.get()); |
| 726 int tab_id = params->details.tab_id; | 726 int tab_id = params->details.tab_id; |
| 727 | 727 |
| 728 SetResult(Value::CreateNullValue()); | 728 SetResult(Value::CreateNullValue()); |
| 729 | 729 |
| 730 content::WebContents* web_contents; | 730 content::WebContents* web_contents; |
| 731 if (!ExtensionTabUtil::GetTabById(tab_id, | 731 if (!ExtensionTabUtil::GetTabById(tab_id, |
| 732 profile(), | 732 profile(), |
| 733 include_incognito(), | 733 include_incognito(), |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 808 return &g_factory.Get(); | 808 return &g_factory.Get(); |
| 809 } | 809 } |
| 810 | 810 |
| 811 void WebNavigationAPI::OnListenerAdded( | 811 void WebNavigationAPI::OnListenerAdded( |
| 812 const extensions::EventListenerInfo& details) { | 812 const extensions::EventListenerInfo& details) { |
| 813 web_navigation_event_router_.reset(new WebNavigationEventRouter(profile_)); | 813 web_navigation_event_router_.reset(new WebNavigationEventRouter(profile_)); |
| 814 ExtensionSystem::Get(profile_)->event_router()->UnregisterObserver(this); | 814 ExtensionSystem::Get(profile_)->event_router()->UnregisterObserver(this); |
| 815 } | 815 } |
| 816 | 816 |
| 817 } // namespace extensions | 817 } // namespace extensions |
| OLD | NEW |