Commit 4f482052 authored by eric@webkit.org's avatar eric@webkit.org

2010-02-02 Kavita Kanetkar <kkanetkar@chromium.org>

        Reviewed by Dmitry Titov.

        [V8] Raising an exception while setting timeout/interval from a detached frame
        https://bugs.webkit.org/show_bug.cgi?id=34453
        This fixes the issue/failing test mentioned in Chromium bug:
        http://code.google.com/p/chromium/issues/detail?id=32671

        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::WindowSetTimeoutImpl):

git-svn-id: svn://svn.chromium.org/blink/trunk@54227 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 3d40814f
2010-02-02 Kavita Kanetkar <kkanetkar@chromium.org>
Reviewed by Dmitry Titov.
[V8] Raising an exception while setting timeout/interval from a detached frame
https://bugs.webkit.org/show_bug.cgi?id=34453
This fixes the issue/failing test mentioned in Chromium bug:
http://code.google.com/p/chromium/issues/detail?id=32671
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::WindowSetTimeoutImpl):
2010-02-02 Kwang Yul Seo <skyul@company100.net> 2010-02-02 Kwang Yul Seo <skyul@company100.net>
Reviewed by Eric Seidel. Reviewed by Eric Seidel.
......
...@@ -78,8 +78,15 @@ v8::Handle<v8::Value> WindowSetTimeoutImpl(const v8::Arguments& args, bool singl ...@@ -78,8 +78,15 @@ v8::Handle<v8::Value> WindowSetTimeoutImpl(const v8::Arguments& args, bool singl
if (argumentCount < 1) if (argumentCount < 1)
return v8::Undefined(); return v8::Undefined();
v8::Handle<v8::Value> function = args[0]; DOMWindow* imp = V8DOMWindow::toNative(args.Holder());
ScriptExecutionContext* scriptContext = static_cast<ScriptExecutionContext*>(imp->document());
if (!scriptContext) {
V8Proxy::setDOMException(INVALID_ACCESS_ERR);
return v8::Undefined();
}
v8::Handle<v8::Value> function = args[0];
WebCore::String functionString; WebCore::String functionString;
if (!function->IsFunction()) { if (!function->IsFunction()) {
if (function->IsString()) if (function->IsString())
...@@ -104,16 +111,9 @@ v8::Handle<v8::Value> WindowSetTimeoutImpl(const v8::Arguments& args, bool singl ...@@ -104,16 +111,9 @@ v8::Handle<v8::Value> WindowSetTimeoutImpl(const v8::Arguments& args, bool singl
if (argumentCount >= 2) if (argumentCount >= 2)
timeout = args[1]->Int32Value(); timeout = args[1]->Int32Value();
DOMWindow* imp = V8DOMWindow::toNative(args.Holder());
if (!V8BindingSecurity::canAccessFrame(V8BindingState::Only(), imp->frame(), true)) if (!V8BindingSecurity::canAccessFrame(V8BindingState::Only(), imp->frame(), true))
return v8::Undefined(); return v8::Undefined();
ScriptExecutionContext* scriptContext = static_cast<ScriptExecutionContext*>(imp->document());
if (!scriptContext)
return v8::Undefined();
int id; int id;
if (function->IsFunction()) { if (function->IsFunction()) {
int paramCount = argumentCount >= 2 ? argumentCount - 2 : 0; int paramCount = argumentCount >= 2 ? argumentCount - 2 : 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment