diff options
author | jianli@chromium.org <jianli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-12 01:03:02 +0000 |
---|---|---|
committer | jianli@chromium.org <jianli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-12 01:03:02 +0000 |
commit | c489b2702caeb985677c0d1ff2a7a1678bbb41a8 (patch) | |
tree | 7490706f8f82d8fd3379541f41b9091b0c1d563f | |
parent | 7435b830a7b6d2a43f94afbcca57bbc102db2ef3 (diff) | |
download | chromium_src-c489b2702caeb985677c0d1ff2a7a1678bbb41a8.zip chromium_src-c489b2702caeb985677c0d1ff2a7a1678bbb41a8.tar.gz chromium_src-c489b2702caeb985677c0d1ff2a7a1678bbb41a8.tar.bz2 |
Fix issue with getting self of WorkerContext.
Review URL: http://codereview.chromium.org/40205
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11504 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | webkit/port/bindings/v8/V8WorkerContextCustom.cpp | 2 | ||||
-rw-r--r-- | webkit/port/bindings/v8/WorkerContextExecutionProxy.cpp | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/webkit/port/bindings/v8/V8WorkerContextCustom.cpp b/webkit/port/bindings/v8/V8WorkerContextCustom.cpp index 3134ba2..14d7b80 100644 --- a/webkit/port/bindings/v8/V8WorkerContextCustom.cpp +++ b/webkit/port/bindings/v8/V8WorkerContextCustom.cpp @@ -88,7 +88,7 @@ ACCESSOR_GETTER(WorkerContextSelf) { INC_STATS(L"DOM.WorkerContext.self._get"); WorkerContext* imp = V8Proxy::ToNativeObject<WorkerContext>( V8ClassIndex::WORKERCONTEXT, info.Holder()); - return V8Proxy::ToV8Object(V8ClassIndex::WORKERCONTEXT, imp); + return WorkerContextExecutionProxy::WorkerContextToV8Object(imp); } ACCESSOR_GETTER(WorkerContextOnmessage) { diff --git a/webkit/port/bindings/v8/WorkerContextExecutionProxy.cpp b/webkit/port/bindings/v8/WorkerContextExecutionProxy.cpp index f4ab728..fd0c160 100644 --- a/webkit/port/bindings/v8/WorkerContextExecutionProxy.cpp +++ b/webkit/port/bindings/v8/WorkerContextExecutionProxy.cpp @@ -167,13 +167,14 @@ v8::Handle<v8::Value> WorkerContextExecutionProxy::ToV8Object( V8ClassIndex::V8WrapperType type, void* imp) { if (!imp) return v8::Null(); + if (type == V8ClassIndex::WORKERCONTEXT) + return WorkerContextToV8Object(static_cast<WorkerContext*>(imp)); + // Non DOM node v8::Persistent<v8::Object> result = GetDOMObjectMap().get(imp); if (result.IsEmpty()) { v8::Local<v8::Object> v8obj = InstantiateV8Object(type, type, imp); if (!v8obj.IsEmpty()) { - // Go through big switch statement, it has some duplications - // that were handled by code above (such as CSSVALUE, CSSRULE, etc). switch (type) { case V8ClassIndex::WORKERLOCATION: static_cast<WorkerLocation*>(imp)->ref(); |