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

Side by Side Diff: Source/bindings/core/v8/DOMDataStore.h

Issue 537403002: bindings: Renames from/toInternalPointer, etc. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Synced. Created 6 years, 3 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 | Annotate | Revision Log
OLDNEW
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 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 return ScriptWrappable::fromObject(object)->setReturnValue(returnVal ue); 78 return ScriptWrappable::fromObject(object)->setReturnValue(returnVal ue);
79 } 79 }
80 // The second fastest way to check if we're in the main world is to chec k if 80 // The second fastest way to check if we're in the main world is to chec k if
81 // the wrappable's wrapper is the same as the holder. 81 // the wrappable's wrapper is the same as the holder.
82 // FIXME: Investigate if it's worth having this check for performance. 82 // FIXME: Investigate if it's worth having this check for performance.
83 if (holderContainsWrapper(holder, wrappable)) { 83 if (holderContainsWrapper(holder, wrappable)) {
84 if (ScriptWrappable::wrapperCanBeStoredInObject(object)) { 84 if (ScriptWrappable::wrapperCanBeStoredInObject(object)) {
85 ScriptWrappable::assertWrapperSanity<V8T, T>(object, object); 85 ScriptWrappable::assertWrapperSanity<V8T, T>(object, object);
86 return ScriptWrappable::fromObject(object)->setReturnValue(retur nValue); 86 return ScriptWrappable::fromObject(object)->setReturnValue(retur nValue);
87 } 87 }
88 return DOMWrapperWorld::mainWorld().domDataStore().m_wrapperMap.setR eturnValueFrom(returnValue, V8T::toInternalPointer(object)); 88 return DOMWrapperWorld::mainWorld().domDataStore().m_wrapperMap.setR eturnValueFrom(returnValue, V8T::toScriptWrappableBase(object));
89 } 89 }
90 return current(returnValue.GetIsolate()).template setReturnValueFrom<V8T >(returnValue, object); 90 return current(returnValue.GetIsolate()).template setReturnValueFrom<V8T >(returnValue, object);
91 } 91 }
92 92
93 template<typename V8T, typename T> 93 template<typename V8T, typename T>
94 static bool setReturnValueFromWrapper(v8::ReturnValue<v8::Value> returnValue , T* object) 94 static bool setReturnValueFromWrapper(v8::ReturnValue<v8::Value> returnValue , T* object)
95 { 95 {
96 if (canUseScriptWrappable(object)) { 96 if (canUseScriptWrappable(object)) {
97 ScriptWrappable::assertWrapperSanity<V8T, T>(object, object); 97 ScriptWrappable::assertWrapperSanity<V8T, T>(object, object);
98 return ScriptWrappable::fromObject(object)->setReturnValue(returnVal ue); 98 return ScriptWrappable::fromObject(object)->setReturnValue(returnVal ue);
99 } 99 }
100 return current(returnValue.GetIsolate()).template setReturnValueFrom<V8T >(returnValue, object); 100 return current(returnValue.GetIsolate()).template setReturnValueFrom<V8T >(returnValue, object);
101 } 101 }
102 102
103 template<typename V8T, typename T> 103 template<typename V8T, typename T>
104 static bool setReturnValueFromWrapperForMainWorld(v8::ReturnValue<v8::Value> returnValue, T* object) 104 static bool setReturnValueFromWrapperForMainWorld(v8::ReturnValue<v8::Value> returnValue, T* object)
105 { 105 {
106 if (ScriptWrappable::wrapperCanBeStoredInObject(object)) 106 if (ScriptWrappable::wrapperCanBeStoredInObject(object))
107 return ScriptWrappable::fromObject(object)->setReturnValue(returnVal ue); 107 return ScriptWrappable::fromObject(object)->setReturnValue(returnVal ue);
108 return DOMWrapperWorld::mainWorld().domDataStore().m_wrapperMap.setRetur nValueFrom(returnValue, V8T::toInternalPointer(object)); 108 return DOMWrapperWorld::mainWorld().domDataStore().m_wrapperMap.setRetur nValueFrom(returnValue, V8T::toScriptWrappableBase(object));
109 } 109 }
110 110
111 template<typename V8T, typename T> 111 template<typename V8T, typename T>
112 static v8::Handle<v8::Object> getWrapper(T* object, v8::Isolate* isolate) 112 static v8::Handle<v8::Object> getWrapper(T* object, v8::Isolate* isolate)
113 { 113 {
114 if (canUseScriptWrappable(object)) { 114 if (canUseScriptWrappable(object)) {
115 v8::Handle<v8::Object> result = ScriptWrappable::fromObject(object)- >newLocalWrapper(isolate); 115 v8::Handle<v8::Object> result = ScriptWrappable::fromObject(object)- >newLocalWrapper(isolate);
116 // Security: always guard against malicious tampering. 116 // Security: always guard against malicious tampering.
117 ScriptWrappable::assertWrapperSanity<V8T, T>(result, object); 117 ScriptWrappable::assertWrapperSanity<V8T, T>(result, object);
118 return result; 118 return result;
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 static bool containsWrapperNonTemplate(ScriptWrappable* object, v8::Isolate* isolate) 195 static bool containsWrapperNonTemplate(ScriptWrappable* object, v8::Isolate* isolate)
196 { 196 {
197 return current(isolate).containsWrapperNonTemplate(object); 197 return current(isolate).containsWrapperNonTemplate(object);
198 } 198 }
199 199
200 template<typename V8T, typename T> 200 template<typename V8T, typename T>
201 v8::Handle<v8::Object> get(T* object, v8::Isolate* isolate) 201 v8::Handle<v8::Object> get(T* object, v8::Isolate* isolate)
202 { 202 {
203 if (ScriptWrappable::wrapperCanBeStoredInObject(object) && m_isMainWorld ) 203 if (ScriptWrappable::wrapperCanBeStoredInObject(object) && m_isMainWorld )
204 return ScriptWrappable::fromObject(object)->newLocalWrapper(isolate) ; 204 return ScriptWrappable::fromObject(object)->newLocalWrapper(isolate) ;
205 return m_wrapperMap.newLocal(V8T::toInternalPointer(object), isolate); 205 return m_wrapperMap.newLocal(V8T::toScriptWrappableBase(object), isolate );
206 } 206 }
207 207
208 v8::Handle<v8::Object> getNonTemplate(ScriptWrappableBase* object, v8::Isola te* isolate) 208 v8::Handle<v8::Object> getNonTemplate(ScriptWrappableBase* object, v8::Isola te* isolate)
209 { 209 {
210 return m_wrapperMap.newLocal(object->toInternalPointer(), isolate); 210 return m_wrapperMap.newLocal(object->toScriptWrappableBase(), isolate);
211 } 211 }
212 212
213 v8::Handle<v8::Object> getNonTemplate(ScriptWrappable* object, v8::Isolate* isolate) 213 v8::Handle<v8::Object> getNonTemplate(ScriptWrappable* object, v8::Isolate* isolate)
214 { 214 {
215 if (m_isMainWorld) 215 if (m_isMainWorld)
216 return object->newLocalWrapper(isolate); 216 return object->newLocalWrapper(isolate);
217 return m_wrapperMap.newLocal(object->toInternalPointer(), isolate); 217 return m_wrapperMap.newLocal(object->toScriptWrappableBase(), isolate);
218 } 218 }
219 219
220 template<typename V8T, typename T> 220 template<typename V8T, typename T>
221 void setReference(const v8::Persistent<v8::Object>& parent, T* child, v8::Is olate* isolate) 221 void setReference(const v8::Persistent<v8::Object>& parent, T* child, v8::Is olate* isolate)
222 { 222 {
223 if (ScriptWrappable::wrapperCanBeStoredInObject(child) && m_isMainWorld) { 223 if (ScriptWrappable::wrapperCanBeStoredInObject(child) && m_isMainWorld) {
224 ScriptWrappable::fromObject(child)->setReference(parent, isolate); 224 ScriptWrappable::fromObject(child)->setReference(parent, isolate);
225 return; 225 return;
226 } 226 }
227 m_wrapperMap.setReference(parent, V8T::toInternalPointer(child), isolate ); 227 m_wrapperMap.setReference(parent, V8T::toScriptWrappableBase(child), iso late);
228 } 228 }
229 229
230 template<typename V8T, typename T> 230 template<typename V8T, typename T>
231 bool setReturnValueFrom(v8::ReturnValue<v8::Value> returnValue, T* object) 231 bool setReturnValueFrom(v8::ReturnValue<v8::Value> returnValue, T* object)
232 { 232 {
233 if (ScriptWrappable::wrapperCanBeStoredInObject(object) && m_isMainWorld ) 233 if (ScriptWrappable::wrapperCanBeStoredInObject(object) && m_isMainWorld )
234 return ScriptWrappable::fromObject(object)->setReturnValue(returnVal ue); 234 return ScriptWrappable::fromObject(object)->setReturnValue(returnVal ue);
235 return m_wrapperMap.setReturnValueFrom(returnValue, V8T::toInternalPoint er(object)); 235 return m_wrapperMap.setReturnValueFrom(returnValue, V8T::toScriptWrappab leBase(object));
236 } 236 }
237 237
238 template<typename V8T, typename T> 238 template<typename V8T, typename T>
239 bool containsWrapper(T* object) 239 bool containsWrapper(T* object)
240 { 240 {
241 if (ScriptWrappable::wrapperCanBeStoredInObject(object) && m_isMainWorld ) 241 if (ScriptWrappable::wrapperCanBeStoredInObject(object) && m_isMainWorld )
242 return ScriptWrappable::fromObject(object)->containsWrapper(); 242 return ScriptWrappable::fromObject(object)->containsWrapper();
243 return m_wrapperMap.containsKey(V8T::toInternalPointer(object)); 243 return m_wrapperMap.containsKey(V8T::toScriptWrappableBase(object));
244 } 244 }
245 245
246 bool containsWrapperNonTemplate(ScriptWrappableBase* object) 246 bool containsWrapperNonTemplate(ScriptWrappableBase* object)
247 { 247 {
248 return m_wrapperMap.containsKey(object->toInternalPointer()); 248 return m_wrapperMap.containsKey(object->toScriptWrappableBase());
249 } 249 }
250 250
251 bool containsWrapperNonTemplate(ScriptWrappable* object) 251 bool containsWrapperNonTemplate(ScriptWrappable* object)
252 { 252 {
253 if (m_isMainWorld) 253 if (m_isMainWorld)
254 return object->containsWrapper(); 254 return object->containsWrapper();
255 return m_wrapperMap.containsKey(object->toInternalPointer()); 255 return m_wrapperMap.containsKey(object->toScriptWrappableBase());
256 } 256 }
257 257
258 private: 258 private:
259 template<typename V8T, typename T> 259 template<typename V8T, typename T>
260 void set(T* object, v8::Handle<v8::Object> wrapper, v8::Isolate* isolate, co nst WrapperTypeInfo* wrapperTypeInfo) 260 void set(T* object, v8::Handle<v8::Object> wrapper, v8::Isolate* isolate, co nst WrapperTypeInfo* wrapperTypeInfo)
261 { 261 {
262 ASSERT(object); 262 ASSERT(object);
263 ASSERT(!wrapper.IsEmpty()); 263 ASSERT(!wrapper.IsEmpty());
264 if (ScriptWrappable::wrapperCanBeStoredInObject(object) && m_isMainWorld ) { 264 if (ScriptWrappable::wrapperCanBeStoredInObject(object) && m_isMainWorld ) {
265 ScriptWrappable::fromObject(object)->setWrapper(wrapper, isolate, wr apperTypeInfo); 265 ScriptWrappable::fromObject(object)->setWrapper(wrapper, isolate, wr apperTypeInfo);
266 return; 266 return;
267 } 267 }
268 m_wrapperMap.set(V8T::toInternalPointer(object), wrapper, wrapperTypeInf o); 268 m_wrapperMap.set(V8T::toScriptWrappableBase(object), wrapper, wrapperTyp eInfo);
269 } 269 }
270 270
271 void setNonTemplate(ScriptWrappableBase* object, v8::Handle<v8::Object> wrap per, v8::Isolate* isolate, const WrapperTypeInfo* wrapperTypeInfo) 271 void setNonTemplate(ScriptWrappableBase* object, v8::Handle<v8::Object> wrap per, v8::Isolate* isolate, const WrapperTypeInfo* wrapperTypeInfo)
272 { 272 {
273 ASSERT(object); 273 ASSERT(object);
274 ASSERT(!wrapper.IsEmpty()); 274 ASSERT(!wrapper.IsEmpty());
275 m_wrapperMap.set(object->toInternalPointer(), wrapper, wrapperTypeInfo); 275 m_wrapperMap.set(object->toScriptWrappableBase(), wrapper, wrapperTypeIn fo);
276 } 276 }
277 277
278 void setNonTemplate(ScriptWrappable* object, v8::Handle<v8::Object> wrapper, v8::Isolate* isolate, const WrapperTypeInfo* wrapperTypeInfo) 278 void setNonTemplate(ScriptWrappable* object, v8::Handle<v8::Object> wrapper, v8::Isolate* isolate, const WrapperTypeInfo* wrapperTypeInfo)
279 { 279 {
280 ASSERT(object); 280 ASSERT(object);
281 ASSERT(!wrapper.IsEmpty()); 281 ASSERT(!wrapper.IsEmpty());
282 if (m_isMainWorld) { 282 if (m_isMainWorld) {
283 ScriptWrappable::fromObject(object)->setWrapper(wrapper, isolate, wr apperTypeInfo); 283 ScriptWrappable::fromObject(object)->setWrapper(wrapper, isolate, wr apperTypeInfo);
284 return; 284 return;
285 } 285 }
286 m_wrapperMap.set(object->toInternalPointer(), wrapper, wrapperTypeInfo); 286 m_wrapperMap.set(object->toScriptWrappableBase(), wrapper, wrapperTypeIn fo);
287 } 287 }
288 288
289 static bool canExistInWorker(void*) { return true; } 289 static bool canExistInWorker(void*) { return true; }
290 static bool canExistInWorker(Node*) { return false; } 290 static bool canExistInWorker(Node*) { return false; }
291 291
292 static bool holderContainsWrapper(v8::Local<v8::Object>, void*) 292 static bool holderContainsWrapper(v8::Local<v8::Object>, void*)
293 { 293 {
294 return false; 294 return false;
295 } 295 }
296 296
(...skipping 15 matching lines...) Expand all
312 v8::UniquePersistent<v8::Object> value, 312 v8::UniquePersistent<v8::Object> value,
313 ScriptWrappableBase* key) 313 ScriptWrappableBase* key)
314 { 314 {
315 RELEASE_ASSERT(!value.IsEmpty()); // See crbug.com/368095. 315 RELEASE_ASSERT(!value.IsEmpty()); // See crbug.com/368095.
316 releaseObject(v8::Local<v8::Object>::New(isolate, value)); 316 releaseObject(v8::Local<v8::Object>::New(isolate, value));
317 } 317 }
318 318
319 } // namespace blink 319 } // namespace blink
320 320
321 #endif // DOMDataStore_h 321 #endif // DOMDataStore_h
OLDNEW
« no previous file with comments | « Source/bindings/core/v8/CustomElementConstructorBuilder.cpp ('k') | Source/bindings/core/v8/DOMWrapperMap.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698