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

Side by Side Diff: Source/bindings/tests/results/V8TestInterfaceCheckSecurity.cpp

Issue 176963017: Remove WrapperWorldType from V8 binding (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 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) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 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 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 static void doNotCheckSecurityVoidMethodMethodCallback(const v8::FunctionCallbac kInfo<v8::Value>& info) 224 static void doNotCheckSecurityVoidMethodMethodCallback(const v8::FunctionCallbac kInfo<v8::Value>& info)
225 { 225 {
226 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); 226 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
227 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityVoidMethodMethod(inf o); 227 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityVoidMethodMethod(inf o);
228 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); 228 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
229 } 229 }
230 230
231 static void doNotCheckSecurityVoidMethodOriginSafeMethodGetter(const v8::Propert yCallbackInfo<v8::Value>& info) 231 static void doNotCheckSecurityVoidMethodOriginSafeMethodGetter(const v8::Propert yCallbackInfo<v8::Value>& info)
232 { 232 {
233 static int domTemplateKey; // This address is used for a key to look up the dom template. 233 static int domTemplateKey; // This address is used for a key to look up the dom template.
234 WrapperWorldType currentWorldType = worldType(info.GetIsolate());
235 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate()); 234 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate());
236 v8::Handle<v8::FunctionTemplate> privateTemplate = data->domTemplate(current WorldType, &domTemplateKey, TestInterfaceCheckSecurityV8Internal::doNotCheckSecu rityVoidMethodMethodCallback, v8Undefined(), v8::Signature::New(info.GetIsolate( ), V8TestInterfaceCheckSecurity::domTemplate(info.GetIsolate(), currentWorldType )), 0); 235 v8::Handle<v8::FunctionTemplate> privateTemplate = data->domTemplate(&domTem plateKey, TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityVoidMethodMeth odCallback, v8Undefined(), v8::Signature::New(info.GetIsolate(), V8TestInterface CheckSecurity::domTemplate(info.GetIsolate())), 0);
237 236
238 v8::Handle<v8::Object> holder = V8TestInterfaceCheckSecurity::findInstanceIn PrototypeChain(info.This(), info.GetIsolate()); 237 v8::Handle<v8::Object> holder = V8TestInterfaceCheckSecurity::findInstanceIn PrototypeChain(info.This(), info.GetIsolate());
239 if (holder.IsEmpty()) { 238 if (holder.IsEmpty()) {
240 // This is only reachable via |object.__proto__.func|, in which case it 239 // This is only reachable via |object.__proto__.func|, in which case it
241 // has already passed the same origin security check 240 // has already passed the same origin security check
242 v8SetReturnValue(info, privateTemplate->GetFunction()); 241 v8SetReturnValue(info, privateTemplate->GetFunction());
243 return; 242 return;
244 } 243 }
245 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(hol der); 244 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(hol der);
246 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), imp->frame (), DoNotReportSecurityError)) { 245 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), imp->frame (), DoNotReportSecurityError)) {
247 static int sharedTemplateKey; // This address is used for a key to look up the dom template. 246 static int sharedTemplateKey; // This address is used for a key to look up the dom template.
248 v8::Handle<v8::FunctionTemplate> sharedTemplate = data->domTemplate(curr entWorldType, &sharedTemplateKey, TestInterfaceCheckSecurityV8Internal::doNotChe ckSecurityVoidMethodMethodCallback, v8Undefined(), v8::Signature::New(info.GetIs olate(), V8TestInterfaceCheckSecurity::domTemplate(info.GetIsolate(), currentWor ldType)), 0); 247 v8::Handle<v8::FunctionTemplate> sharedTemplate = data->domTemplate(&sha redTemplateKey, TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityVoidMeth odMethodCallback, v8Undefined(), v8::Signature::New(info.GetIsolate(), V8TestInt erfaceCheckSecurity::domTemplate(info.GetIsolate())), 0);
249 v8SetReturnValue(info, sharedTemplate->GetFunction()); 248 v8SetReturnValue(info, sharedTemplate->GetFunction());
250 return; 249 return;
251 } 250 }
252 251
253 v8::Local<v8::Value> hiddenValue = info.This()->GetHiddenValue(v8AtomicStrin g(info.GetIsolate(), "doNotCheckSecurityVoidMethod")); 252 v8::Local<v8::Value> hiddenValue = info.This()->GetHiddenValue(v8AtomicStrin g(info.GetIsolate(), "doNotCheckSecurityVoidMethod"));
254 if (!hiddenValue.IsEmpty()) { 253 if (!hiddenValue.IsEmpty()) {
255 v8SetReturnValue(info, hiddenValue); 254 v8SetReturnValue(info, hiddenValue);
256 return; 255 return;
257 } 256 }
258 257
(...skipping 16 matching lines...) Expand all
275 static void doNotCheckSecurityDoNotCheckSignatureVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info) 274 static void doNotCheckSecurityDoNotCheckSignatureVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
276 { 275 {
277 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); 276 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
278 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityDoNotCheckSignatureV oidMethodMethod(info); 277 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityDoNotCheckSignatureV oidMethodMethod(info);
279 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); 278 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
280 } 279 }
281 280
282 static void doNotCheckSecurityDoNotCheckSignatureVoidMethodOriginSafeMethodGette r(const v8::PropertyCallbackInfo<v8::Value>& info) 281 static void doNotCheckSecurityDoNotCheckSignatureVoidMethodOriginSafeMethodGette r(const v8::PropertyCallbackInfo<v8::Value>& info)
283 { 282 {
284 static int domTemplateKey; // This address is used for a key to look up the dom template. 283 static int domTemplateKey; // This address is used for a key to look up the dom template.
285 WrapperWorldType currentWorldType = worldType(info.GetIsolate());
286 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate()); 284 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate());
287 v8::Handle<v8::FunctionTemplate> privateTemplate = data->domTemplate(current WorldType, &domTemplateKey, TestInterfaceCheckSecurityV8Internal::doNotCheckSecu rityDoNotCheckSignatureVoidMethodMethodCallback, v8Undefined(), v8::Local<v8::Si gnature>(), 0); 285 v8::Handle<v8::FunctionTemplate> privateTemplate = data->domTemplate(&domTem plateKey, TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityDoNotCheckSign atureVoidMethodMethodCallback, v8Undefined(), v8::Local<v8::Signature>(), 0);
288 286
289 v8::Handle<v8::Object> holder = V8TestInterfaceCheckSecurity::findInstanceIn PrototypeChain(info.This(), info.GetIsolate()); 287 v8::Handle<v8::Object> holder = V8TestInterfaceCheckSecurity::findInstanceIn PrototypeChain(info.This(), info.GetIsolate());
290 if (holder.IsEmpty()) { 288 if (holder.IsEmpty()) {
291 // This is only reachable via |object.__proto__.func|, in which case it 289 // This is only reachable via |object.__proto__.func|, in which case it
292 // has already passed the same origin security check 290 // has already passed the same origin security check
293 v8SetReturnValue(info, privateTemplate->GetFunction()); 291 v8SetReturnValue(info, privateTemplate->GetFunction());
294 return; 292 return;
295 } 293 }
296 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(hol der); 294 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(hol der);
297 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), imp->frame (), DoNotReportSecurityError)) { 295 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), imp->frame (), DoNotReportSecurityError)) {
298 static int sharedTemplateKey; // This address is used for a key to look up the dom template. 296 static int sharedTemplateKey; // This address is used for a key to look up the dom template.
299 v8::Handle<v8::FunctionTemplate> sharedTemplate = data->domTemplate(curr entWorldType, &sharedTemplateKey, TestInterfaceCheckSecurityV8Internal::doNotChe ckSecurityDoNotCheckSignatureVoidMethodMethodCallback, v8Undefined(), v8::Local< v8::Signature>(), 0); 297 v8::Handle<v8::FunctionTemplate> sharedTemplate = data->domTemplate(&sha redTemplateKey, TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityDoNotChe ckSignatureVoidMethodMethodCallback, v8Undefined(), v8::Local<v8::Signature>(), 0);
300 v8SetReturnValue(info, sharedTemplate->GetFunction()); 298 v8SetReturnValue(info, sharedTemplate->GetFunction());
301 return; 299 return;
302 } 300 }
303 301
304 v8::Local<v8::Value> hiddenValue = info.This()->GetHiddenValue(v8AtomicStrin g(info.GetIsolate(), "doNotCheckSecurityDoNotCheckSignatureVoidMethod")); 302 v8::Local<v8::Value> hiddenValue = info.This()->GetHiddenValue(v8AtomicStrin g(info.GetIsolate(), "doNotCheckSecurityDoNotCheckSignatureVoidMethod"));
305 if (!hiddenValue.IsEmpty()) { 303 if (!hiddenValue.IsEmpty()) {
306 v8SetReturnValue(info, hiddenValue); 304 v8SetReturnValue(info, hiddenValue);
307 return; 305 return;
308 } 306 }
309 307
(...skipping 16 matching lines...) Expand all
326 static void doNotCheckSecurityPerWorldBindingsVoidMethodMethodCallback(const v8: :FunctionCallbackInfo<v8::Value>& info) 324 static void doNotCheckSecurityPerWorldBindingsVoidMethodMethodCallback(const v8: :FunctionCallbackInfo<v8::Value>& info)
327 { 325 {
328 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); 326 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
329 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityPerWorldBindingsVoid MethodMethod(info); 327 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityPerWorldBindingsVoid MethodMethod(info);
330 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); 328 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
331 } 329 }
332 330
333 static void doNotCheckSecurityPerWorldBindingsVoidMethodOriginSafeMethodGetter(c onst v8::PropertyCallbackInfo<v8::Value>& info) 331 static void doNotCheckSecurityPerWorldBindingsVoidMethodOriginSafeMethodGetter(c onst v8::PropertyCallbackInfo<v8::Value>& info)
334 { 332 {
335 static int domTemplateKey; // This address is used for a key to look up the dom template. 333 static int domTemplateKey; // This address is used for a key to look up the dom template.
336 WrapperWorldType currentWorldType = worldType(info.GetIsolate());
337 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate()); 334 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate());
338 v8::Handle<v8::FunctionTemplate> privateTemplate = data->domTemplate(current WorldType, &domTemplateKey, TestInterfaceCheckSecurityV8Internal::doNotCheckSecu rityPerWorldBindingsVoidMethodMethodCallback, v8Undefined(), v8::Signature::New( info.GetIsolate(), V8TestInterfaceCheckSecurity::domTemplate(info.GetIsolate(), currentWorldType)), 0); 335 v8::Handle<v8::FunctionTemplate> privateTemplate = data->domTemplate(&domTem plateKey, TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityPerWorldBindin gsVoidMethodMethodCallback, v8Undefined(), v8::Signature::New(info.GetIsolate(), V8TestInterfaceCheckSecurity::domTemplate(info.GetIsolate())), 0);
339 336
340 v8::Handle<v8::Object> holder = V8TestInterfaceCheckSecurity::findInstanceIn PrototypeChain(info.This(), info.GetIsolate()); 337 v8::Handle<v8::Object> holder = V8TestInterfaceCheckSecurity::findInstanceIn PrototypeChain(info.This(), info.GetIsolate());
341 if (holder.IsEmpty()) { 338 if (holder.IsEmpty()) {
342 // This is only reachable via |object.__proto__.func|, in which case it 339 // This is only reachable via |object.__proto__.func|, in which case it
343 // has already passed the same origin security check 340 // has already passed the same origin security check
344 v8SetReturnValue(info, privateTemplate->GetFunction()); 341 v8SetReturnValue(info, privateTemplate->GetFunction());
345 return; 342 return;
346 } 343 }
347 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(hol der); 344 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(hol der);
348 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), imp->frame (), DoNotReportSecurityError)) { 345 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), imp->frame (), DoNotReportSecurityError)) {
349 static int sharedTemplateKey; // This address is used for a key to look up the dom template. 346 static int sharedTemplateKey; // This address is used for a key to look up the dom template.
350 v8::Handle<v8::FunctionTemplate> sharedTemplate = data->domTemplate(curr entWorldType, &sharedTemplateKey, TestInterfaceCheckSecurityV8Internal::doNotChe ckSecurityPerWorldBindingsVoidMethodMethodCallback, v8Undefined(), v8::Signature ::New(info.GetIsolate(), V8TestInterfaceCheckSecurity::domTemplate(info.GetIsola te(), currentWorldType)), 0); 347 v8::Handle<v8::FunctionTemplate> sharedTemplate = data->domTemplate(&sha redTemplateKey, TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityPerWorld BindingsVoidMethodMethodCallback, v8Undefined(), v8::Signature::New(info.GetIsol ate(), V8TestInterfaceCheckSecurity::domTemplate(info.GetIsolate())), 0);
351 v8SetReturnValue(info, sharedTemplate->GetFunction()); 348 v8SetReturnValue(info, sharedTemplate->GetFunction());
352 return; 349 return;
353 } 350 }
354 351
355 v8::Local<v8::Value> hiddenValue = info.This()->GetHiddenValue(v8AtomicStrin g(info.GetIsolate(), "doNotCheckSecurityPerWorldBindingsVoidMethod")); 352 v8::Local<v8::Value> hiddenValue = info.This()->GetHiddenValue(v8AtomicStrin g(info.GetIsolate(), "doNotCheckSecurityPerWorldBindingsVoidMethod"));
356 if (!hiddenValue.IsEmpty()) { 353 if (!hiddenValue.IsEmpty()) {
357 v8SetReturnValue(info, hiddenValue); 354 v8SetReturnValue(info, hiddenValue);
358 return; 355 return;
359 } 356 }
360 357
(...skipping 16 matching lines...) Expand all
377 static void doNotCheckSecurityPerWorldBindingsVoidMethodMethodCallbackForMainWor ld(const v8::FunctionCallbackInfo<v8::Value>& info) 374 static void doNotCheckSecurityPerWorldBindingsVoidMethodMethodCallbackForMainWor ld(const v8::FunctionCallbackInfo<v8::Value>& info)
378 { 375 {
379 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); 376 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
380 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityPerWorldBindingsVoid MethodMethodForMainWorld(info); 377 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityPerWorldBindingsVoid MethodMethodForMainWorld(info);
381 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); 378 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
382 } 379 }
383 380
384 static void doNotCheckSecurityPerWorldBindingsVoidMethodOriginSafeMethodGetterFo rMainWorld(const v8::PropertyCallbackInfo<v8::Value>& info) 381 static void doNotCheckSecurityPerWorldBindingsVoidMethodOriginSafeMethodGetterFo rMainWorld(const v8::PropertyCallbackInfo<v8::Value>& info)
385 { 382 {
386 static int domTemplateKey; // This address is used for a key to look up the dom template. 383 static int domTemplateKey; // This address is used for a key to look up the dom template.
387 WrapperWorldType currentWorldType = worldType(info.GetIsolate());
388 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate()); 384 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate());
389 v8::Handle<v8::FunctionTemplate> privateTemplate = data->domTemplate(current WorldType, &domTemplateKey, TestInterfaceCheckSecurityV8Internal::doNotCheckSecu rityPerWorldBindingsVoidMethodMethodCallbackForMainWorld, v8Undefined(), v8::Sig nature::New(info.GetIsolate(), V8TestInterfaceCheckSecurity::domTemplate(info.Ge tIsolate(), currentWorldType)), 0); 385 v8::Handle<v8::FunctionTemplate> privateTemplate = data->domTemplate(&domTem plateKey, TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityPerWorldBindin gsVoidMethodMethodCallbackForMainWorld, v8Undefined(), v8::Signature::New(info.G etIsolate(), V8TestInterfaceCheckSecurity::domTemplate(info.GetIsolate())), 0);
390 386
391 v8::Handle<v8::Object> holder = V8TestInterfaceCheckSecurity::findInstanceIn PrototypeChain(info.This(), info.GetIsolate()); 387 v8::Handle<v8::Object> holder = V8TestInterfaceCheckSecurity::findInstanceIn PrototypeChain(info.This(), info.GetIsolate());
392 if (holder.IsEmpty()) { 388 if (holder.IsEmpty()) {
393 // This is only reachable via |object.__proto__.func|, in which case it 389 // This is only reachable via |object.__proto__.func|, in which case it
394 // has already passed the same origin security check 390 // has already passed the same origin security check
395 v8SetReturnValue(info, privateTemplate->GetFunction()); 391 v8SetReturnValue(info, privateTemplate->GetFunction());
396 return; 392 return;
397 } 393 }
398 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(hol der); 394 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(hol der);
399 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), imp->frame (), DoNotReportSecurityError)) { 395 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), imp->frame (), DoNotReportSecurityError)) {
400 static int sharedTemplateKey; // This address is used for a key to look up the dom template. 396 static int sharedTemplateKey; // This address is used for a key to look up the dom template.
401 v8::Handle<v8::FunctionTemplate> sharedTemplate = data->domTemplate(curr entWorldType, &sharedTemplateKey, TestInterfaceCheckSecurityV8Internal::doNotChe ckSecurityPerWorldBindingsVoidMethodMethodCallbackForMainWorld, v8Undefined(), v 8::Signature::New(info.GetIsolate(), V8TestInterfaceCheckSecurity::domTemplate(i nfo.GetIsolate(), currentWorldType)), 0); 397 v8::Handle<v8::FunctionTemplate> sharedTemplate = data->domTemplate(&sha redTemplateKey, TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityPerWorld BindingsVoidMethodMethodCallbackForMainWorld, v8Undefined(), v8::Signature::New( info.GetIsolate(), V8TestInterfaceCheckSecurity::domTemplate(info.GetIsolate())) , 0);
402 v8SetReturnValue(info, sharedTemplate->GetFunction()); 398 v8SetReturnValue(info, sharedTemplate->GetFunction());
403 return; 399 return;
404 } 400 }
405 401
406 v8::Local<v8::Value> hiddenValue = info.This()->GetHiddenValue(v8AtomicStrin g(info.GetIsolate(), "doNotCheckSecurityPerWorldBindingsVoidMethod")); 402 v8::Local<v8::Value> hiddenValue = info.This()->GetHiddenValue(v8AtomicStrin g(info.GetIsolate(), "doNotCheckSecurityPerWorldBindingsVoidMethod"));
407 if (!hiddenValue.IsEmpty()) { 403 if (!hiddenValue.IsEmpty()) {
408 v8SetReturnValue(info, hiddenValue); 404 v8SetReturnValue(info, hiddenValue);
409 return; 405 return;
410 } 406 }
411 407
(...skipping 16 matching lines...) Expand all
428 static void doNotCheckSecurityReadOnlyVoidMethodMethodCallback(const v8::Functio nCallbackInfo<v8::Value>& info) 424 static void doNotCheckSecurityReadOnlyVoidMethodMethodCallback(const v8::Functio nCallbackInfo<v8::Value>& info)
429 { 425 {
430 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); 426 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
431 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityReadOnlyVoidMethodMe thod(info); 427 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityReadOnlyVoidMethodMe thod(info);
432 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); 428 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
433 } 429 }
434 430
435 static void doNotCheckSecurityReadOnlyVoidMethodOriginSafeMethodGetter(const v8: :PropertyCallbackInfo<v8::Value>& info) 431 static void doNotCheckSecurityReadOnlyVoidMethodOriginSafeMethodGetter(const v8: :PropertyCallbackInfo<v8::Value>& info)
436 { 432 {
437 static int domTemplateKey; // This address is used for a key to look up the dom template. 433 static int domTemplateKey; // This address is used for a key to look up the dom template.
438 WrapperWorldType currentWorldType = worldType(info.GetIsolate());
439 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate()); 434 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate());
440 v8::Handle<v8::FunctionTemplate> privateTemplate = data->domTemplate(current WorldType, &domTemplateKey, TestInterfaceCheckSecurityV8Internal::doNotCheckSecu rityReadOnlyVoidMethodMethodCallback, v8Undefined(), v8::Signature::New(info.Get Isolate(), V8TestInterfaceCheckSecurity::domTemplate(info.GetIsolate(), currentW orldType)), 0); 435 v8::Handle<v8::FunctionTemplate> privateTemplate = data->domTemplate(&domTem plateKey, TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityReadOnlyVoidMe thodMethodCallback, v8Undefined(), v8::Signature::New(info.GetIsolate(), V8TestI nterfaceCheckSecurity::domTemplate(info.GetIsolate())), 0);
441 436
442 v8::Handle<v8::Object> holder = V8TestInterfaceCheckSecurity::findInstanceIn PrototypeChain(info.This(), info.GetIsolate()); 437 v8::Handle<v8::Object> holder = V8TestInterfaceCheckSecurity::findInstanceIn PrototypeChain(info.This(), info.GetIsolate());
443 if (holder.IsEmpty()) { 438 if (holder.IsEmpty()) {
444 // This is only reachable via |object.__proto__.func|, in which case it 439 // This is only reachable via |object.__proto__.func|, in which case it
445 // has already passed the same origin security check 440 // has already passed the same origin security check
446 v8SetReturnValue(info, privateTemplate->GetFunction()); 441 v8SetReturnValue(info, privateTemplate->GetFunction());
447 return; 442 return;
448 } 443 }
449 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(hol der); 444 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(hol der);
450 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), imp->frame (), DoNotReportSecurityError)) { 445 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), imp->frame (), DoNotReportSecurityError)) {
451 static int sharedTemplateKey; // This address is used for a key to look up the dom template. 446 static int sharedTemplateKey; // This address is used for a key to look up the dom template.
452 v8::Handle<v8::FunctionTemplate> sharedTemplate = data->domTemplate(curr entWorldType, &sharedTemplateKey, TestInterfaceCheckSecurityV8Internal::doNotChe ckSecurityReadOnlyVoidMethodMethodCallback, v8Undefined(), v8::Signature::New(in fo.GetIsolate(), V8TestInterfaceCheckSecurity::domTemplate(info.GetIsolate(), cu rrentWorldType)), 0); 447 v8::Handle<v8::FunctionTemplate> sharedTemplate = data->domTemplate(&sha redTemplateKey, TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityReadOnly VoidMethodMethodCallback, v8Undefined(), v8::Signature::New(info.GetIsolate(), V 8TestInterfaceCheckSecurity::domTemplate(info.GetIsolate())), 0);
453 v8SetReturnValue(info, sharedTemplate->GetFunction()); 448 v8SetReturnValue(info, sharedTemplate->GetFunction());
454 return; 449 return;
455 } 450 }
456 451
457 v8::Local<v8::Value> hiddenValue = info.This()->GetHiddenValue(v8AtomicStrin g(info.GetIsolate(), "doNotCheckSecurityReadOnlyVoidMethod")); 452 v8::Local<v8::Value> hiddenValue = info.This()->GetHiddenValue(v8AtomicStrin g(info.GetIsolate(), "doNotCheckSecurityReadOnlyVoidMethod"));
458 if (!hiddenValue.IsEmpty()) { 453 if (!hiddenValue.IsEmpty()) {
459 v8SetReturnValue(info, hiddenValue); 454 v8SetReturnValue(info, hiddenValue);
460 return; 455 return;
461 } 456 }
462 457
(...skipping 16 matching lines...) Expand all
479 static void doNotCheckSecurityUnforgeableVoidMethodMethodCallback(const v8::Func tionCallbackInfo<v8::Value>& info) 474 static void doNotCheckSecurityUnforgeableVoidMethodMethodCallback(const v8::Func tionCallbackInfo<v8::Value>& info)
480 { 475 {
481 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); 476 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
482 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityUnforgeableVoidMetho dMethod(info); 477 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityUnforgeableVoidMetho dMethod(info);
483 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); 478 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
484 } 479 }
485 480
486 static void doNotCheckSecurityUnforgeableVoidMethodOriginSafeMethodGetter(const v8::PropertyCallbackInfo<v8::Value>& info) 481 static void doNotCheckSecurityUnforgeableVoidMethodOriginSafeMethodGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
487 { 482 {
488 static int domTemplateKey; // This address is used for a key to look up the dom template. 483 static int domTemplateKey; // This address is used for a key to look up the dom template.
489 WrapperWorldType currentWorldType = worldType(info.GetIsolate());
490 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate()); 484 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate());
491 v8::Handle<v8::FunctionTemplate> privateTemplate = data->domTemplate(current WorldType, &domTemplateKey, TestInterfaceCheckSecurityV8Internal::doNotCheckSecu rityUnforgeableVoidMethodMethodCallback, v8Undefined(), v8::Signature::New(info. GetIsolate(), V8TestInterfaceCheckSecurity::domTemplate(info.GetIsolate(), curre ntWorldType)), 0); 485 v8::Handle<v8::FunctionTemplate> privateTemplate = data->domTemplate(&domTem plateKey, TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityUnforgeableVoi dMethodMethodCallback, v8Undefined(), v8::Signature::New(info.GetIsolate(), V8Te stInterfaceCheckSecurity::domTemplate(info.GetIsolate())), 0);
492 486
493 v8::Handle<v8::Object> holder = V8TestInterfaceCheckSecurity::findInstanceIn PrototypeChain(info.This(), info.GetIsolate()); 487 v8::Handle<v8::Object> holder = V8TestInterfaceCheckSecurity::findInstanceIn PrototypeChain(info.This(), info.GetIsolate());
494 if (holder.IsEmpty()) { 488 if (holder.IsEmpty()) {
495 // This is only reachable via |object.__proto__.func|, in which case it 489 // This is only reachable via |object.__proto__.func|, in which case it
496 // has already passed the same origin security check 490 // has already passed the same origin security check
497 v8SetReturnValue(info, privateTemplate->GetFunction()); 491 v8SetReturnValue(info, privateTemplate->GetFunction());
498 return; 492 return;
499 } 493 }
500 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(hol der); 494 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(hol der);
501 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), imp->frame (), DoNotReportSecurityError)) { 495 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), imp->frame (), DoNotReportSecurityError)) {
502 static int sharedTemplateKey; // This address is used for a key to look up the dom template. 496 static int sharedTemplateKey; // This address is used for a key to look up the dom template.
503 v8::Handle<v8::FunctionTemplate> sharedTemplate = data->domTemplate(curr entWorldType, &sharedTemplateKey, TestInterfaceCheckSecurityV8Internal::doNotChe ckSecurityUnforgeableVoidMethodMethodCallback, v8Undefined(), v8::Signature::New (info.GetIsolate(), V8TestInterfaceCheckSecurity::domTemplate(info.GetIsolate(), currentWorldType)), 0); 497 v8::Handle<v8::FunctionTemplate> sharedTemplate = data->domTemplate(&sha redTemplateKey, TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityUnforgea bleVoidMethodMethodCallback, v8Undefined(), v8::Signature::New(info.GetIsolate() , V8TestInterfaceCheckSecurity::domTemplate(info.GetIsolate())), 0);
504 v8SetReturnValue(info, sharedTemplate->GetFunction()); 498 v8SetReturnValue(info, sharedTemplate->GetFunction());
505 return; 499 return;
506 } 500 }
507 501
508 v8::Local<v8::Value> hiddenValue = info.This()->GetHiddenValue(v8AtomicStrin g(info.GetIsolate(), "doNotCheckSecurityUnforgeableVoidMethod")); 502 v8::Local<v8::Value> hiddenValue = info.This()->GetHiddenValue(v8AtomicStrin g(info.GetIsolate(), "doNotCheckSecurityUnforgeableVoidMethod"));
509 if (!hiddenValue.IsEmpty()) { 503 if (!hiddenValue.IsEmpty()) {
510 v8SetReturnValue(info, hiddenValue); 504 v8SetReturnValue(info, hiddenValue);
511 return; 505 return;
512 } 506 }
513 507
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
551 {"doNotCheckSecurityLongAttribute", TestInterfaceCheckSecurityV8Internal::do NotCheckSecurityLongAttributeAttributeGetterCallback, TestInterfaceCheckSecurity V8Internal::doNotCheckSecurityLongAttributeAttributeSetterCallback, 0, 0, 0, sta tic_cast<v8::AccessControl>(v8::ALL_CAN_READ | v8::ALL_CAN_WRITE), static_cast<v 8::PropertyAttribute>(v8::None), 0 /* on instance */}, 545 {"doNotCheckSecurityLongAttribute", TestInterfaceCheckSecurityV8Internal::do NotCheckSecurityLongAttributeAttributeGetterCallback, TestInterfaceCheckSecurity V8Internal::doNotCheckSecurityLongAttributeAttributeSetterCallback, 0, 0, 0, sta tic_cast<v8::AccessControl>(v8::ALL_CAN_READ | v8::ALL_CAN_WRITE), static_cast<v 8::PropertyAttribute>(v8::None), 0 /* on instance */},
552 {"doNotCheckSecurityReadonlyLongAttribute", TestInterfaceCheckSecurityV8Inte rnal::doNotCheckSecurityReadonlyLongAttributeAttributeGetterCallback, 0, 0, 0, 0 , static_cast<v8::AccessControl>(v8::ALL_CAN_READ), static_cast<v8::PropertyAttr ibute>(v8::None), 0 /* on instance */}, 546 {"doNotCheckSecurityReadonlyLongAttribute", TestInterfaceCheckSecurityV8Inte rnal::doNotCheckSecurityReadonlyLongAttributeAttributeGetterCallback, 0, 0, 0, 0 , static_cast<v8::AccessControl>(v8::ALL_CAN_READ), static_cast<v8::PropertyAttr ibute>(v8::None), 0 /* on instance */},
553 {"doNotCheckSecurityOnSetterLongAttribute", TestInterfaceCheckSecurityV8Inte rnal::doNotCheckSecurityOnSetterLongAttributeAttributeGetterCallback, TestInterf aceCheckSecurityV8Internal::doNotCheckSecurityOnSetterLongAttributeAttributeSett erCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::ALL_CAN_WRITE), static_c ast<v8::PropertyAttribute>(v8::None), 0 /* on instance */}, 547 {"doNotCheckSecurityOnSetterLongAttribute", TestInterfaceCheckSecurityV8Inte rnal::doNotCheckSecurityOnSetterLongAttributeAttributeGetterCallback, TestInterf aceCheckSecurityV8Internal::doNotCheckSecurityOnSetterLongAttributeAttributeSett erCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::ALL_CAN_WRITE), static_c ast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
554 {"doNotCheckSecurityReplaceableReadonlyLongAttribute", TestInterfaceCheckSec urityV8Internal::doNotCheckSecurityReplaceableReadonlyLongAttributeAttributeGett erCallback, TestInterfaceCheckSecurityV8Internal::TestInterfaceCheckSecurityRepl aceableAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::ALL_ CAN_READ | v8::ALL_CAN_WRITE), static_cast<v8::PropertyAttribute>(v8::None), 0 / * on instance */}, 548 {"doNotCheckSecurityReplaceableReadonlyLongAttribute", TestInterfaceCheckSec urityV8Internal::doNotCheckSecurityReplaceableReadonlyLongAttributeAttributeGett erCallback, TestInterfaceCheckSecurityV8Internal::TestInterfaceCheckSecurityRepl aceableAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::ALL_ CAN_READ | v8::ALL_CAN_WRITE), static_cast<v8::PropertyAttribute>(v8::None), 0 / * on instance */},
555 }; 549 };
556 550
557 static const V8DOMConfiguration::MethodConfiguration V8TestInterfaceCheckSecurit yMethods[] = { 551 static const V8DOMConfiguration::MethodConfiguration V8TestInterfaceCheckSecurit yMethods[] = {
558 {"voidMethod", TestInterfaceCheckSecurityV8Internal::voidMethodMethodCallbac k, 0, 0}, 552 {"voidMethod", TestInterfaceCheckSecurityV8Internal::voidMethodMethodCallbac k, 0, 0},
559 }; 553 };
560 554
561 static void configureV8TestInterfaceCheckSecurityTemplate(v8::Handle<v8::Functio nTemplate> functionTemplate, v8::Isolate* isolate, WrapperWorldType currentWorld Type) 555 static void configureV8TestInterfaceCheckSecurityTemplate(v8::Handle<v8::Functio nTemplate> functionTemplate, v8::Isolate* isolate)
562 { 556 {
563 functionTemplate->ReadOnlyPrototype(); 557 functionTemplate->ReadOnlyPrototype();
564 558
565 v8::Local<v8::Signature> defaultSignature; 559 v8::Local<v8::Signature> defaultSignature;
566 defaultSignature = V8DOMConfiguration::installDOMClassTemplate(functionTempl ate, "TestInterfaceCheckSecurity", v8::Local<v8::FunctionTemplate>(), V8TestInte rfaceCheckSecurity::internalFieldCount, 560 defaultSignature = V8DOMConfiguration::installDOMClassTemplate(functionTempl ate, "TestInterfaceCheckSecurity", v8::Local<v8::FunctionTemplate>(), V8TestInte rfaceCheckSecurity::internalFieldCount,
567 V8TestInterfaceCheckSecurityAttributes, WTF_ARRAY_LENGTH(V8TestInterface CheckSecurityAttributes), 561 V8TestInterfaceCheckSecurityAttributes, WTF_ARRAY_LENGTH(V8TestInterface CheckSecurityAttributes),
568 0, 0, 562 0, 0,
569 V8TestInterfaceCheckSecurityMethods, WTF_ARRAY_LENGTH(V8TestInterfaceChe ckSecurityMethods), 563 V8TestInterfaceCheckSecurityMethods, WTF_ARRAY_LENGTH(V8TestInterfaceChe ckSecurityMethods),
570 isolate, currentWorldType); 564 isolate);
571 v8::Local<v8::ObjectTemplate> ALLOW_UNUSED instanceTemplate = functionTempla te->InstanceTemplate(); 565 v8::Local<v8::ObjectTemplate> ALLOW_UNUSED instanceTemplate = functionTempla te->InstanceTemplate();
572 v8::Local<v8::ObjectTemplate> ALLOW_UNUSED prototypeTemplate = functionTempl ate->PrototypeTemplate(); 566 v8::Local<v8::ObjectTemplate> ALLOW_UNUSED prototypeTemplate = functionTempl ate->PrototypeTemplate();
573 instanceTemplate->SetAccessCheckCallbacks(TestInterfaceCheckSecurityV8Intern al::namedSecurityCheck, TestInterfaceCheckSecurityV8Internal::indexedSecurityChe ck, v8::External::New(isolate, const_cast<WrapperTypeInfo*>(&V8TestInterfaceChec kSecurity::wrapperTypeInfo))); 567 instanceTemplate->SetAccessCheckCallbacks(TestInterfaceCheckSecurityV8Intern al::namedSecurityCheck, TestInterfaceCheckSecurityV8Internal::indexedSecurityChe ck, v8::External::New(isolate, const_cast<WrapperTypeInfo*>(&V8TestInterfaceChec kSecurity::wrapperTypeInfo)));
574 prototypeTemplate->SetAccessor(v8AtomicString(isolate, "doNotCheckSecurityVo idMethod"), TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityVoidMethodOr iginSafeMethodGetterCallback, TestInterfaceCheckSecurityV8Internal::TestInterfac eCheckSecurityOriginSafeMethodSetterCallback, v8Undefined(), v8::ALL_CAN_READ, s tatic_cast<v8::PropertyAttribute>(v8::DontDelete)); 568 prototypeTemplate->SetAccessor(v8AtomicString(isolate, "doNotCheckSecurityVo idMethod"), TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityVoidMethodOr iginSafeMethodGetterCallback, TestInterfaceCheckSecurityV8Internal::TestInterfac eCheckSecurityOriginSafeMethodSetterCallback, v8Undefined(), v8::ALL_CAN_READ, s tatic_cast<v8::PropertyAttribute>(v8::DontDelete));
575 prototypeTemplate->SetAccessor(v8AtomicString(isolate, "doNotCheckSecurityDo NotCheckSignatureVoidMethod"), TestInterfaceCheckSecurityV8Internal::doNotCheckS ecurityDoNotCheckSignatureVoidMethodOriginSafeMethodGetterCallback, TestInterfac eCheckSecurityV8Internal::TestInterfaceCheckSecurityOriginSafeMethodSetterCallba ck, v8Undefined(), v8::ALL_CAN_READ, static_cast<v8::PropertyAttribute>(v8::Dont Delete)); 569 prototypeTemplate->SetAccessor(v8AtomicString(isolate, "doNotCheckSecurityDo NotCheckSignatureVoidMethod"), TestInterfaceCheckSecurityV8Internal::doNotCheckS ecurityDoNotCheckSignatureVoidMethodOriginSafeMethodGetterCallback, TestInterfac eCheckSecurityV8Internal::TestInterfaceCheckSecurityOriginSafeMethodSetterCallba ck, v8Undefined(), v8::ALL_CAN_READ, static_cast<v8::PropertyAttribute>(v8::Dont Delete));
576 if (currentWorldType == MainWorld) { 570 if (DOMWrapperWorld::current(isolate)->isMainWorld()) {
577 prototypeTemplate->SetAccessor(v8AtomicString(isolate, "doNotCheckSecuri tyPerWorldBindingsVoidMethod"), TestInterfaceCheckSecurityV8Internal::doNotCheck SecurityPerWorldBindingsVoidMethodOriginSafeMethodGetterCallbackForMainWorld, Te stInterfaceCheckSecurityV8Internal::TestInterfaceCheckSecurityOriginSafeMethodSe tterCallback, v8Undefined(), v8::ALL_CAN_READ, static_cast<v8::PropertyAttribute >(v8::DontDelete)); 571 prototypeTemplate->SetAccessor(v8AtomicString(isolate, "doNotCheckSecuri tyPerWorldBindingsVoidMethod"), TestInterfaceCheckSecurityV8Internal::doNotCheck SecurityPerWorldBindingsVoidMethodOriginSafeMethodGetterCallbackForMainWorld, Te stInterfaceCheckSecurityV8Internal::TestInterfaceCheckSecurityOriginSafeMethodSe tterCallback, v8Undefined(), v8::ALL_CAN_READ, static_cast<v8::PropertyAttribute >(v8::DontDelete));
578 } else { 572 } else {
579 prototypeTemplate->SetAccessor(v8AtomicString(isolate, "doNotCheckSecuri tyPerWorldBindingsVoidMethod"), TestInterfaceCheckSecurityV8Internal::doNotCheck SecurityPerWorldBindingsVoidMethodOriginSafeMethodGetterCallback, TestInterfaceC heckSecurityV8Internal::TestInterfaceCheckSecurityOriginSafeMethodSetterCallback , v8Undefined(), v8::ALL_CAN_READ, static_cast<v8::PropertyAttribute>(v8::DontDe lete)); 573 prototypeTemplate->SetAccessor(v8AtomicString(isolate, "doNotCheckSecuri tyPerWorldBindingsVoidMethod"), TestInterfaceCheckSecurityV8Internal::doNotCheck SecurityPerWorldBindingsVoidMethodOriginSafeMethodGetterCallback, TestInterfaceC heckSecurityV8Internal::TestInterfaceCheckSecurityOriginSafeMethodSetterCallback , v8Undefined(), v8::ALL_CAN_READ, static_cast<v8::PropertyAttribute>(v8::DontDe lete));
580 } 574 }
581 prototypeTemplate->SetAccessor(v8AtomicString(isolate, "doNotCheckSecurityRe adOnlyVoidMethod"), TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityRead OnlyVoidMethodOriginSafeMethodGetterCallback, 0, v8Undefined(), v8::ALL_CAN_READ , static_cast<v8::PropertyAttribute>(v8::DontDelete | v8::ReadOnly)); 575 prototypeTemplate->SetAccessor(v8AtomicString(isolate, "doNotCheckSecurityRe adOnlyVoidMethod"), TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityRead OnlyVoidMethodOriginSafeMethodGetterCallback, 0, v8Undefined(), v8::ALL_CAN_READ , static_cast<v8::PropertyAttribute>(v8::DontDelete | v8::ReadOnly));
582 instanceTemplate->SetAccessor(v8AtomicString(isolate, "doNotCheckSecurityUnf orgeableVoidMethod"), TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityUn forgeableVoidMethodOriginSafeMethodGetterCallback, TestInterfaceCheckSecurityV8I nternal::TestInterfaceCheckSecurityOriginSafeMethodSetterCallback, v8Undefined() , v8::ALL_CAN_READ, static_cast<v8::PropertyAttribute>(v8::DontDelete)); 576 instanceTemplate->SetAccessor(v8AtomicString(isolate, "doNotCheckSecurityUnf orgeableVoidMethod"), TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityUn forgeableVoidMethodOriginSafeMethodGetterCallback, TestInterfaceCheckSecurityV8I nternal::TestInterfaceCheckSecurityOriginSafeMethodSetterCallback, v8Undefined() , v8::ALL_CAN_READ, static_cast<v8::PropertyAttribute>(v8::DontDelete));
583 577
584 // Custom toString template 578 // Custom toString template
585 functionTemplate->Set(v8AtomicString(isolate, "toString"), V8PerIsolateData: :current()->toStringTemplate()); 579 functionTemplate->Set(v8AtomicString(isolate, "toString"), V8PerIsolateData: :current()->toStringTemplate());
586 } 580 }
587 581
588 v8::Handle<v8::FunctionTemplate> V8TestInterfaceCheckSecurity::domTemplate(v8::I solate* isolate, WrapperWorldType currentWorldType) 582 v8::Handle<v8::FunctionTemplate> V8TestInterfaceCheckSecurity::domTemplate(v8::I solate* isolate)
589 { 583 {
590 V8PerIsolateData* data = V8PerIsolateData::from(isolate); 584 V8PerIsolateData* data = V8PerIsolateData::from(isolate);
591 V8PerIsolateData::TemplateMap::iterator result = data->templateMap(currentWo rldType).find(&wrapperTypeInfo); 585 V8PerIsolateData::TemplateMap::iterator result = data->templateMap().find(&w rapperTypeInfo);
592 if (result != data->templateMap(currentWorldType).end()) 586 if (result != data->templateMap().end())
593 return result->value.newLocal(isolate); 587 return result->value.newLocal(isolate);
594 588
595 TRACE_EVENT_SCOPED_SAMPLING_STATE("Blink", "BuildDOMTemplate"); 589 TRACE_EVENT_SCOPED_SAMPLING_STATE("Blink", "BuildDOMTemplate");
596 v8::Local<v8::FunctionTemplate> templ = v8::FunctionTemplate::New(isolate, V 8ObjectConstructor::isValidConstructorMode); 590 v8::Local<v8::FunctionTemplate> templ = v8::FunctionTemplate::New(isolate, V 8ObjectConstructor::isValidConstructorMode);
597 configureV8TestInterfaceCheckSecurityTemplate(templ, isolate, currentWorldTy pe); 591 configureV8TestInterfaceCheckSecurityTemplate(templ, isolate);
598 data->templateMap(currentWorldType).add(&wrapperTypeInfo, UnsafePersistent<v 8::FunctionTemplate>(isolate, templ)); 592 data->templateMap().add(&wrapperTypeInfo, UnsafePersistent<v8::FunctionTempl ate>(isolate, templ));
599 return templ; 593 return templ;
600 } 594 }
601 595
602 bool V8TestInterfaceCheckSecurity::hasInstance(v8::Handle<v8::Value> jsValue, v8 ::Isolate* isolate) 596 bool V8TestInterfaceCheckSecurity::hasInstance(v8::Handle<v8::Value> jsValue, v8 ::Isolate* isolate)
603 { 597 {
604 return V8PerIsolateData::from(isolate)->hasInstance(&wrapperTypeInfo, jsValu e); 598 return V8PerIsolateData::from(isolate)->hasInstance(&wrapperTypeInfo, jsValu e);
605 } 599 }
606 600
607 v8::Handle<v8::Object> V8TestInterfaceCheckSecurity::findInstanceInPrototypeChai n(v8::Handle<v8::Value> jsValue, v8::Isolate* isolate) 601 v8::Handle<v8::Object> V8TestInterfaceCheckSecurity::findInstanceInPrototypeChai n(v8::Handle<v8::Value> jsValue, v8::Isolate* isolate)
608 { 602 {
(...skipping 30 matching lines...) Expand all
639 fromInternalPointer(object)->deref(); 633 fromInternalPointer(object)->deref();
640 } 634 }
641 635
642 template<> 636 template<>
643 v8::Handle<v8::Value> toV8NoInline(TestInterfaceCheckSecurity* impl, v8::Handle< v8::Object> creationContext, v8::Isolate* isolate) 637 v8::Handle<v8::Value> toV8NoInline(TestInterfaceCheckSecurity* impl, v8::Handle< v8::Object> creationContext, v8::Isolate* isolate)
644 { 638 {
645 return toV8(impl, creationContext, isolate); 639 return toV8(impl, creationContext, isolate);
646 } 640 }
647 641
648 } // namespace WebCore 642 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698