Chromium Code Reviews| 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 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 57 } | 57 } |
| 58 | 58 |
| 59 v8::Local<v8::Function> shadowConstructor = shadowTemplate->GetFunction(); | 59 v8::Local<v8::Function> shadowConstructor = shadowTemplate->GetFunction(); |
| 60 if (shadowConstructor.IsEmpty()) | 60 if (shadowConstructor.IsEmpty()) |
| 61 return v8::Local<v8::Object>(); | 61 return v8::Local<v8::Object>(); |
| 62 | 62 |
| 63 v8::Local<v8::Object> shadow = V8ScriptRunner::instantiateObject(isolate, sh adowConstructor); | 63 v8::Local<v8::Object> shadow = V8ScriptRunner::instantiateObject(isolate, sh adowConstructor); |
| 64 if (shadow.IsEmpty()) | 64 if (shadow.IsEmpty()) |
| 65 return v8::Local<v8::Object>(); | 65 return v8::Local<v8::Object>(); |
| 66 shadow->SetPrototype(wrapper); | 66 shadow->SetPrototype(wrapper); |
| 67 #if ENABLE(OILPAN) | |
| 68 V8DOMWrapper::setNativeInfoWithPersistentHandle(wrapper, &V8HTMLDocument::wr apperTypeInfo, impl, new Persistent<Node>(impl)); | |
|
haraken
2014/05/22 12:55:04
I'm not sure if this is right.
If you create a pe
Mads Ager (chromium)
2014/05/22 13:12:28
I have been the cause of confusion locally here. I
sof
2014/05/22 13:19:09
Having a pair of Persistents on the same object do
| |
| 69 #else | |
| 67 V8DOMWrapper::setNativeInfo(wrapper, &V8HTMLDocument::wrapperTypeInfo, impl) ; | 70 V8DOMWrapper::setNativeInfo(wrapper, &V8HTMLDocument::wrapperTypeInfo, impl) ; |
| 71 #endif | |
| 68 return shadow; | 72 return shadow; |
| 69 } | 73 } |
| 70 | 74 |
| 71 v8::Local<v8::Object> V8DOMWrapper::createWrapper(v8::Handle<v8::Object> creatio nContext, const WrapperTypeInfo* type, void* impl, v8::Isolate* isolate) | 75 v8::Local<v8::Object> V8DOMWrapper::createWrapper(v8::Handle<v8::Object> creatio nContext, const WrapperTypeInfo* type, void* impl, v8::Isolate* isolate) |
| 72 { | 76 { |
| 73 V8WrapperInstantiationScope scope(creationContext, isolate); | 77 V8WrapperInstantiationScope scope(creationContext, isolate); |
| 74 | 78 |
| 75 V8PerContextData* perContextData = V8PerContextData::from(scope.context()); | 79 V8PerContextData* perContextData = V8PerContextData::from(scope.context()); |
| 76 v8::Local<v8::Object> wrapper = perContextData ? perContextData->createWrapp erFromCache(type) : V8ObjectConstructor::newInstance(isolate, type->domTemplate( isolate)->GetFunction()); | 80 v8::Local<v8::Object> wrapper = perContextData ? perContextData->createWrapp erFromCache(type) : V8ObjectConstructor::newInstance(isolate, type->domTemplate( isolate)->GetFunction()); |
| 77 | 81 |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 93 ASSERT(wrapper->GetAlignedPointerFromInternalField(v8DOMWrapperObjectIndex)) ; | 97 ASSERT(wrapper->GetAlignedPointerFromInternalField(v8DOMWrapperObjectIndex)) ; |
| 94 ASSERT(wrapper->GetAlignedPointerFromInternalField(v8DOMWrapperTypeIndex)); | 98 ASSERT(wrapper->GetAlignedPointerFromInternalField(v8DOMWrapperTypeIndex)); |
| 95 | 99 |
| 96 const WrapperTypeInfo* typeInfo = static_cast<const WrapperTypeInfo*>(wrappe r->GetAlignedPointerFromInternalField(v8DOMWrapperTypeIndex)); | 100 const WrapperTypeInfo* typeInfo = static_cast<const WrapperTypeInfo*>(wrappe r->GetAlignedPointerFromInternalField(v8DOMWrapperTypeIndex)); |
| 97 // FIXME: We should add a more strict way to check if the typeInfo is a type Info of some DOM wrapper. | 101 // FIXME: We should add a more strict way to check if the typeInfo is a type Info of some DOM wrapper. |
| 98 // Even if it's a typeInfo of Blink, it's not guaranteed that it's a typeInf o of a DOM wrapper. | 102 // Even if it's a typeInfo of Blink, it's not guaranteed that it's a typeInf o of a DOM wrapper. |
| 99 return typeInfo->ginEmbedder == gin::kEmbedderBlink; | 103 return typeInfo->ginEmbedder == gin::kEmbedderBlink; |
| 100 } | 104 } |
| 101 | 105 |
| 102 } // namespace WebCore | 106 } // namespace WebCore |
| OLD | NEW |