| 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 #include "content/browser/web_contents/web_contents_impl.h" | 5 #include "content/browser/web_contents/web_contents_impl.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
| (...skipping 838 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 849 GetMainFrame()->RequestAXTreeSnapshot(callback); | 849 GetMainFrame()->RequestAXTreeSnapshot(callback); |
| 850 } | 850 } |
| 851 | 851 |
| 852 WebUI* WebContentsImpl::CreateSubframeWebUI(const GURL& url, | 852 WebUI* WebContentsImpl::CreateSubframeWebUI(const GURL& url, |
| 853 const std::string& frame_name) { | 853 const std::string& frame_name) { |
| 854 DCHECK(!frame_name.empty()); | 854 DCHECK(!frame_name.empty()); |
| 855 return CreateWebUI(url, frame_name); | 855 return CreateWebUI(url, frame_name); |
| 856 } | 856 } |
| 857 | 857 |
| 858 WebUI* WebContentsImpl::GetWebUI() const { | 858 WebUI* WebContentsImpl::GetWebUI() const { |
| 859 return GetRenderManager()->web_ui() ? GetRenderManager()->web_ui() | 859 return GetRenderManager()->web_ui() |
| 860 : GetRenderManager()->pending_web_ui(); | 860 ? GetRenderManager()->web_ui() |
| 861 : GetRenderManager()->GetNavigatingWebUI(); |
| 861 } | 862 } |
| 862 | 863 |
| 863 WebUI* WebContentsImpl::GetCommittedWebUI() const { | 864 WebUI* WebContentsImpl::GetCommittedWebUI() const { |
| 864 return GetRenderManager()->web_ui(); | 865 return GetRenderManager()->web_ui(); |
| 865 } | 866 } |
| 866 | 867 |
| 867 void WebContentsImpl::SetUserAgentOverride(const std::string& override) { | 868 void WebContentsImpl::SetUserAgentOverride(const std::string& override) { |
| 868 if (GetUserAgentOverride() == override) | 869 if (GetUserAgentOverride() == override) |
| 869 return; | 870 return; |
| 870 | 871 |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 921 const base::string16& WebContentsImpl::GetTitle() const { | 922 const base::string16& WebContentsImpl::GetTitle() const { |
| 922 // Transient entries take precedence. They are used for interstitial pages | 923 // Transient entries take precedence. They are used for interstitial pages |
| 923 // that are shown on top of existing pages. | 924 // that are shown on top of existing pages. |
| 924 NavigationEntry* entry = controller_.GetTransientEntry(); | 925 NavigationEntry* entry = controller_.GetTransientEntry(); |
| 925 std::string accept_languages = | 926 std::string accept_languages = |
| 926 GetContentClient()->browser()->GetAcceptLangs( | 927 GetContentClient()->browser()->GetAcceptLangs( |
| 927 GetBrowserContext()); | 928 GetBrowserContext()); |
| 928 if (entry) { | 929 if (entry) { |
| 929 return entry->GetTitleForDisplay(accept_languages); | 930 return entry->GetTitleForDisplay(accept_languages); |
| 930 } | 931 } |
| 931 WebUI* our_web_ui = GetRenderManager()->pending_web_ui() ? | 932 WebUI* our_web_ui = GetRenderManager()->GetNavigatingWebUI() |
| 932 GetRenderManager()->pending_web_ui() : GetRenderManager()->web_ui(); | 933 ? GetRenderManager()->GetNavigatingWebUI() |
| 934 : GetRenderManager()->web_ui(); |
| 933 if (our_web_ui) { | 935 if (our_web_ui) { |
| 934 // Don't override the title in view source mode. | 936 // Don't override the title in view source mode. |
| 935 entry = controller_.GetVisibleEntry(); | 937 entry = controller_.GetVisibleEntry(); |
| 936 if (!(entry && entry->IsViewSourceMode())) { | 938 if (!(entry && entry->IsViewSourceMode())) { |
| 937 // Give the Web UI the chance to override our title. | 939 // Give the Web UI the chance to override our title. |
| 938 const base::string16& title = our_web_ui->GetOverriddenTitle(); | 940 const base::string16& title = our_web_ui->GetOverriddenTitle(); |
| 939 if (!title.empty()) | 941 if (!title.empty()) |
| 940 return title; | 942 return title; |
| 941 } | 943 } |
| 942 } | 944 } |
| (...skipping 2853 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3796 return; | 3798 return; |
| 3797 | 3799 |
| 3798 if (delegate_) | 3800 if (delegate_) |
| 3799 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); | 3801 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); |
| 3800 | 3802 |
| 3801 NotificationService::current()->Notify( | 3803 NotificationService::current()->Notify( |
| 3802 NOTIFICATION_WEB_CONTENTS_RENDER_VIEW_HOST_CREATED, | 3804 NOTIFICATION_WEB_CONTENTS_RENDER_VIEW_HOST_CREATED, |
| 3803 Source<WebContents>(this), | 3805 Source<WebContents>(this), |
| 3804 Details<RenderViewHost>(render_view_host)); | 3806 Details<RenderViewHost>(render_view_host)); |
| 3805 | 3807 |
| 3806 // When we're creating views, we're still doing initial setup, so we always | |
| 3807 // use the pending Web UI rather than any possibly existing committed one. | |
| 3808 if (GetRenderManager()->pending_web_ui()) | |
| 3809 GetRenderManager()->pending_web_ui()->RenderViewCreated(render_view_host); | |
| 3810 | |
| 3811 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | |
| 3812 switches::kEnableBrowserSideNavigation) && | |
| 3813 GetRenderManager()->speculative_web_ui()) { | |
| 3814 GetRenderManager()->speculative_web_ui()->RenderViewCreated( | |
| 3815 render_view_host); | |
| 3816 } | |
| 3817 | |
| 3818 NavigationEntry* entry = controller_.GetPendingEntry(); | 3808 NavigationEntry* entry = controller_.GetPendingEntry(); |
| 3819 if (entry && entry->IsViewSourceMode()) { | 3809 if (entry && entry->IsViewSourceMode()) { |
| 3820 // Put the renderer in view source mode. | 3810 // Put the renderer in view source mode. |
| 3821 render_view_host->Send( | 3811 render_view_host->Send( |
| 3822 new ViewMsg_EnableViewSourceMode(render_view_host->GetRoutingID())); | 3812 new ViewMsg_EnableViewSourceMode(render_view_host->GetRoutingID())); |
| 3823 } | 3813 } |
| 3824 | 3814 |
| 3825 view_->RenderViewCreated(render_view_host); | 3815 view_->RenderViewCreated(render_view_host); |
| 3826 | 3816 |
| 3827 FOR_EACH_OBSERVER( | 3817 FOR_EACH_OBSERVER( |
| (...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4195 source_id); | 4185 source_id); |
| 4196 } | 4186 } |
| 4197 | 4187 |
| 4198 int WebContentsImpl::CreateSwappedOutRenderView( | 4188 int WebContentsImpl::CreateSwappedOutRenderView( |
| 4199 SiteInstance* instance) { | 4189 SiteInstance* instance) { |
| 4200 int render_view_routing_id = MSG_ROUTING_NONE; | 4190 int render_view_routing_id = MSG_ROUTING_NONE; |
| 4201 if (SiteIsolationPolicy::IsSwappedOutStateForbidden()) { | 4191 if (SiteIsolationPolicy::IsSwappedOutStateForbidden()) { |
| 4202 GetRenderManager()->CreateRenderFrameProxy(instance); | 4192 GetRenderManager()->CreateRenderFrameProxy(instance); |
| 4203 } else { | 4193 } else { |
| 4204 GetRenderManager()->CreateRenderFrame( | 4194 GetRenderManager()->CreateRenderFrame( |
| 4205 instance, nullptr, CREATE_RF_SWAPPED_OUT | CREATE_RF_HIDDEN, | 4195 instance, CREATE_RF_SWAPPED_OUT | CREATE_RF_HIDDEN, |
| 4206 &render_view_routing_id); | 4196 &render_view_routing_id); |
| 4207 } | 4197 } |
| 4208 return render_view_routing_id; | 4198 return render_view_routing_id; |
| 4209 } | 4199 } |
| 4210 | 4200 |
| 4211 void WebContentsImpl::OnUserGesture() { | 4201 void WebContentsImpl::OnUserGesture() { |
| 4212 // Notify observers. | 4202 // Notify observers. |
| 4213 FOR_EACH_OBSERVER(WebContentsObserver, observers_, DidGetUserGesture()); | 4203 FOR_EACH_OBSERVER(WebContentsObserver, observers_, DidGetUserGesture()); |
| 4214 | 4204 |
| 4215 ResourceDispatcherHostImpl* rdh = ResourceDispatcherHostImpl::Get(); | 4205 ResourceDispatcherHostImpl* rdh = ResourceDispatcherHostImpl::Get(); |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4362 void WebContentsImpl::NotifyMainFrameSwappedFromRenderManager( | 4352 void WebContentsImpl::NotifyMainFrameSwappedFromRenderManager( |
| 4363 RenderViewHost* old_host, | 4353 RenderViewHost* old_host, |
| 4364 RenderViewHost* new_host) { | 4354 RenderViewHost* new_host) { |
| 4365 NotifyViewSwapped(old_host, new_host); | 4355 NotifyViewSwapped(old_host, new_host); |
| 4366 } | 4356 } |
| 4367 | 4357 |
| 4368 NavigationControllerImpl& WebContentsImpl::GetControllerForRenderManager() { | 4358 NavigationControllerImpl& WebContentsImpl::GetControllerForRenderManager() { |
| 4369 return GetController(); | 4359 return GetController(); |
| 4370 } | 4360 } |
| 4371 | 4361 |
| 4372 scoped_ptr<WebUIImpl> WebContentsImpl::CreateWebUIForRenderManager( | 4362 scoped_ptr<WebUIImpl> WebContentsImpl::CreateWebUIForRenderFrameHost( |
| 4373 const GURL& url) { | 4363 const GURL& url) { |
| 4374 return scoped_ptr<WebUIImpl>(static_cast<WebUIImpl*>(CreateWebUI( | 4364 return scoped_ptr<WebUIImpl>(static_cast<WebUIImpl*>(CreateWebUI( |
| 4375 url, std::string()))); | 4365 url, std::string()))); |
| 4376 } | 4366 } |
| 4377 | 4367 |
| 4378 NavigationEntry* | 4368 NavigationEntry* |
| 4379 WebContentsImpl::GetLastCommittedNavigationEntryForRenderManager() { | 4369 WebContentsImpl::GetLastCommittedNavigationEntryForRenderManager() { |
| 4380 return controller_.GetLastCommittedEntry(); | 4370 return controller_.GetLastCommittedEntry(); |
| 4381 } | 4371 } |
| 4382 | 4372 |
| (...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4679 return NULL; | 4669 return NULL; |
| 4680 } | 4670 } |
| 4681 | 4671 |
| 4682 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) { | 4672 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) { |
| 4683 force_disable_overscroll_content_ = force_disable; | 4673 force_disable_overscroll_content_ = force_disable; |
| 4684 if (view_) | 4674 if (view_) |
| 4685 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); | 4675 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); |
| 4686 } | 4676 } |
| 4687 | 4677 |
| 4688 } // namespace content | 4678 } // namespace content |
| OLD | NEW |