mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-01-16 20:02:24 +01:00
8aac23386e
- Implement CefRequestHandler::OnBeforeBrowse using NavigationThrottle instead of ResourceThrottle (see http://crbug.com/537634). The CefRequest object passed to OnBeforeBrowse will no longer have an associated request identifier. - Mac: Remove additional helper apps which are no longer required (see http://crbug.com/520680) - Remove the UR_FLAG_REPORT_RAW_HEADERS flag which is no longer supported (see http://crbug.com/517114) - Remove the CefBrowserSettings.java parameter. Java is an NPAPI plugin and NPAPI plugins are no longer supported (see http://crbug.com/470301#c11) - Add CefFormatUrlForSecurityDisplay function in cef_parser.h - Fix crash when passing `--disable-extensions` command-line flag (issue #1721) - Linux: Fix NSS handler loading (issue #1727)
83 lines
3.6 KiB
Diff
83 lines
3.6 KiB
Diff
diff --git web_contents_impl.cc web_contents_impl.cc
|
|
index 7c84d90..2aaace4 100644
|
|
--- web_contents_impl.cc
|
|
+++ web_contents_impl.cc
|
|
@@ -1353,23 +1353,30 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
|
|
MSG_ROUTING_NONE);
|
|
frame_tree_.root()->SetFrameName(params.main_frame_name);
|
|
|
|
- WebContentsViewDelegate* delegate =
|
|
- GetContentClient()->browser()->GetWebContentsViewDelegate(this);
|
|
-
|
|
- if (browser_plugin_guest_ &&
|
|
- !BrowserPluginGuestMode::UseCrossProcessFramesForGuests()) {
|
|
- scoped_ptr<WebContentsView> platform_view(CreateWebContentsView(
|
|
- this, delegate, &render_view_host_delegate_view_));
|
|
-
|
|
- WebContentsViewGuest* rv = new WebContentsViewGuest(
|
|
- this, browser_plugin_guest_.get(), platform_view.Pass(),
|
|
- render_view_host_delegate_view_);
|
|
- render_view_host_delegate_view_ = rv;
|
|
- view_.reset(rv);
|
|
- } else {
|
|
- // Regular WebContentsView.
|
|
- view_.reset(CreateWebContentsView(
|
|
- this, delegate, &render_view_host_delegate_view_));
|
|
+ if (params.view && params.delegate_view) {
|
|
+ view_.reset(params.view);
|
|
+ render_view_host_delegate_view_ = params.delegate_view;
|
|
+ }
|
|
+
|
|
+ if (!view_) {
|
|
+ WebContentsViewDelegate* delegate =
|
|
+ GetContentClient()->browser()->GetWebContentsViewDelegate(this);
|
|
+
|
|
+ if (browser_plugin_guest_ &&
|
|
+ !BrowserPluginGuestMode::UseCrossProcessFramesForGuests()) {
|
|
+ scoped_ptr<WebContentsView> platform_view(CreateWebContentsView(
|
|
+ this, delegate, &render_view_host_delegate_view_));
|
|
+
|
|
+ WebContentsViewGuest* rv = new WebContentsViewGuest(
|
|
+ this, browser_plugin_guest_.get(), platform_view.Pass(),
|
|
+ render_view_host_delegate_view_);
|
|
+ render_view_host_delegate_view_ = rv;
|
|
+ view_.reset(rv);
|
|
+ } else {
|
|
+ // Regular WebContentsView.
|
|
+ view_.reset(CreateWebContentsView(
|
|
+ this, delegate, &render_view_host_delegate_view_));
|
|
+ }
|
|
}
|
|
CHECK(render_view_host_delegate_view_);
|
|
CHECK(view_.get());
|
|
@@ -1715,6 +1722,9 @@ void WebContentsImpl::CreateNewWindow(
|
|
static_cast<SessionStorageNamespaceImpl*>(session_storage_namespace);
|
|
CHECK(session_storage_namespace_impl->IsFromContext(dom_storage_context));
|
|
|
|
+ content::WebContentsView* view = NULL;
|
|
+ content::RenderViewHostDelegateView* delegate_view = NULL;
|
|
+
|
|
if (delegate_ &&
|
|
!delegate_->ShouldCreateWebContents(this,
|
|
route_id,
|
|
@@ -1723,7 +1733,9 @@ void WebContentsImpl::CreateNewWindow(
|
|
params.frame_name,
|
|
params.target_url,
|
|
partition_id,
|
|
- session_storage_namespace)) {
|
|
+ session_storage_namespace,
|
|
+ &view,
|
|
+ &delegate_view)) {
|
|
if (route_id != MSG_ROUTING_NONE &&
|
|
!RenderViewHost::FromID(render_process_id, route_id)) {
|
|
// If the embedder didn't create a WebContents for this route, we need to
|
|
@@ -1745,6 +1757,8 @@ void WebContentsImpl::CreateNewWindow(
|
|
create_params.opener_render_process_id = render_process_id;
|
|
create_params.opener_render_frame_id = params.opener_render_frame_id;
|
|
create_params.opener_suppressed = params.opener_suppressed;
|
|
+ create_params.view = view;
|
|
+ create_params.delegate_view = delegate_view;
|
|
if (params.disposition == NEW_BACKGROUND_TAB)
|
|
create_params.initially_hidden = true;
|
|
create_params.renderer_initiated_creation =
|