OLD | NEW |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |