| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |