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

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

Issue 2165523004: Force MimeHandlerView to always use BrowserPlugin (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 4 years, 5 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 <stddef.h> 7 #include <stddef.h>
8 8
9 #include <cmath> 9 #include <cmath>
10 #include <utility> 10 #include <utility>
(...skipping 1520 matching lines...) Expand 10 before | Expand all | Expand 10 after
1531 ui::Window* mus_window = aura::GetMusWindow(params.context); 1531 ui::Window* mus_window = aura::GetMusWindow(params.context);
1532 if (mus_window) { 1532 if (mus_window) {
1533 view_.reset(new WebContentsViewMus(mus_window, this, delegate, 1533 view_.reset(new WebContentsViewMus(mus_window, this, delegate,
1534 &render_view_host_delegate_view_)); 1534 &render_view_host_delegate_view_));
1535 } 1535 }
1536 } 1536 }
1537 #endif 1537 #endif
1538 1538
1539 if (!view_) { 1539 if (!view_) {
1540 if (browser_plugin_guest_ && 1540 if (browser_plugin_guest_ &&
1541 !browser_plugin_guest_->IsMimeHandlerViewGuest() &&
1541 BrowserPluginGuestMode::UseCrossProcessFramesForGuests()) { 1542 BrowserPluginGuestMode::UseCrossProcessFramesForGuests()) {
1542 view_.reset(new WebContentsViewChildFrame( 1543 view_.reset(new WebContentsViewChildFrame(
1543 this, delegate, &render_view_host_delegate_view_)); 1544 this, delegate, &render_view_host_delegate_view_));
1544 } else { 1545 } else {
1545 view_.reset(CreateWebContentsView(this, delegate, 1546 view_.reset(CreateWebContentsView(this, delegate,
1546 &render_view_host_delegate_view_)); 1547 &render_view_host_delegate_view_));
1547 } 1548 }
1548 } 1549 }
1549 1550
1550 if (browser_plugin_guest_ && 1551 if (browser_plugin_guest_ &&
1551 !BrowserPluginGuestMode::UseCrossProcessFramesForGuests()) { 1552 (!BrowserPluginGuestMode::UseCrossProcessFramesForGuests() ||
1553 browser_plugin_guest_->IsMimeHandlerViewGuest())) {
1552 view_.reset(new WebContentsViewGuest(this, browser_plugin_guest_.get(), 1554 view_.reset(new WebContentsViewGuest(this, browser_plugin_guest_.get(),
1553 std::move(view_), 1555 std::move(view_),
1554 &render_view_host_delegate_view_)); 1556 &render_view_host_delegate_view_));
1555 } 1557 }
1556 CHECK(render_view_host_delegate_view_); 1558 CHECK(render_view_host_delegate_view_);
1557 CHECK(view_.get()); 1559 CHECK(view_.get());
1558 1560
1559 gfx::Size initial_size = params.initial_size; 1561 gfx::Size initial_size = params.initial_size;
1560 view_->CreateView(initial_size, params.context); 1562 view_->CreateView(initial_size, params.context);
1561 1563
(...skipping 3007 matching lines...) Expand 10 before | Expand all | Expand 10 after
4569 4571
4570 void WebContentsImpl::EnsureOpenerProxiesExist(RenderFrameHost* source_rfh) { 4572 void WebContentsImpl::EnsureOpenerProxiesExist(RenderFrameHost* source_rfh) {
4571 WebContentsImpl* source_web_contents = static_cast<WebContentsImpl*>( 4573 WebContentsImpl* source_web_contents = static_cast<WebContentsImpl*>(
4572 WebContents::FromRenderFrameHost(source_rfh)); 4574 WebContents::FromRenderFrameHost(source_rfh));
4573 4575
4574 if (source_web_contents) { 4576 if (source_web_contents) {
4575 // If this message is going to outer WebContents from inner WebContents, 4577 // If this message is going to outer WebContents from inner WebContents,
4576 // then we should not create a RenderView. AttachToOuterWebContentsFrame() 4578 // then we should not create a RenderView. AttachToOuterWebContentsFrame()
4577 // already created a RenderFrameProxyHost for that purpose. 4579 // already created a RenderFrameProxyHost for that purpose.
4578 if (GetBrowserPluginEmbedder() && 4580 if (GetBrowserPluginEmbedder() &&
4579 BrowserPluginGuestMode::UseCrossProcessFramesForGuests()) { 4581 BrowserPluginGuestMode::UseCrossProcessFramesForGuests() &&
4582 !source_web_contents->GetBrowserPluginGuest()
4583 ->IsMimeHandlerViewGuest()) {
4580 return; 4584 return;
4581 } 4585 }
4582 4586
4583 if (this != source_web_contents && GetBrowserPluginGuest()) { 4587 if (this != source_web_contents && GetBrowserPluginGuest()) {
4584 // We create a RenderFrameProxyHost for the embedder in the guest's render 4588 // We create a RenderFrameProxyHost for the embedder in the guest's render
4585 // process but we intentionally do not expose the embedder's opener chain 4589 // process but we intentionally do not expose the embedder's opener chain
4586 // to it. 4590 // to it.
4587 source_web_contents->GetRenderManager()->CreateRenderFrameProxy( 4591 source_web_contents->GetRenderManager()->CreateRenderFrameProxy(
4588 GetSiteInstance()); 4592 GetSiteInstance());
4589 } else { 4593 } else {
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
4972 return node_->outer_contents_frame_tree_node_id(); 4976 return node_->outer_contents_frame_tree_node_id();
4973 4977
4974 return FrameTreeNode::kFrameTreeNodeInvalidId; 4978 return FrameTreeNode::kFrameTreeNodeInvalidId;
4975 } 4979 }
4976 4980
4977 RenderFrameHostManager* WebContentsImpl::GetRenderManager() const { 4981 RenderFrameHostManager* WebContentsImpl::GetRenderManager() const {
4978 return frame_tree_.root()->render_manager(); 4982 return frame_tree_.root()->render_manager();
4979 } 4983 }
4980 4984
4981 WebContentsImpl* WebContentsImpl::GetOuterWebContents() { 4985 WebContentsImpl* WebContentsImpl::GetOuterWebContents() {
4982 if (BrowserPluginGuestMode::UseCrossProcessFramesForGuests()) { 4986 if (BrowserPluginGuestMode::UseCrossProcessFramesForGuests() &&
4987 (!browser_plugin_guest_ ||
4988 !browser_plugin_guest_->IsMimeHandlerViewGuest())) {
4983 if (node_) 4989 if (node_)
4984 return node_->outer_web_contents(); 4990 return node_->outer_web_contents();
4985 } else { 4991 } else {
4986 if (GetBrowserPluginGuest()) 4992 if (browser_plugin_guest_)
4987 return GetBrowserPluginGuest()->embedder_web_contents(); 4993 return browser_plugin_guest_->embedder_web_contents();
4988 } 4994 }
4989 return nullptr; 4995 return nullptr;
4990 } 4996 }
4991 4997
4992 BrowserPluginGuest* WebContentsImpl::GetBrowserPluginGuest() const { 4998 BrowserPluginGuest* WebContentsImpl::GetBrowserPluginGuest() const {
4993 return browser_plugin_guest_.get(); 4999 return browser_plugin_guest_.get();
4994 } 5000 }
4995 5001
4996 void WebContentsImpl::SetBrowserPluginGuest(BrowserPluginGuest* guest) { 5002 void WebContentsImpl::SetBrowserPluginGuest(BrowserPluginGuest* guest) {
4997 CHECK(!browser_plugin_guest_); 5003 CHECK(!browser_plugin_guest_);
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
5171 for (RenderViewHost* render_view_host : render_view_host_set) 5177 for (RenderViewHost* render_view_host : render_view_host_set)
5172 render_view_host->OnWebkitPreferencesChanged(); 5178 render_view_host->OnWebkitPreferencesChanged();
5173 } 5179 }
5174 5180
5175 void WebContentsImpl::SetJavaScriptDialogManagerForTesting( 5181 void WebContentsImpl::SetJavaScriptDialogManagerForTesting(
5176 JavaScriptDialogManager* dialog_manager) { 5182 JavaScriptDialogManager* dialog_manager) {
5177 dialog_manager_ = dialog_manager; 5183 dialog_manager_ = dialog_manager;
5178 } 5184 }
5179 5185
5180 } // namespace content 5186 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698