| Index: content/browser/web_contents/web_contents_impl.cc
|
| diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
|
| index 44a2a78bffa46a2f24a4b6bc49403bf4593f99cd..595bdc10043e58d74b1db9de274e590c2316490e 100644
|
| --- a/content/browser/web_contents/web_contents_impl.cc
|
| +++ b/content/browser/web_contents/web_contents_impl.cc
|
| @@ -437,17 +437,19 @@ WebContentsImpl* WebContentsImpl::CreateWithOpener(
|
| WebContentsImpl* opener) {
|
| TRACE_EVENT0("browser", "WebContentsImpl::CreateWithOpener");
|
| WebContentsImpl* new_contents = new WebContentsImpl(
|
| - params.browser_context, opener);
|
| + params.browser_context, params.opener_suppressed ? NULL : opener);
|
|
|
| if (params.guest_instance_id) {
|
| - scoped_ptr<base::DictionaryValue> extra_params(
|
| - params.guest_extra_params->DeepCopy());
|
| + scoped_ptr<base::DictionaryValue> extra_params;
|
| + if (params.guest_extra_params)
|
| + extra_params.reset(params.guest_extra_params->DeepCopy());
|
| // This makes |new_contents| act as a guest.
|
| // For more info, see comment above class BrowserPluginGuest.
|
| BrowserPluginGuest::Create(params.guest_instance_id,
|
| params.site_instance,
|
| new_contents,
|
| - extra_params.Pass());
|
| + extra_params.Pass(),
|
| + opener ? opener->GetBrowserPluginGuest() : NULL);
|
| // We are instantiating a WebContents for browser plugin. Set its subframe
|
| // bit to true.
|
| new_contents->is_subframe_ = true;
|
| @@ -651,20 +653,6 @@ RenderViewHost* WebContentsImpl::GetRenderViewHost() const {
|
| return GetRenderManager()->current_host();
|
| }
|
|
|
| -WebContents* WebContentsImpl::GetEmbedderWebContents() const {
|
| - BrowserPluginGuest* guest = GetBrowserPluginGuest();
|
| - if (guest)
|
| - return guest->embedder_web_contents();
|
| - return NULL;
|
| -}
|
| -
|
| -int WebContentsImpl::GetEmbeddedInstanceID() const {
|
| - BrowserPluginGuest* guest = GetBrowserPluginGuest();
|
| - if (guest)
|
| - return guest->instance_id();
|
| - return 0;
|
| -}
|
| -
|
| int WebContentsImpl::GetRoutingID() const {
|
| if (!GetRenderViewHost())
|
| return MSG_ROUTING_NONE;
|
| @@ -1403,34 +1391,26 @@ void WebContentsImpl::CreateNewWindow(
|
|
|
| // Create the new web contents. This will automatically create the new
|
| // WebContentsView. In the future, we may want to create the view separately.
|
| - WebContentsImpl* new_contents =
|
| - new WebContentsImpl(GetBrowserContext(),
|
| - params.opener_suppressed ? NULL : this);
|
| -
|
| - new_contents->GetController().SetSessionStorageNamespace(
|
| - partition_id,
|
| - session_storage_namespace);
|
| CreateParams create_params(GetBrowserContext(), site_instance.get());
|
| create_params.routing_id = route_id;
|
| create_params.main_frame_routing_id = main_frame_route_id;
|
| + create_params.opener = this;
|
| + create_params.opener_suppressed = params.opener_suppressed;
|
| + if (params.disposition == NEW_BACKGROUND_TAB)
|
| + create_params.initially_hidden = true;
|
| +
|
| if (!is_guest) {
|
| create_params.context = view_->GetNativeView();
|
| create_params.initial_size = GetContainerBounds().size();
|
| } else {
|
| - // This makes |new_contents| act as a guest.
|
| - // For more info, see comment above class BrowserPluginGuest.
|
| - int instance_id =
|
| + create_params.guest_instance_id =
|
| GetBrowserContext()->GetGuestManager()->GetNextInstanceID();
|
| - WebContentsImpl* new_contents_impl =
|
| - static_cast<WebContentsImpl*>(new_contents);
|
| - BrowserPluginGuest::CreateWithOpener(instance_id,
|
| - new_contents_impl->opener() != NULL,
|
| - new_contents_impl,
|
| - GetBrowserPluginGuest());
|
| }
|
| - if (params.disposition == NEW_BACKGROUND_TAB)
|
| - create_params.initially_hidden = true;
|
| - new_contents->Init(create_params);
|
| + WebContentsImpl* new_contents = static_cast<WebContentsImpl*>(
|
| + WebContents::Create(create_params));
|
| + new_contents->GetController().SetSessionStorageNamespace(
|
| + partition_id,
|
| + session_storage_namespace);
|
| new_contents->RenderViewCreated(new_contents->GetRenderViewHost());
|
|
|
| // Save the window for later if we're not suppressing the opener (since it
|
|
|