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 482 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
493 // did return |frame| we could get in trouble because the frame could be | 493 // did return |frame| we could get in trouble because the frame could be |
494 // navigated to another security origin. | 494 // navigated to another security origin. |
495 return 0; | 495 return 0; |
496 } | 496 } |
497 | 497 |
498 v8::Local<v8::Context> toV8Context(ExecutionContext* context, DOMWrapperWorld* w
orld) | 498 v8::Local<v8::Context> toV8Context(ExecutionContext* context, DOMWrapperWorld* w
orld) |
499 { | 499 { |
500 if (context->isDocument()) { | 500 if (context->isDocument()) { |
501 ASSERT(world); | 501 ASSERT(world); |
502 if (Frame* frame = toDocument(context)->frame()) | 502 if (Frame* frame = toDocument(context)->frame()) |
503 return frame->script()->windowShell(world)->context(); | 503 return frame->script().windowShell(world)->context(); |
504 } else if (context->isWorkerGlobalScope()) { | 504 } else if (context->isWorkerGlobalScope()) { |
505 ASSERT(!world); | 505 ASSERT(!world); |
506 if (WorkerScriptController* script = toWorkerGlobalScope(context)->scrip
t()) | 506 if (WorkerScriptController* script = toWorkerGlobalScope(context)->scrip
t()) |
507 return script->context(); | 507 return script->context(); |
508 } | 508 } |
509 return v8::Local<v8::Context>(); | 509 return v8::Local<v8::Context>(); |
510 } | 510 } |
511 | 511 |
512 bool handleOutOfMemory() | 512 bool handleOutOfMemory() |
513 { | 513 { |
514 v8::Local<v8::Context> context = v8::Context::GetCurrent(); | 514 v8::Local<v8::Context> context = v8::Context::GetCurrent(); |
515 | 515 |
516 if (!context->HasOutOfMemoryException()) | 516 if (!context->HasOutOfMemoryException()) |
517 return false; | 517 return false; |
518 | 518 |
519 // Warning, error, disable JS for this frame? | 519 // Warning, error, disable JS for this frame? |
520 Frame* frame = toFrameIfNotDetached(context); | 520 Frame* frame = toFrameIfNotDetached(context); |
521 if (!frame) | 521 if (!frame) |
522 return true; | 522 return true; |
523 | 523 |
524 frame->script()->clearForOutOfMemory(); | 524 frame->script().clearForOutOfMemory(); |
525 frame->loader()->client()->didExhaustMemoryAvailableForScript(); | 525 frame->loader()->client()->didExhaustMemoryAvailableForScript(); |
526 | 526 |
527 if (Settings* settings = frame->settings()) | 527 if (Settings* settings = frame->settings()) |
528 settings->setScriptEnabled(false); | 528 settings->setScriptEnabled(false); |
529 | 529 |
530 return true; | 530 return true; |
531 } | 531 } |
532 | 532 |
533 v8::Local<v8::Value> handleMaxRecursionDepthExceeded(v8::Isolate* isolate) | 533 v8::Local<v8::Value> handleMaxRecursionDepthExceeded(v8::Isolate* isolate) |
534 { | 534 { |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
599 | 599 |
600 v8::Isolate* toIsolate(ExecutionContext* context) | 600 v8::Isolate* toIsolate(ExecutionContext* context) |
601 { | 601 { |
602 if (context && context->isDocument()) | 602 if (context && context->isDocument()) |
603 return mainThreadIsolate(); | 603 return mainThreadIsolate(); |
604 return v8::Isolate::GetCurrent(); | 604 return v8::Isolate::GetCurrent(); |
605 } | 605 } |
606 | 606 |
607 v8::Isolate* toIsolate(Frame* frame) | 607 v8::Isolate* toIsolate(Frame* frame) |
608 { | 608 { |
609 return frame->script()->isolate(); | 609 return frame->script().isolate(); |
610 } | 610 } |
611 | 611 |
612 } // namespace WebCore | 612 } // namespace WebCore |
OLD | NEW |