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

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

Issue 1095913002: Fix window.open issue in Document mode on Android. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix some whitespace issues Created 5 years, 8 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 1689 matching lines...) Expand 10 before | Expand all | Expand 10 after
1700 #endif 1700 #endif
1701 } 1701 }
1702 1702
1703 void WebContentsImpl::ShowCreatedWindow(int route_id, 1703 void WebContentsImpl::ShowCreatedWindow(int route_id,
1704 WindowOpenDisposition disposition, 1704 WindowOpenDisposition disposition,
1705 const gfx::Rect& initial_rect, 1705 const gfx::Rect& initial_rect,
1706 bool user_gesture) { 1706 bool user_gesture) {
1707 WebContentsImpl* contents = GetCreatedWindow(route_id); 1707 WebContentsImpl* contents = GetCreatedWindow(route_id);
1708 if (contents) { 1708 if (contents) {
1709 WebContentsDelegate* delegate = GetDelegate(); 1709 WebContentsDelegate* delegate = GetDelegate();
1710 if (!delegate || delegate->ShouldResumeRequestsForCreatedWindow())
1711 ResumeRequestsForCreatedWindow(*contents);
1712
1710 if (delegate) { 1713 if (delegate) {
1711 delegate->AddNewContents( 1714 delegate->AddNewContents(
1712 this, contents, disposition, initial_rect, user_gesture, NULL); 1715 this, contents, disposition, initial_rect, user_gesture, NULL);
1713 } 1716 }
1714 } 1717 }
1715 } 1718 }
1716 1719
1717 void WebContentsImpl::ShowCreatedWidget(int route_id, 1720 void WebContentsImpl::ShowCreatedWidget(int route_id,
1718 const gfx::Rect& initial_rect) { 1721 const gfx::Rect& initial_rect) {
1719 ShowCreatedWidget(route_id, false, initial_rect); 1722 ShowCreatedWidget(route_id, false, initial_rect);
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
1787 RemoveDestructionObserver(new_contents); 1790 RemoveDestructionObserver(new_contents);
1788 1791
1789 // Don't initialize the guest WebContents immediately. 1792 // Don't initialize the guest WebContents immediately.
1790 if (BrowserPluginGuest::IsGuest(new_contents)) 1793 if (BrowserPluginGuest::IsGuest(new_contents))
1791 return new_contents; 1794 return new_contents;
1792 1795
1793 if (!new_contents->GetRenderProcessHost()->HasConnection() || 1796 if (!new_contents->GetRenderProcessHost()->HasConnection() ||
1794 !new_contents->GetRenderViewHost()->GetView()) 1797 !new_contents->GetRenderViewHost()->GetView())
1795 return NULL; 1798 return NULL;
1796 1799
1797 // Resume blocked requests for both the RenderViewHost and RenderFrameHost. 1800 return new_contents;
1801 }
1802
1803 void WebContentsImpl::ResumeRequestsForCreatedWindow(
1804 WebContentsImpl& new_contents) {
1798 // TODO(brettw): It seems bogus to reach into here and initialize the host. 1805 // TODO(brettw): It seems bogus to reach into here and initialize the host.
1799 static_cast<RenderViewHostImpl*>(new_contents->GetRenderViewHost())->Init(); 1806 static_cast<RenderViewHostImpl*>(new_contents.GetRenderViewHost())->Init();
1800 static_cast<RenderFrameHostImpl*>(new_contents->GetMainFrame())->Init(); 1807 static_cast<RenderFrameHostImpl*>(new_contents.GetMainFrame())->Init();
1801
1802 return new_contents;
1803 } 1808 }
1804 1809
1805 RenderWidgetHostView* WebContentsImpl::GetCreatedWidget(int route_id) { 1810 RenderWidgetHostView* WebContentsImpl::GetCreatedWidget(int route_id) {
1806 PendingWidgetViews::iterator iter = pending_widget_views_.find(route_id); 1811 PendingWidgetViews::iterator iter = pending_widget_views_.find(route_id);
1807 if (iter == pending_widget_views_.end()) { 1812 if (iter == pending_widget_views_.end()) {
1808 DCHECK(false); 1813 DCHECK(false);
1809 return NULL; 1814 return NULL;
1810 } 1815 }
1811 1816
1812 RenderWidgetHostView* widget_host_view = iter->second; 1817 RenderWidgetHostView* widget_host_view = iter->second;
(...skipping 2434 matching lines...) Expand 10 before | Expand all | Expand 10 after
4247 return web_contents_android; 4252 return web_contents_android;
4248 } 4253 }
4249 4254
4250 bool WebContentsImpl::CreateRenderViewForInitialEmptyDocument() { 4255 bool WebContentsImpl::CreateRenderViewForInitialEmptyDocument() {
4251 return CreateRenderViewForRenderManager(GetRenderViewHost(), 4256 return CreateRenderViewForRenderManager(GetRenderViewHost(),
4252 MSG_ROUTING_NONE, 4257 MSG_ROUTING_NONE,
4253 MSG_ROUTING_NONE, 4258 MSG_ROUTING_NONE,
4254 true); 4259 true);
4255 } 4260 }
4256 4261
4262 void WebContentsImpl::ResumeLoadingCreatedWebContents() {
4263 ResumeRequestsForCreatedWindow(*this);
4264 }
4265
4257 #elif defined(OS_MACOSX) 4266 #elif defined(OS_MACOSX)
4258 4267
4259 void WebContentsImpl::SetAllowOtherViews(bool allow) { 4268 void WebContentsImpl::SetAllowOtherViews(bool allow) {
4260 view_->SetAllowOtherViews(allow); 4269 view_->SetAllowOtherViews(allow);
4261 } 4270 }
4262 4271
4263 bool WebContentsImpl::GetAllowOtherViews() { 4272 bool WebContentsImpl::GetAllowOtherViews() {
4264 return view_->GetAllowOtherViews(); 4273 return view_->GetAllowOtherViews();
4265 } 4274 }
4266 4275
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
4423 node->render_manager()->ResumeResponseDeferredAtStart(); 4432 node->render_manager()->ResumeResponseDeferredAtStart();
4424 } 4433 }
4425 4434
4426 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) { 4435 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) {
4427 force_disable_overscroll_content_ = force_disable; 4436 force_disable_overscroll_content_ = force_disable;
4428 if (view_) 4437 if (view_)
4429 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); 4438 view_->SetOverscrollControllerEnabled(CanOverscrollContent());
4430 } 4439 }
4431 4440
4432 } // namespace content 4441 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698