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

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

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

Powered by Google App Engine
This is Rietveld 408576698