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

Side by Side Diff: chrome/browser/extensions/extension_renderer_state.cc

Issue 333313004: Fix the bug that webview guest cannot load script of a SharedWorker. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 6 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "chrome/browser/extensions/extension_renderer_state.h" 5 #include "chrome/browser/extensions/extension_renderer_state.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "chrome/browser/chrome_notification_types.h" 9 #include "chrome/browser/chrome_notification_types.h"
10 #include "chrome/browser/sessions/session_tab_helper.h" 10 #include "chrome/browser/sessions/session_tab_helper.h"
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 if (iter != map_.end()) { 216 if (iter != map_.end()) {
217 *tab_id = iter->second.first; 217 *tab_id = iter->second.first;
218 *window_id = iter->second.second; 218 *window_id = iter->second.second;
219 return true; 219 return true;
220 } 220 }
221 return false; 221 return false;
222 } 222 }
223 223
224 bool ExtensionRendererState::IsWebViewRenderer(int render_process_id) { 224 bool ExtensionRendererState::IsWebViewRenderer(int render_process_id) {
225 DCHECK_CURRENTLY_ON(BrowserThread::IO); 225 DCHECK_CURRENTLY_ON(BrowserThread::IO);
226 for (WebViewInfoMap::iterator i = webview_info_map_.begin(); 226 return webview_partition_id_map.find(render_process_id) !=
227 i != webview_info_map_.end(); ++i) { 227 webview_partition_id_map.end();
228 if (i->first.first == render_process_id)
229 return true;
230 }
231 return false;
232 } 228 }
233 229
234 void ExtensionRendererState::AddWebView(int guest_process_id, 230 void ExtensionRendererState::AddWebView(int guest_process_id,
235 int guest_routing_id, 231 int guest_routing_id,
236 const WebViewInfo& webview_info) { 232 const WebViewInfo& webview_info) {
237 DCHECK_CURRENTLY_ON(BrowserThread::IO); 233 DCHECK_CURRENTLY_ON(BrowserThread::IO);
238 RenderId render_id(guest_process_id, guest_routing_id); 234 RenderId render_id(guest_process_id, guest_routing_id);
239 webview_info_map_[render_id] = webview_info; 235 webview_info_map_[render_id] = webview_info;
240 } 236 }
241 237
242 void ExtensionRendererState::RemoveWebView(int guest_process_id, 238 void ExtensionRendererState::RemoveWebView(int guest_process_id,
243 int guest_routing_id) { 239 int guest_routing_id) {
244 DCHECK_CURRENTLY_ON(BrowserThread::IO); 240 DCHECK_CURRENTLY_ON(BrowserThread::IO);
245 RenderId render_id(guest_process_id, guest_routing_id); 241 RenderId render_id(guest_process_id, guest_routing_id);
246 webview_info_map_.erase(render_id); 242 webview_info_map_.erase(render_id);
247 } 243 }
248 244
249 bool ExtensionRendererState::GetWebViewInfo(int guest_process_id, 245 bool ExtensionRendererState::GetWebViewInfo(int guest_process_id,
250 int guest_routing_id, 246 int guest_routing_id,
251 WebViewInfo* webview_info) { 247 WebViewInfo* webview_info) {
252 DCHECK_CURRENTLY_ON(BrowserThread::IO); 248 DCHECK_CURRENTLY_ON(BrowserThread::IO);
253 RenderId render_id(guest_process_id, guest_routing_id); 249 RenderId render_id(guest_process_id, guest_routing_id);
254 WebViewInfoMap::iterator iter = webview_info_map_.find(render_id); 250 WebViewInfoMap::iterator iter = webview_info_map_.find(render_id);
255 if (iter != webview_info_map_.end()) { 251 if (iter != webview_info_map_.end()) {
256 *webview_info = iter->second; 252 *webview_info = iter->second;
257 return true; 253 return true;
258 } 254 }
259 return false; 255 return false;
260 } 256 }
257
258 void ExtensionRendererState::AddWebViewPartitionID(
Fady Samuel 2014/06/16 21:01:56 Remove this method.
Xi Han 2014/06/16 21:53:55 Done.
259 int guest_process_id,
260 const std::string& webview_partition_id) {
261 DCHECK_CURRENTLY_ON(BrowserThread::IO);
262 webview_partition_id_map[guest_process_id] = webview_partition_id;
Fady Samuel 2014/06/16 21:01:56 Move this to AddWebView. You probably also need a
Xi Han 2014/06/16 21:53:55 Done.
263 }
264
265 void ExtensionRendererState::RemoveWebViewPartitionID(int guest_process_id) {
266 DCHECK_CURRENTLY_ON(BrowserThread::IO);
267 webview_partition_id_map.erase(guest_process_id);
Fady Samuel 2014/06/16 21:01:56 Move this to RemoveWebView.
Xi Han 2014/06/16 21:53:55 Done.
268 }
269
270 bool ExtensionRendererState::GetWebViewPartitionID(int guest_process_id,
271 std::string* partition_id) {
272 DCHECK_CURRENTLY_ON(BrowserThread::IO);
273 WebViewPartitionIDMap::iterator iter =
274 webview_partition_id_map.find(guest_process_id);
275 if (iter != webview_partition_id_map.end()) {
276 *partition_id = iter->second;
277 return true;
278 }
279 return false;
280 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698