Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Side by Side Diff: content/browser/web_contents/web_contents_impl.cc

Issue 1426403006: Reland #1 of: Move WebUI ownership from the RenderFrameHostManager to the RenderFrameHost. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/debug/crash_logging.h" 10 #include "base/debug/crash_logging.h"
(...skipping 823 matching lines...) Expand 10 before | Expand all | Expand 10 after
834 GetMainFrame()->RequestAXTreeSnapshot(callback); 834 GetMainFrame()->RequestAXTreeSnapshot(callback);
835 } 835 }
836 836
837 WebUI* WebContentsImpl::CreateSubframeWebUI(const GURL& url, 837 WebUI* WebContentsImpl::CreateSubframeWebUI(const GURL& url,
838 const std::string& frame_name) { 838 const std::string& frame_name) {
839 DCHECK(!frame_name.empty()); 839 DCHECK(!frame_name.empty());
840 return CreateWebUI(url, frame_name); 840 return CreateWebUI(url, frame_name);
841 } 841 }
842 842
843 WebUI* WebContentsImpl::GetWebUI() const { 843 WebUI* WebContentsImpl::GetWebUI() const {
844 return GetRenderManager()->web_ui() ? GetRenderManager()->web_ui() 844 return GetRenderManager()->web_ui()
845 : GetRenderManager()->pending_web_ui(); 845 ? GetRenderManager()->web_ui()
846 : GetRenderManager()->GetNavigatingWebUI();
846 } 847 }
847 848
848 WebUI* WebContentsImpl::GetCommittedWebUI() const { 849 WebUI* WebContentsImpl::GetCommittedWebUI() const {
849 return GetRenderManager()->web_ui(); 850 return GetRenderManager()->web_ui();
850 } 851 }
851 852
852 void WebContentsImpl::SetUserAgentOverride(const std::string& override) { 853 void WebContentsImpl::SetUserAgentOverride(const std::string& override) {
853 if (GetUserAgentOverride() == override) 854 if (GetUserAgentOverride() == override)
854 return; 855 return;
855 856
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
906 const base::string16& WebContentsImpl::GetTitle() const { 907 const base::string16& WebContentsImpl::GetTitle() const {
907 // Transient entries take precedence. They are used for interstitial pages 908 // Transient entries take precedence. They are used for interstitial pages
908 // that are shown on top of existing pages. 909 // that are shown on top of existing pages.
909 NavigationEntry* entry = controller_.GetTransientEntry(); 910 NavigationEntry* entry = controller_.GetTransientEntry();
910 std::string accept_languages = 911 std::string accept_languages =
911 GetContentClient()->browser()->GetAcceptLangs( 912 GetContentClient()->browser()->GetAcceptLangs(
912 GetBrowserContext()); 913 GetBrowserContext());
913 if (entry) { 914 if (entry) {
914 return entry->GetTitleForDisplay(accept_languages); 915 return entry->GetTitleForDisplay(accept_languages);
915 } 916 }
916 WebUI* our_web_ui = GetRenderManager()->pending_web_ui() ? 917 WebUI* our_web_ui = GetRenderManager()->GetNavigatingWebUI()
917 GetRenderManager()->pending_web_ui() : GetRenderManager()->web_ui(); 918 ? GetRenderManager()->GetNavigatingWebUI()
919 : GetRenderManager()->web_ui();
918 if (our_web_ui) { 920 if (our_web_ui) {
919 // Don't override the title in view source mode. 921 // Don't override the title in view source mode.
920 entry = controller_.GetVisibleEntry(); 922 entry = controller_.GetVisibleEntry();
921 if (!(entry && entry->IsViewSourceMode())) { 923 if (!(entry && entry->IsViewSourceMode())) {
922 // Give the Web UI the chance to override our title. 924 // Give the Web UI the chance to override our title.
923 const base::string16& title = our_web_ui->GetOverriddenTitle(); 925 const base::string16& title = our_web_ui->GetOverriddenTitle();
924 if (!title.empty()) 926 if (!title.empty())
925 return title; 927 return title;
926 } 928 }
927 } 929 }
(...skipping 2855 matching lines...) Expand 10 before | Expand all | Expand 10 after
3783 return; 3785 return;
3784 3786
3785 if (delegate_) 3787 if (delegate_)
3786 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); 3788 view_->SetOverscrollControllerEnabled(CanOverscrollContent());
3787 3789
3788 NotificationService::current()->Notify( 3790 NotificationService::current()->Notify(
3789 NOTIFICATION_WEB_CONTENTS_RENDER_VIEW_HOST_CREATED, 3791 NOTIFICATION_WEB_CONTENTS_RENDER_VIEW_HOST_CREATED,
3790 Source<WebContents>(this), 3792 Source<WebContents>(this),
3791 Details<RenderViewHost>(render_view_host)); 3793 Details<RenderViewHost>(render_view_host));
3792 3794
3793 // When we're creating views, we're still doing initial setup, so we always
3794 // use the pending Web UI rather than any possibly existing committed one.
3795 if (GetRenderManager()->pending_web_ui())
3796 GetRenderManager()->pending_web_ui()->RenderViewCreated(render_view_host);
3797
3798 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
3799 switches::kEnableBrowserSideNavigation) &&
3800 GetRenderManager()->speculative_web_ui()) {
3801 GetRenderManager()->speculative_web_ui()->RenderViewCreated(
3802 render_view_host);
3803 }
3804
3805 NavigationEntry* entry = controller_.GetPendingEntry(); 3795 NavigationEntry* entry = controller_.GetPendingEntry();
3806 if (entry && entry->IsViewSourceMode()) { 3796 if (entry && entry->IsViewSourceMode()) {
3807 // Put the renderer in view source mode. 3797 // Put the renderer in view source mode.
3808 render_view_host->Send( 3798 render_view_host->Send(
3809 new ViewMsg_EnableViewSourceMode(render_view_host->GetRoutingID())); 3799 new ViewMsg_EnableViewSourceMode(render_view_host->GetRoutingID()));
3810 } 3800 }
3811 3801
3812 view_->RenderViewCreated(render_view_host); 3802 view_->RenderViewCreated(render_view_host);
3813 3803
3814 FOR_EACH_OBSERVER( 3804 FOR_EACH_OBSERVER(
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
4248 source_id); 4238 source_id);
4249 } 4239 }
4250 4240
4251 int WebContentsImpl::CreateSwappedOutRenderView( 4241 int WebContentsImpl::CreateSwappedOutRenderView(
4252 SiteInstance* instance) { 4242 SiteInstance* instance) {
4253 int render_view_routing_id = MSG_ROUTING_NONE; 4243 int render_view_routing_id = MSG_ROUTING_NONE;
4254 if (SiteIsolationPolicy::IsSwappedOutStateForbidden()) { 4244 if (SiteIsolationPolicy::IsSwappedOutStateForbidden()) {
4255 GetRenderManager()->CreateRenderFrameProxy(instance); 4245 GetRenderManager()->CreateRenderFrameProxy(instance);
4256 } else { 4246 } else {
4257 GetRenderManager()->CreateRenderFrame( 4247 GetRenderManager()->CreateRenderFrame(
4258 instance, nullptr, CREATE_RF_SWAPPED_OUT | CREATE_RF_HIDDEN, 4248 instance, CREATE_RF_SWAPPED_OUT | CREATE_RF_HIDDEN,
4259 &render_view_routing_id); 4249 &render_view_routing_id);
4260 } 4250 }
4261 return render_view_routing_id; 4251 return render_view_routing_id;
4262 } 4252 }
4263 4253
4264 void WebContentsImpl::OnUserGesture() { 4254 void WebContentsImpl::OnUserGesture() {
4265 // Notify observers. 4255 // Notify observers.
4266 FOR_EACH_OBSERVER(WebContentsObserver, observers_, DidGetUserGesture()); 4256 FOR_EACH_OBSERVER(WebContentsObserver, observers_, DidGetUserGesture());
4267 4257
4268 ResourceDispatcherHostImpl* rdh = ResourceDispatcherHostImpl::Get(); 4258 ResourceDispatcherHostImpl* rdh = ResourceDispatcherHostImpl::Get();
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
4415 void WebContentsImpl::NotifyMainFrameSwappedFromRenderManager( 4405 void WebContentsImpl::NotifyMainFrameSwappedFromRenderManager(
4416 RenderViewHost* old_host, 4406 RenderViewHost* old_host,
4417 RenderViewHost* new_host) { 4407 RenderViewHost* new_host) {
4418 NotifyViewSwapped(old_host, new_host); 4408 NotifyViewSwapped(old_host, new_host);
4419 } 4409 }
4420 4410
4421 NavigationControllerImpl& WebContentsImpl::GetControllerForRenderManager() { 4411 NavigationControllerImpl& WebContentsImpl::GetControllerForRenderManager() {
4422 return GetController(); 4412 return GetController();
4423 } 4413 }
4424 4414
4425 scoped_ptr<WebUIImpl> WebContentsImpl::CreateWebUIForRenderManager( 4415 scoped_ptr<WebUIImpl> WebContentsImpl::CreateWebUIForRenderFrameHost(
4426 const GURL& url) { 4416 const GURL& url) {
4427 return scoped_ptr<WebUIImpl>(static_cast<WebUIImpl*>(CreateWebUI( 4417 return scoped_ptr<WebUIImpl>(static_cast<WebUIImpl*>(CreateWebUI(
4428 url, std::string()))); 4418 url, std::string())));
4429 } 4419 }
4430 4420
4431 NavigationEntry* 4421 NavigationEntry*
4432 WebContentsImpl::GetLastCommittedNavigationEntryForRenderManager() { 4422 WebContentsImpl::GetLastCommittedNavigationEntryForRenderManager() {
4433 return controller_.GetLastCommittedEntry(); 4423 return controller_.GetLastCommittedEntry();
4434 } 4424 }
4435 4425
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after
4732 return NULL; 4722 return NULL;
4733 } 4723 }
4734 4724
4735 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) { 4725 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) {
4736 force_disable_overscroll_content_ = force_disable; 4726 force_disable_overscroll_content_ = force_disable;
4737 if (view_) 4727 if (view_)
4738 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); 4728 view_->SetOverscrollControllerEnabled(CanOverscrollContent());
4739 } 4729 }
4740 4730
4741 } // namespace content 4731 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698