OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008, 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008, 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 509 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
520 PassRefPtrWillBeRawPtr<XPathNSResolver> toXPathNSResolver(v8::Handle<v8::Value>
value, v8::Isolate* isolate) | 520 PassRefPtrWillBeRawPtr<XPathNSResolver> toXPathNSResolver(v8::Handle<v8::Value>
value, v8::Isolate* isolate) |
521 { | 521 { |
522 RefPtrWillBeRawPtr<XPathNSResolver> resolver = nullptr; | 522 RefPtrWillBeRawPtr<XPathNSResolver> resolver = nullptr; |
523 if (V8XPathNSResolver::hasInstance(value, isolate)) | 523 if (V8XPathNSResolver::hasInstance(value, isolate)) |
524 resolver = V8XPathNSResolver::toNative(v8::Handle<v8::Object>::Cast(valu
e)); | 524 resolver = V8XPathNSResolver::toNative(v8::Handle<v8::Object>::Cast(valu
e)); |
525 else if (value->IsObject()) | 525 else if (value->IsObject()) |
526 resolver = V8CustomXPathNSResolver::create(value->ToObject(), isolate); | 526 resolver = V8CustomXPathNSResolver::create(value->ToObject(), isolate); |
527 return resolver; | 527 return resolver; |
528 } | 528 } |
529 | 529 |
530 DOMWindow* toDOMWindow(v8::Handle<v8::Value> value, v8::Isolate* isolate) | 530 LocalDOMWindow* toDOMWindow(v8::Handle<v8::Value> value, v8::Isolate* isolate) |
531 { | 531 { |
532 if (value.IsEmpty() || !value->IsObject()) | 532 if (value.IsEmpty() || !value->IsObject()) |
533 return 0; | 533 return 0; |
534 | 534 |
535 v8::Handle<v8::Object> windowWrapper = V8Window::findInstanceInPrototypeChai
n(v8::Handle<v8::Object>::Cast(value), isolate); | 535 v8::Handle<v8::Object> windowWrapper = V8Window::findInstanceInPrototypeChai
n(v8::Handle<v8::Object>::Cast(value), isolate); |
536 if (!windowWrapper.IsEmpty()) | 536 if (!windowWrapper.IsEmpty()) |
537 return V8Window::toNative(windowWrapper); | 537 return V8Window::toNative(windowWrapper); |
538 return 0; | 538 return 0; |
539 } | 539 } |
540 | 540 |
541 DOMWindow* toDOMWindow(v8::Handle<v8::Context> context) | 541 LocalDOMWindow* toDOMWindow(v8::Handle<v8::Context> context) |
542 { | 542 { |
543 if (context.IsEmpty()) | 543 if (context.IsEmpty()) |
544 return 0; | 544 return 0; |
545 return toDOMWindow(context->Global(), context->GetIsolate()); | 545 return toDOMWindow(context->Global(), context->GetIsolate()); |
546 } | 546 } |
547 | 547 |
548 DOMWindow* enteredDOMWindow(v8::Isolate* isolate) | 548 LocalDOMWindow* enteredDOMWindow(v8::Isolate* isolate) |
549 { | 549 { |
550 DOMWindow* window = toDOMWindow(isolate->GetEnteredContext()); | 550 LocalDOMWindow* window = toDOMWindow(isolate->GetEnteredContext()); |
551 if (!window) { | 551 if (!window) { |
552 // We don't always have an entered DOM window, for example during microt
ask callbacks from V8 | 552 // We don't always have an entered DOM window, for example during microt
ask callbacks from V8 |
553 // (where the entered context may be the DOM-in-JS context). In that cas
e, we fall back | 553 // (where the entered context may be the DOM-in-JS context). In that cas
e, we fall back |
554 // to the current context. | 554 // to the current context. |
555 window = currentDOMWindow(isolate); | 555 window = currentDOMWindow(isolate); |
556 ASSERT(window); | 556 ASSERT(window); |
557 } | 557 } |
558 return window; | 558 return window; |
559 } | 559 } |
560 | 560 |
561 DOMWindow* currentDOMWindow(v8::Isolate* isolate) | 561 LocalDOMWindow* currentDOMWindow(v8::Isolate* isolate) |
562 { | 562 { |
563 return toDOMWindow(isolate->GetCurrentContext()); | 563 return toDOMWindow(isolate->GetCurrentContext()); |
564 } | 564 } |
565 | 565 |
566 DOMWindow* callingDOMWindow(v8::Isolate* isolate) | 566 LocalDOMWindow* callingDOMWindow(v8::Isolate* isolate) |
567 { | 567 { |
568 v8::Handle<v8::Context> context = isolate->GetCallingContext(); | 568 v8::Handle<v8::Context> context = isolate->GetCallingContext(); |
569 if (context.IsEmpty()) { | 569 if (context.IsEmpty()) { |
570 // Unfortunately, when processing script from a plug-in, we might not | 570 // Unfortunately, when processing script from a plug-in, we might not |
571 // have a calling context. In those cases, we fall back to the | 571 // have a calling context. In those cases, we fall back to the |
572 // entered context. | 572 // entered context. |
573 context = isolate->GetEnteredContext(); | 573 context = isolate->GetEnteredContext(); |
574 } | 574 } |
575 return toDOMWindow(context); | 575 return toDOMWindow(context); |
576 } | 576 } |
(...skipping 23 matching lines...) Expand all Loading... |
600 // Unfortunately, when processing script from a plug-in, we might not | 600 // Unfortunately, when processing script from a plug-in, we might not |
601 // have a calling context. In those cases, we fall back to the | 601 // have a calling context. In those cases, we fall back to the |
602 // entered context. | 602 // entered context. |
603 context = isolate->GetEnteredContext(); | 603 context = isolate->GetEnteredContext(); |
604 } | 604 } |
605 return toExecutionContext(context); | 605 return toExecutionContext(context); |
606 } | 606 } |
607 | 607 |
608 LocalFrame* toFrameIfNotDetached(v8::Handle<v8::Context> context) | 608 LocalFrame* toFrameIfNotDetached(v8::Handle<v8::Context> context) |
609 { | 609 { |
610 DOMWindow* window = toDOMWindow(context); | 610 LocalDOMWindow* window = toDOMWindow(context); |
611 if (window && window->isCurrentlyDisplayedInFrame()) | 611 if (window && window->isCurrentlyDisplayedInFrame()) |
612 return window->frame(); | 612 return window->frame(); |
613 // We return 0 here because |context| is detached from the LocalFrame. If we | 613 // We return 0 here because |context| is detached from the LocalFrame. If we |
614 // did return |frame| we could get in trouble because the frame could be | 614 // did return |frame| we could get in trouble because the frame could be |
615 // navigated to another security origin. | 615 // navigated to another security origin. |
616 return 0; | 616 return 0; |
617 } | 617 } |
618 | 618 |
619 v8::Local<v8::Context> toV8Context(ExecutionContext* context, DOMWrapperWorld& w
orld) | 619 v8::Local<v8::Context> toV8Context(ExecutionContext* context, DOMWrapperWorld& w
orld) |
620 { | 620 { |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
810 PassRefPtr<TraceEvent::ConvertableToTraceFormat> devToolsTraceEventData(Executio
nContext* context, v8::Handle<v8::Function> function, v8::Isolate* isolate) | 810 PassRefPtr<TraceEvent::ConvertableToTraceFormat> devToolsTraceEventData(Executio
nContext* context, v8::Handle<v8::Function> function, v8::Isolate* isolate) |
811 { | 811 { |
812 int scriptId = 0; | 812 int scriptId = 0; |
813 String resourceName; | 813 String resourceName; |
814 int lineNumber = 1; | 814 int lineNumber = 1; |
815 GetDevToolsFunctionInfo(function, isolate, scriptId, resourceName, lineNumbe
r); | 815 GetDevToolsFunctionInfo(function, isolate, scriptId, resourceName, lineNumbe
r); |
816 return InspectorFunctionCallEvent::data(context, scriptId, resourceName, lin
eNumber); | 816 return InspectorFunctionCallEvent::data(context, scriptId, resourceName, lin
eNumber); |
817 } | 817 } |
818 | 818 |
819 } // namespace WebCore | 819 } // namespace WebCore |
OLD | NEW |