| 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 822 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 833 GetMainFrame()->RequestAXTreeSnapshot(callback); | 833 GetMainFrame()->RequestAXTreeSnapshot(callback); |
| 834 } | 834 } |
| 835 | 835 |
| 836 WebUI* WebContentsImpl::CreateSubframeWebUI(const GURL& url, | 836 WebUI* WebContentsImpl::CreateSubframeWebUI(const GURL& url, |
| 837 const std::string& frame_name) { | 837 const std::string& frame_name) { |
| 838 DCHECK(!frame_name.empty()); | 838 DCHECK(!frame_name.empty()); |
| 839 return CreateWebUI(url, frame_name); | 839 return CreateWebUI(url, frame_name); |
| 840 } | 840 } |
| 841 | 841 |
| 842 WebUI* WebContentsImpl::GetWebUI() const { | 842 WebUI* WebContentsImpl::GetWebUI() const { |
| 843 return GetRenderManager()->web_ui() ? GetRenderManager()->web_ui() | 843 return GetRenderManager()->web_ui() |
| 844 : GetRenderManager()->pending_web_ui(); | 844 ? GetRenderManager()->web_ui() |
| 845 : GetRenderManager()->GetNavigatingWebUI(); |
| 845 } | 846 } |
| 846 | 847 |
| 847 WebUI* WebContentsImpl::GetCommittedWebUI() const { | 848 WebUI* WebContentsImpl::GetCommittedWebUI() const { |
| 848 return GetRenderManager()->web_ui(); | 849 return GetRenderManager()->web_ui(); |
| 849 } | 850 } |
| 850 | 851 |
| 851 void WebContentsImpl::SetUserAgentOverride(const std::string& override) { | 852 void WebContentsImpl::SetUserAgentOverride(const std::string& override) { |
| 852 if (GetUserAgentOverride() == override) | 853 if (GetUserAgentOverride() == override) |
| 853 return; | 854 return; |
| 854 | 855 |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 905 const base::string16& WebContentsImpl::GetTitle() const { | 906 const base::string16& WebContentsImpl::GetTitle() const { |
| 906 // Transient entries take precedence. They are used for interstitial pages | 907 // Transient entries take precedence. They are used for interstitial pages |
| 907 // that are shown on top of existing pages. | 908 // that are shown on top of existing pages. |
| 908 NavigationEntry* entry = controller_.GetTransientEntry(); | 909 NavigationEntry* entry = controller_.GetTransientEntry(); |
| 909 std::string accept_languages = | 910 std::string accept_languages = |
| 910 GetContentClient()->browser()->GetAcceptLangs( | 911 GetContentClient()->browser()->GetAcceptLangs( |
| 911 GetBrowserContext()); | 912 GetBrowserContext()); |
| 912 if (entry) { | 913 if (entry) { |
| 913 return entry->GetTitleForDisplay(accept_languages); | 914 return entry->GetTitleForDisplay(accept_languages); |
| 914 } | 915 } |
| 915 WebUI* our_web_ui = GetRenderManager()->pending_web_ui() ? | 916 WebUI* our_web_ui = GetRenderManager()->GetNavigatingWebUI() |
| 916 GetRenderManager()->pending_web_ui() : GetRenderManager()->web_ui(); | 917 ? GetRenderManager()->GetNavigatingWebUI() |
| 918 : GetRenderManager()->web_ui(); |
| 917 if (our_web_ui) { | 919 if (our_web_ui) { |
| 918 // Don't override the title in view source mode. | 920 // Don't override the title in view source mode. |
| 919 entry = controller_.GetVisibleEntry(); | 921 entry = controller_.GetVisibleEntry(); |
| 920 if (!(entry && entry->IsViewSourceMode())) { | 922 if (!(entry && entry->IsViewSourceMode())) { |
| 921 // Give the Web UI the chance to override our title. | 923 // Give the Web UI the chance to override our title. |
| 922 const base::string16& title = our_web_ui->GetOverriddenTitle(); | 924 const base::string16& title = our_web_ui->GetOverriddenTitle(); |
| 923 if (!title.empty()) | 925 if (!title.empty()) |
| 924 return title; | 926 return title; |
| 925 } | 927 } |
| 926 } | 928 } |
| (...skipping 2845 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3772 return; | 3774 return; |
| 3773 | 3775 |
| 3774 if (delegate_) | 3776 if (delegate_) |
| 3775 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); | 3777 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); |
| 3776 | 3778 |
| 3777 NotificationService::current()->Notify( | 3779 NotificationService::current()->Notify( |
| 3778 NOTIFICATION_WEB_CONTENTS_RENDER_VIEW_HOST_CREATED, | 3780 NOTIFICATION_WEB_CONTENTS_RENDER_VIEW_HOST_CREATED, |
| 3779 Source<WebContents>(this), | 3781 Source<WebContents>(this), |
| 3780 Details<RenderViewHost>(render_view_host)); | 3782 Details<RenderViewHost>(render_view_host)); |
| 3781 | 3783 |
| 3782 // When we're creating views, we're still doing initial setup, so we always | |
| 3783 // use the pending Web UI rather than any possibly existing committed one. | |
| 3784 if (GetRenderManager()->pending_web_ui()) | |
| 3785 GetRenderManager()->pending_web_ui()->RenderViewCreated(render_view_host); | |
| 3786 | |
| 3787 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | |
| 3788 switches::kEnableBrowserSideNavigation) && | |
| 3789 GetRenderManager()->speculative_web_ui()) { | |
| 3790 GetRenderManager()->speculative_web_ui()->RenderViewCreated( | |
| 3791 render_view_host); | |
| 3792 } | |
| 3793 | |
| 3794 NavigationEntry* entry = controller_.GetPendingEntry(); | 3784 NavigationEntry* entry = controller_.GetPendingEntry(); |
| 3795 if (entry && entry->IsViewSourceMode()) { | 3785 if (entry && entry->IsViewSourceMode()) { |
| 3796 // Put the renderer in view source mode. | 3786 // Put the renderer in view source mode. |
| 3797 render_view_host->Send( | 3787 render_view_host->Send( |
| 3798 new ViewMsg_EnableViewSourceMode(render_view_host->GetRoutingID())); | 3788 new ViewMsg_EnableViewSourceMode(render_view_host->GetRoutingID())); |
| 3799 } | 3789 } |
| 3800 | 3790 |
| 3801 view_->RenderViewCreated(render_view_host); | 3791 view_->RenderViewCreated(render_view_host); |
| 3802 | 3792 |
| 3803 FOR_EACH_OBSERVER( | 3793 FOR_EACH_OBSERVER( |
| (...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4171 source_id); | 4161 source_id); |
| 4172 } | 4162 } |
| 4173 | 4163 |
| 4174 int WebContentsImpl::CreateSwappedOutRenderView( | 4164 int WebContentsImpl::CreateSwappedOutRenderView( |
| 4175 SiteInstance* instance) { | 4165 SiteInstance* instance) { |
| 4176 int render_view_routing_id = MSG_ROUTING_NONE; | 4166 int render_view_routing_id = MSG_ROUTING_NONE; |
| 4177 if (SiteIsolationPolicy::IsSwappedOutStateForbidden()) { | 4167 if (SiteIsolationPolicy::IsSwappedOutStateForbidden()) { |
| 4178 GetRenderManager()->CreateRenderFrameProxy(instance); | 4168 GetRenderManager()->CreateRenderFrameProxy(instance); |
| 4179 } else { | 4169 } else { |
| 4180 GetRenderManager()->CreateRenderFrame( | 4170 GetRenderManager()->CreateRenderFrame( |
| 4181 instance, nullptr, CREATE_RF_SWAPPED_OUT | CREATE_RF_HIDDEN, | 4171 instance, CREATE_RF_SWAPPED_OUT | CREATE_RF_HIDDEN, |
| 4182 &render_view_routing_id); | 4172 &render_view_routing_id); |
| 4183 } | 4173 } |
| 4184 return render_view_routing_id; | 4174 return render_view_routing_id; |
| 4185 } | 4175 } |
| 4186 | 4176 |
| 4187 void WebContentsImpl::OnUserGesture() { | 4177 void WebContentsImpl::OnUserGesture() { |
| 4188 // Notify observers. | 4178 // Notify observers. |
| 4189 FOR_EACH_OBSERVER(WebContentsObserver, observers_, DidGetUserGesture()); | 4179 FOR_EACH_OBSERVER(WebContentsObserver, observers_, DidGetUserGesture()); |
| 4190 | 4180 |
| 4191 ResourceDispatcherHostImpl* rdh = ResourceDispatcherHostImpl::Get(); | 4181 ResourceDispatcherHostImpl* rdh = ResourceDispatcherHostImpl::Get(); |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4338 void WebContentsImpl::NotifyMainFrameSwappedFromRenderManager( | 4328 void WebContentsImpl::NotifyMainFrameSwappedFromRenderManager( |
| 4339 RenderViewHost* old_host, | 4329 RenderViewHost* old_host, |
| 4340 RenderViewHost* new_host) { | 4330 RenderViewHost* new_host) { |
| 4341 NotifyViewSwapped(old_host, new_host); | 4331 NotifyViewSwapped(old_host, new_host); |
| 4342 } | 4332 } |
| 4343 | 4333 |
| 4344 NavigationControllerImpl& WebContentsImpl::GetControllerForRenderManager() { | 4334 NavigationControllerImpl& WebContentsImpl::GetControllerForRenderManager() { |
| 4345 return GetController(); | 4335 return GetController(); |
| 4346 } | 4336 } |
| 4347 | 4337 |
| 4348 scoped_ptr<WebUIImpl> WebContentsImpl::CreateWebUIForRenderManager( | 4338 scoped_ptr<WebUIImpl> WebContentsImpl::CreateWebUIForRenderFrameHost( |
| 4349 const GURL& url) { | 4339 const GURL& url) { |
| 4350 return scoped_ptr<WebUIImpl>(static_cast<WebUIImpl*>(CreateWebUI( | 4340 return scoped_ptr<WebUIImpl>(static_cast<WebUIImpl*>(CreateWebUI( |
| 4351 url, std::string()))); | 4341 url, std::string()))); |
| 4352 } | 4342 } |
| 4353 | 4343 |
| 4354 NavigationEntry* | 4344 NavigationEntry* |
| 4355 WebContentsImpl::GetLastCommittedNavigationEntryForRenderManager() { | 4345 WebContentsImpl::GetLastCommittedNavigationEntryForRenderManager() { |
| 4356 return controller_.GetLastCommittedEntry(); | 4346 return controller_.GetLastCommittedEntry(); |
| 4357 } | 4347 } |
| 4358 | 4348 |
| (...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4655 return NULL; | 4645 return NULL; |
| 4656 } | 4646 } |
| 4657 | 4647 |
| 4658 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) { | 4648 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) { |
| 4659 force_disable_overscroll_content_ = force_disable; | 4649 force_disable_overscroll_content_ = force_disable; |
| 4660 if (view_) | 4650 if (view_) |
| 4661 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); | 4651 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); |
| 4662 } | 4652 } |
| 4663 | 4653 |
| 4664 } // namespace content | 4654 } // namespace content |
| OLD | NEW |