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

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

Issue 1352813006: Move WebUI ownership from the RenderFrameHostManager to the RenderFrameHost. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Minor changes to adress latest CR comments. 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/lazy_instance.h" 10 #include "base/lazy_instance.h"
(...skipping 822 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698