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

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

Issue 1413643002: Separate RenderViewHost from RenderWidgetHost, part 2: public implementation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 5 years, 2 months 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 1180 matching lines...) Expand 10 before | Expand all | Expand 10 after
1191 #endif 1191 #endif
1192 } 1192 }
1193 } 1193 }
1194 1194
1195 last_active_time_ = base::TimeTicks::Now(); 1195 last_active_time_ = base::TimeTicks::Now();
1196 1196
1197 // The resize rect might have changed while this was inactive -- send the new 1197 // The resize rect might have changed while this was inactive -- send the new
1198 // one to make sure it's up to date. 1198 // one to make sure it's up to date.
1199 RenderViewHostImpl* rvh = GetRenderViewHost(); 1199 RenderViewHostImpl* rvh = GetRenderViewHost();
1200 if (rvh) 1200 if (rvh)
1201 rvh->ResizeRectChanged(GetRootWindowResizerRect()); 1201 rvh->GetWidget()->ResizeRectChanged(GetRootWindowResizerRect());
1202 1202
1203 // Restore power save blocker if there are active video players running. 1203 // Restore power save blocker if there are active video players running.
1204 if (!active_video_players_.empty() && !video_power_save_blocker_) 1204 if (!active_video_players_.empty() && !video_power_save_blocker_)
1205 CreateVideoPowerSaveBlocker(); 1205 CreateVideoPowerSaveBlocker();
1206 1206
1207 FOR_EACH_OBSERVER(WebContentsObserver, observers_, WasShown()); 1207 FOR_EACH_OBSERVER(WebContentsObserver, observers_, WasShown());
1208 1208
1209 should_normally_be_visible_ = true; 1209 should_normally_be_visible_ = true;
1210 } 1210 }
1211 1211
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
1400 if (browser_plugin_guest_) 1400 if (browser_plugin_guest_)
1401 browser_plugin_guest_->Init(); 1401 browser_plugin_guest_->Init();
1402 1402
1403 for (size_t i = 0; i < g_created_callbacks.Get().size(); i++) 1403 for (size_t i = 0; i < g_created_callbacks.Get().size(); i++)
1404 g_created_callbacks.Get().at(i).Run(this); 1404 g_created_callbacks.Get().at(i).Run(this);
1405 1405
1406 // If the WebContents creation was renderer-initiated, it means that the 1406 // If the WebContents creation was renderer-initiated, it means that the
1407 // corresponding RenderView and main RenderFrame have already been created. 1407 // corresponding RenderView and main RenderFrame have already been created.
1408 // Ensure observers are notified about this. 1408 // Ensure observers are notified about this.
1409 if (params.renderer_initiated_creation) { 1409 if (params.renderer_initiated_creation) {
1410 GetRenderViewHost()->set_renderer_initialized(true); 1410 GetRenderViewHost()->GetWidget()->set_renderer_initialized(true);
1411 RenderViewCreated(GetRenderViewHost()); 1411 RenderViewCreated(GetRenderViewHost());
1412 GetRenderManager()->current_frame_host()->SetRenderFrameCreated(true); 1412 GetRenderManager()->current_frame_host()->SetRenderFrameCreated(true);
1413 } 1413 }
1414 1414
1415 // Ensure that observers are notified of the creation of this WebContents's 1415 // Ensure that observers are notified of the creation of this WebContents's
1416 // main RenderFrameHost. It must be done here for main frames, since the 1416 // main RenderFrameHost. It must be done here for main frames, since the
1417 // NotifySwappedFromRenderManager expects view_ to already be created and that 1417 // NotifySwappedFromRenderManager expects view_ to already be created and that
1418 // happens after RenderFrameHostManager::Init. 1418 // happens after RenderFrameHostManager::Init.
1419 NotifySwappedFromRenderManager( 1419 NotifySwappedFromRenderManager(
1420 nullptr, GetRenderManager()->current_frame_host(), true); 1420 nullptr, GetRenderManager()->current_frame_host(), true);
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
1771 new_contents->GetRenderManager()->CreateProxiesForNewNamedFrame(); 1771 new_contents->GetRenderManager()->CreateProxiesForNewNamedFrame();
1772 1772
1773 // Save the window for later if we're not suppressing the opener (since it 1773 // Save the window for later if we're not suppressing the opener (since it
1774 // will be shown immediately). 1774 // will be shown immediately).
1775 if (!params.opener_suppressed) { 1775 if (!params.opener_suppressed) {
1776 if (!is_guest) { 1776 if (!is_guest) {
1777 WebContentsView* new_view = new_contents->view_.get(); 1777 WebContentsView* new_view = new_contents->view_.get();
1778 1778
1779 // TODO(brettw): It seems bogus that we have to call this function on the 1779 // TODO(brettw): It seems bogus that we have to call this function on the
1780 // newly created object and give it one of its own member variables. 1780 // newly created object and give it one of its own member variables.
1781 new_view->CreateViewForWidget(new_contents->GetRenderViewHost(), false); 1781 new_view->CreateViewForWidget(
1782 new_contents->GetRenderViewHost()->GetWidget(), false);
1782 } 1783 }
1783 // Save the created window associated with the route so we can show it 1784 // Save the created window associated with the route so we can show it
1784 // later. 1785 // later.
1785 DCHECK_NE(MSG_ROUTING_NONE, route_id); 1786 DCHECK_NE(MSG_ROUTING_NONE, route_id);
1786 pending_contents_[route_id] = new_contents; 1787 pending_contents_[route_id] = new_contents;
1787 AddDestructionObserver(new_contents); 1788 AddDestructionObserver(new_contents);
1788 } 1789 }
1789 1790
1790 if (delegate_) { 1791 if (delegate_) {
1791 delegate_->WebContentsCreated( 1792 delegate_->WebContentsCreated(
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
1964 1965
1965 WebContentsImpl* new_contents = iter->second; 1966 WebContentsImpl* new_contents = iter->second;
1966 pending_contents_.erase(route_id); 1967 pending_contents_.erase(route_id);
1967 RemoveDestructionObserver(new_contents); 1968 RemoveDestructionObserver(new_contents);
1968 1969
1969 // Don't initialize the guest WebContents immediately. 1970 // Don't initialize the guest WebContents immediately.
1970 if (BrowserPluginGuest::IsGuest(new_contents)) 1971 if (BrowserPluginGuest::IsGuest(new_contents))
1971 return new_contents; 1972 return new_contents;
1972 1973
1973 if (!new_contents->GetRenderProcessHost()->HasConnection() || 1974 if (!new_contents->GetRenderProcessHost()->HasConnection() ||
1974 !new_contents->GetRenderViewHost()->GetView()) 1975 !new_contents->GetRenderViewHost()->GetWidget()->GetView())
1975 return NULL; 1976 return NULL;
1976 1977
1977 return new_contents; 1978 return new_contents;
1978 } 1979 }
1979 1980
1980 RenderWidgetHostView* WebContentsImpl::GetCreatedWidget(int route_id) { 1981 RenderWidgetHostView* WebContentsImpl::GetCreatedWidget(int route_id) {
1981 PendingWidgetViews::iterator iter = pending_widget_views_.find(route_id); 1982 PendingWidgetViews::iterator iter = pending_widget_views_.find(route_id);
1982 if (iter == pending_widget_views_.end()) { 1983 if (iter == pending_widget_views_.end()) {
1983 DCHECK(false); 1984 DCHECK(false);
1984 return NULL; 1985 return NULL;
(...skipping 643 matching lines...) Expand 10 before | Expand all | Expand 10 after
2628 2629
2629 gfx::Size WebContentsImpl::GetPreferredSize() const { 2630 gfx::Size WebContentsImpl::GetPreferredSize() const {
2630 return capturer_count_ == 0 ? preferred_size_ : preferred_size_for_capture_; 2631 return capturer_count_ == 0 ? preferred_size_ : preferred_size_for_capture_;
2631 } 2632 }
2632 2633
2633 bool WebContentsImpl::GotResponseToLockMouseRequest(bool allowed) { 2634 bool WebContentsImpl::GotResponseToLockMouseRequest(bool allowed) {
2634 if (GetBrowserPluginGuest()) 2635 if (GetBrowserPluginGuest())
2635 return GetBrowserPluginGuest()->LockMouse(allowed); 2636 return GetBrowserPluginGuest()->LockMouse(allowed);
2636 2637
2637 return GetRenderViewHost() 2638 return GetRenderViewHost()
2638 ? GetRenderViewHost()->GotResponseToLockMouseRequest(allowed) 2639 ? GetRenderViewHost()->GetWidget()->GotResponseToLockMouseRequest(
2640 allowed)
2639 : false; 2641 : false;
2640 } 2642 }
2641 2643
2642 bool WebContentsImpl::HasOpener() const { 2644 bool WebContentsImpl::HasOpener() const {
2643 return GetOpener() != NULL; 2645 return GetOpener() != NULL;
2644 } 2646 }
2645 2647
2646 WebContentsImpl* WebContentsImpl::GetOpener() const { 2648 WebContentsImpl* WebContentsImpl::GetOpener() const {
2647 FrameTreeNode* opener_ftn = frame_tree_.root()->opener(); 2649 FrameTreeNode* opener_ftn = frame_tree_.root()->opener();
2648 return opener_ftn ? FromFrameTreeNode(opener_ftn) : nullptr; 2650 return opener_ftn ? FromFrameTreeNode(opener_ftn) : nullptr;
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
2750 void WebContentsImpl::GetManifest(const GetManifestCallback& callback) { 2752 void WebContentsImpl::GetManifest(const GetManifestCallback& callback) {
2751 manifest_manager_host_->GetManifest(GetMainFrame(), callback); 2753 manifest_manager_host_->GetManifest(GetMainFrame(), callback);
2752 } 2754 }
2753 2755
2754 void WebContentsImpl::HasManifest(const HasManifestCallback& callback) { 2756 void WebContentsImpl::HasManifest(const HasManifestCallback& callback) {
2755 manifest_manager_host_->HasManifest(GetMainFrame(), callback); 2757 manifest_manager_host_->HasManifest(GetMainFrame(), callback);
2756 } 2758 }
2757 2759
2758 void WebContentsImpl::ExitFullscreen() { 2760 void WebContentsImpl::ExitFullscreen() {
2759 // Clean up related state and initiate the fullscreen exit. 2761 // Clean up related state and initiate the fullscreen exit.
2760 GetRenderViewHost()->RejectMouseLockOrUnlockIfNecessary(); 2762 GetRenderViewHost()->GetWidget()->RejectMouseLockOrUnlockIfNecessary();
2761 ExitFullscreenMode(); 2763 ExitFullscreenMode();
2762 } 2764 }
2763 2765
2764 void WebContentsImpl::ResumeLoadingCreatedWebContents() { 2766 void WebContentsImpl::ResumeLoadingCreatedWebContents() {
2765 if (delayed_open_url_params_.get()) { 2767 if (delayed_open_url_params_.get()) {
2766 OpenURL(*delayed_open_url_params_.get()); 2768 OpenURL(*delayed_open_url_params_.get());
2767 delayed_open_url_params_.reset(nullptr); 2769 delayed_open_url_params_.reset(nullptr);
2768 return; 2770 return;
2769 } 2771 }
2770 2772
(...skipping 1872 matching lines...) Expand 10 before | Expand all | Expand 10 after
4643 return NULL; 4645 return NULL;
4644 } 4646 }
4645 4647
4646 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) { 4648 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) {
4647 force_disable_overscroll_content_ = force_disable; 4649 force_disable_overscroll_content_ = force_disable;
4648 if (view_) 4650 if (view_)
4649 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); 4651 view_->SetOverscrollControllerEnabled(CanOverscrollContent());
4650 } 4652 }
4651 4653
4652 } // namespace content 4654 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698