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

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: Fixed header 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 838 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698