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

Side by Side Diff: Source/bindings/v8/custom/V8WindowCustom.cpp

Issue 317493002: Change FrameTree to return Frames instead of LocalFrames. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: dcheng's comment addressed 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
« no previous file with comments | « no previous file | Source/core/dom/Document.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009, 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2009, 2011 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 378 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 if (!window) 389 if (!window)
390 return; 390 return;
391 391
392 LocalFrame* frame = window->frame(); 392 LocalFrame* frame = window->frame();
393 // window is detached from a frame. 393 // window is detached from a frame.
394 if (!frame) 394 if (!frame)
395 return; 395 return;
396 396
397 // Search sub-frames. 397 // Search sub-frames.
398 AtomicString propName = toCoreAtomicString(name); 398 AtomicString propName = toCoreAtomicString(name);
399 LocalFrame* child = frame->tree().scopedChild(propName); 399 Frame* child = frame->tree().scopedChild(propName);
400 if (child) { 400 if (child) {
401 v8SetReturnValueFast(info, child->domWindow(), window); 401 v8SetReturnValueFast(info, child->domWindow(), window);
402 return; 402 return;
403 } 403 }
404 404
405 // Search IDL functions defined in the prototype 405 // Search IDL functions defined in the prototype
406 if (!info.Holder()->GetRealNamedProperty(name).IsEmpty()) 406 if (!info.Holder()->GetRealNamedProperty(name).IsEmpty())
407 return; 407 return;
408 408
409 // Search named items in the document. 409 // Search named items in the document.
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
456 return false; 456 return false;
457 457
458 // Notify the loader's client if the initial document has been accessed. 458 // Notify the loader's client if the initial document has been accessed.
459 if (target->loader().stateMachine()->isDisplayingInitialEmptyDocument()) 459 if (target->loader().stateMachine()->isDisplayingInitialEmptyDocument())
460 target->loader().didAccessInitialDocument(); 460 target->loader().didAccessInitialDocument();
461 461
462 if (key->IsString()) { 462 if (key->IsString()) {
463 DEFINE_STATIC_LOCAL(const AtomicString, nameOfProtoProperty, ("__proto__ ", AtomicString::ConstructFromLiteral)); 463 DEFINE_STATIC_LOCAL(const AtomicString, nameOfProtoProperty, ("__proto__ ", AtomicString::ConstructFromLiteral));
464 464
465 AtomicString name = toCoreAtomicString(key.As<v8::String>()); 465 AtomicString name = toCoreAtomicString(key.As<v8::String>());
466 LocalFrame* childFrame = target->tree().scopedChild(name); 466 Frame* childFrame = target->tree().scopedChild(name);
467 // Notice that we can't call HasRealNamedProperty for ACCESS_HAS 467 // Notice that we can't call HasRealNamedProperty for ACCESS_HAS
468 // because that would generate infinite recursion. 468 // because that would generate infinite recursion.
469 if (type == v8::ACCESS_HAS && childFrame) 469 if (type == v8::ACCESS_HAS && childFrame)
470 return true; 470 return true;
471 // We need to explicitly compare against nameOfProtoProperty because 471 // We need to explicitly compare against nameOfProtoProperty because
472 // V8's JSObject::LocalLookup finds __proto__ before 472 // V8's JSObject::LocalLookup finds __proto__ before
473 // interceptors and even when __proto__ isn't a "real named property". 473 // interceptors and even when __proto__ isn't a "real named property".
474 v8::Handle<v8::String> keyString = key.As<v8::String>(); 474 v8::Handle<v8::String> keyString = key.As<v8::String>();
475 if (type == v8::ACCESS_GET 475 if (type == v8::ACCESS_GET
476 && childFrame 476 && childFrame
(...skipping 18 matching lines...) Expand all
495 ASSERT(targetWindow); 495 ASSERT(targetWindow);
496 496
497 LocalFrame* target = targetWindow->frame(); 497 LocalFrame* target = targetWindow->frame();
498 if (!target) 498 if (!target)
499 return false; 499 return false;
500 500
501 // Notify the loader's client if the initial document has been accessed. 501 // Notify the loader's client if the initial document has been accessed.
502 if (target->loader().stateMachine()->isDisplayingInitialEmptyDocument()) 502 if (target->loader().stateMachine()->isDisplayingInitialEmptyDocument())
503 target->loader().didAccessInitialDocument(); 503 target->loader().didAccessInitialDocument();
504 504
505 LocalFrame* childFrame = target->tree().scopedChild(index); 505 Frame* childFrame = target->tree().scopedChild(index);
506 506
507 // Notice that we can't call HasRealNamedProperty for ACCESS_HAS 507 // Notice that we can't call HasRealNamedProperty for ACCESS_HAS
508 // because that would generate infinite recursion. 508 // because that would generate infinite recursion.
509 if (type == v8::ACCESS_HAS && childFrame) 509 if (type == v8::ACCESS_HAS && childFrame)
510 return true; 510 return true;
511 if (type == v8::ACCESS_GET 511 if (type == v8::ACCESS_GET
512 && childFrame 512 && childFrame
513 && !host->HasRealIndexedProperty(index) 513 && !host->HasRealIndexedProperty(index)
514 && !window->HasRealIndexedProperty(index)) 514 && !window->HasRealIndexedProperty(index))
515 return true; 515 return true;
(...skipping 16 matching lines...) Expand all
532 v8::Handle<v8::Context> context = toV8Context(frame, DOMWrapperWorld::curren t(isolate)); 532 v8::Handle<v8::Context> context = toV8Context(frame, DOMWrapperWorld::curren t(isolate));
533 if (context.IsEmpty()) 533 if (context.IsEmpty())
534 return v8Undefined(); 534 return v8Undefined();
535 535
536 v8::Handle<v8::Object> global = context->Global(); 536 v8::Handle<v8::Object> global = context->Global();
537 ASSERT(!global.IsEmpty()); 537 ASSERT(!global.IsEmpty());
538 return global; 538 return global;
539 } 539 }
540 540
541 } // namespace WebCore 541 } // namespace WebCore
OLDNEW
« no previous file with comments | « no previous file | Source/core/dom/Document.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698