OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
250 DCHECK(dom_object_holders_.Contains(holder_base)); | 250 DCHECK(dom_object_holders_.Contains(holder_base)); |
251 dom_object_holders_.erase(holder_base); | 251 dom_object_holders_.erase(holder_base); |
252 } | 252 } |
253 | 253 |
254 void DOMWrapperWorld::WeakCallbackForDOMObjectHolder( | 254 void DOMWrapperWorld::WeakCallbackForDOMObjectHolder( |
255 const v8::WeakCallbackInfo<DOMObjectHolderBase>& data) { | 255 const v8::WeakCallbackInfo<DOMObjectHolderBase>& data) { |
256 DOMObjectHolderBase* holder_base = data.GetParameter(); | 256 DOMObjectHolderBase* holder_base = data.GetParameter(); |
257 holder_base->World()->UnregisterDOMObjectHolder(holder_base); | 257 holder_base->World()->UnregisterDOMObjectHolder(holder_base); |
258 } | 258 } |
259 | 259 |
260 // static | |
260 int DOMWrapperWorld::GenerateWorldIdForType(WorldType world_type) { | 261 int DOMWrapperWorld::GenerateWorldIdForType(WorldType world_type) { |
261 DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<int>, next_world_id, | 262 DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<int>, next_world_id, |
262 new ThreadSpecific<int>); | 263 new ThreadSpecific<int>); |
263 if (!next_world_id.IsSet()) | 264 if (!next_world_id.IsSet()) |
264 *next_world_id = WorldId::kUnspecifiedWorldIdStart; | 265 *next_world_id = WorldId::kUnspecifiedWorldIdStart; |
265 switch (world_type) { | 266 switch (world_type) { |
266 case WorldType::kMain: | 267 case WorldType::kMain: |
267 return kMainWorldId; | 268 return kMainWorldId; |
268 case WorldType::kIsolated: | 269 case WorldType::kIsolated: |
269 // This function should not be called for IsolatedWorld because an | 270 // This function should not be called for IsolatedWorld because an |
270 // identifier for the world is given from out of DOMWrapperWorld. | 271 // identifier for the world is given from out of DOMWrapperWorld. |
271 NOTREACHED(); | 272 NOTREACHED(); |
272 return kInvalidWorldId; | 273 return kInvalidWorldId; |
273 case WorldType::kGarbageCollector: | 274 case WorldType::kGarbageCollector: |
274 case WorldType::kRegExp: | 275 case WorldType::kRegExp: |
275 case WorldType::kTesting: | 276 case WorldType::kTesting: |
276 case WorldType::kWorker: | 277 case WorldType::kWorker: |
277 int world_id = *next_world_id; | 278 int world_id = *next_world_id; |
278 CHECK_GE(world_id, WorldId::kUnspecifiedWorldIdStart); | 279 CHECK_GE(world_id, WorldId::kUnspecifiedWorldIdStart); |
279 *next_world_id = world_id + 1; | 280 *next_world_id = world_id + 1; |
280 return world_id; | 281 return world_id; |
281 } | 282 } |
282 NOTREACHED(); | 283 NOTREACHED(); |
283 return kInvalidWorldId; | 284 return kInvalidWorldId; |
284 } | 285 } |
285 | 286 |
287 // static | |
288 int DOMWrapperWorld::GetNextDevToolsIsolatedWorldId() { | |
289 DEFINE_THREAD_SAFE_STATIC_LOCAL(ThreadSpecific<int>, | |
290 next_devtools_isolatd_world_id, | |
Sami
2017/05/05 09:33:14
typo: isolated
alex clarke (OOO till 29th)
2017/05/05 14:52:29
Done.
| |
291 new ThreadSpecific<int>); | |
292 | |
293 if (!next_devtools_isolatd_world_id.IsSet()) | |
294 *next_devtools_isolatd_world_id = WorldId::kDevToolsFirstIsolatedWorldId; | |
295 int world_id = *next_devtools_isolatd_world_id; | |
296 if (world_id > WorldId::kDevToolsLastIsolatedWorldId) | |
297 return WorldId::kInvalidWorldId; | |
298 *next_devtools_isolatd_world_id = world_id + 1; | |
299 return world_id; | |
300 } | |
301 | |
286 void DOMWrapperWorld::DissociateDOMWindowWrappersInAllWorlds( | 302 void DOMWrapperWorld::DissociateDOMWindowWrappersInAllWorlds( |
287 ScriptWrappable* script_wrappable) { | 303 ScriptWrappable* script_wrappable) { |
288 DCHECK(script_wrappable); | 304 DCHECK(script_wrappable); |
289 DCHECK(IsMainThread()); | 305 DCHECK(IsMainThread()); |
290 | 306 |
291 script_wrappable->UnsetWrapperIfAny(); | 307 script_wrappable->UnsetWrapperIfAny(); |
292 | 308 |
293 for (auto& world : GetWorldMap().Values()) | 309 for (auto& world : GetWorldMap().Values()) |
294 world->DomDataStore().UnsetWrapperIfAny(script_wrappable); | 310 world->DomDataStore().UnsetWrapperIfAny(script_wrappable); |
295 } | 311 } |
296 | 312 |
297 } // namespace blink | 313 } // namespace blink |
OLD | NEW |