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

Side by Side Diff: extensions/browser/guest_view/guest_view_manager.cc

Issue 642573002: Remove the RenderProcessHost observer and attach the WebContentsObserver earlier to the GuestView. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@tests_other0
Patch Set: Created 6 years, 2 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "extensions/browser/guest_view/guest_view_manager.h" 5 #include "extensions/browser/guest_view/guest_view_manager.h"
6 6
7 #include "base/strings/stringprintf.h" 7 #include "base/strings/stringprintf.h"
8 #include "content/public/browser/browser_context.h" 8 #include "content/public/browser/browser_context.h"
9 #include "content/public/browser/render_process_host.h" 9 #include "content/public/browser/render_process_host.h"
10 #include "content/public/browser/render_view_host.h" 10 #include "content/public/browser/render_view_host.h"
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 callback.Run(NULL); 124 callback.Run(NULL);
125 return; 125 return;
126 } 126 }
127 guest->Init( 127 guest->Init(
128 embedder_extension_id, embedder_web_contents, create_params, callback); 128 embedder_extension_id, embedder_web_contents, create_params, callback);
129 } 129 }
130 130
131 content::WebContents* GuestViewManager::CreateGuestWithWebContentsParams( 131 content::WebContents* GuestViewManager::CreateGuestWithWebContentsParams(
132 const std::string& view_type, 132 const std::string& view_type,
133 const std::string& embedder_extension_id, 133 const std::string& embedder_extension_id,
134 int embedder_render_process_id, 134 content::WebContents* embedder_web_contents,
135 const content::WebContents::CreateParams& create_params) { 135 const content::WebContents::CreateParams& create_params) {
136 int guest_instance_id = GetNextInstanceID(); 136 int guest_instance_id = GetNextInstanceID();
137 GuestViewBase* guest = 137 GuestViewBase* guest =
138 GuestViewBase::Create(context_, guest_instance_id, view_type); 138 GuestViewBase::Create(context_, guest_instance_id, view_type);
139 if (!guest) 139 if (!guest)
140 return NULL; 140 return NULL;
141 content::WebContents::CreateParams guest_create_params(create_params); 141 content::WebContents::CreateParams guest_create_params(create_params);
142 guest_create_params.guest_delegate = guest; 142 guest_create_params.guest_delegate = guest;
143 content::WebContents* guest_web_contents = 143 content::WebContents* guest_web_contents =
144 WebContents::Create(guest_create_params); 144 WebContents::Create(guest_create_params);
145 int embedder_render_process_id =
146 embedder_web_contents->GetRenderProcessHost()->GetID();
145 guest->InitWithWebContents(embedder_extension_id, 147 guest->InitWithWebContents(embedder_extension_id,
146 embedder_render_process_id, 148 embedder_render_process_id,
149 embedder_web_contents,
147 guest_web_contents); 150 guest_web_contents);
148 return guest_web_contents; 151 return guest_web_contents;
149 } 152 }
150 153
151 content::WebContents* GuestViewManager::GetGuestByInstanceID( 154 content::WebContents* GuestViewManager::GetGuestByInstanceID(
152 content::WebContents* embedder_web_contents, 155 content::WebContents* embedder_web_contents,
153 int element_instance_id) { 156 int element_instance_id) {
154 int guest_instance_id = GetGuestInstanceIDForElementID(embedder_web_contents, 157 int guest_instance_id = GetGuestInstanceIDForElementID(embedder_web_contents,
155 element_instance_id); 158 element_instance_id);
156 if (guest_instance_id == guestview::kInstanceIDNone) 159 if (guest_instance_id == guestview::kInstanceIDNone)
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 return true; 299 return true;
297 300
298 GuestViewBase* guest_view = GuestViewBase::FromWebContents(it->second); 301 GuestViewBase* guest_view = GuestViewBase::FromWebContents(it->second);
299 if (!guest_view) 302 if (!guest_view)
300 return false; 303 return false;
301 304
302 return embedder_render_process_id == guest_view->embedder_render_process_id(); 305 return embedder_render_process_id == guest_view->embedder_render_process_id();
303 } 306 }
304 307
305 } // namespace extensions 308 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698