Changeset 50638 in webkit
- Timestamp:
- Nov 8, 2009 10:00:02 PM (14 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r50637 r50638 1 2009-11-08 Drew Wilson <atwilson@chromium.org> 2 3 Reviewed by Dimitri Glazkov. 4 5 V8 WorkerContextExecutionProxy does not handle SharedWorkers 6 https://bugs.webkit.org/show_bug.cgi?id=31226 7 8 Now checks to see what type of context is active and creates the 9 appropriate wrapper (DEDICATEDWORKERCONTEXT vs SHAREDWORKERCONTEXT). 10 11 Added support for converting to SharedWorkers and SharedWorkerContexts. 12 13 Test: Existing layout tests cover this case (start passing in Chrome). 14 15 * bindings/v8/WorkerContextExecutionProxy.cpp: 16 (WebCore::WorkerContextExecutionProxy::initContextIfNeeded): 17 Now generates the right type of DOMWrapper for SharedWorkerContexts. 18 (WebCore::WorkerContextExecutionProxy::convertToV8Object): 19 Added support for SHAREDWORKERCONTEXT. 20 (WebCore::WorkerContextExecutionProxy::convertEventTargetToV8Object): 21 Added support for SharedWorker and SharedWorkerContext. 22 1 23 2009-11-08 Johnny Ding <johnnyding.webkit@gmail.com> 2 24 -
trunk/WebCore/bindings/v8/WorkerContextExecutionProxy.cpp
r50347 r50638 151 151 152 152 // Create a new JS object and use it as the prototype for the shadow global object. 153 v8::Handle<v8::Function> workerContextConstructor = V8DOMWrapper::getConstructorForContext(V8ClassIndex::DEDICATEDWORKERCONTEXT, context); 153 V8ClassIndex::V8WrapperType contextType = m_workerContext->isDedicatedWorkerContext() ? V8ClassIndex::DEDICATEDWORKERCONTEXT : V8ClassIndex::SHAREDWORKERCONTEXT; 154 v8::Handle<v8::Function> workerContextConstructor = V8DOMWrapper::getConstructorForContext(contextType, context); 154 155 v8::Local<v8::Object> jsWorkerContext = SafeAllocation::newInstance(workerContextConstructor); 155 156 // Bail out if allocation failed. … … 160 161 161 162 // Wrap the object. 162 V8DOMWrapper::setDOMWrapper(jsWorkerContext, V8ClassIndex::ToInt( V8ClassIndex::DEDICATEDWORKERCONTEXT), m_workerContext);163 V8DOMWrapper::setDOMWrapper(jsWorkerContext, V8ClassIndex::ToInt(contextType), m_workerContext); 163 164 164 165 V8DOMWrapper::setJSWrapperForDOMObject(m_workerContext, v8::Persistent<v8::Object>::New(jsWorkerContext)); … … 175 176 return v8::Null(); 176 177 177 if (type == V8ClassIndex::DEDICATEDWORKERCONTEXT )178 if (type == V8ClassIndex::DEDICATEDWORKERCONTEXT || type == V8ClassIndex::SHAREDWORKERCONTEXT) 178 179 return convertWorkerContextToV8Object(static_cast<WorkerContext*>(impl)); 179 180 … … 287 288 return convertWorkerContextToV8Object(workerContext); 288 289 290 SharedWorkerContext* sharedWorkerContext = target->toSharedWorkerContext(); 291 if (sharedWorkerContext) 292 return convertWorkerContextToV8Object(sharedWorkerContext); 293 289 294 Worker* worker = target->toWorker(); 290 295 if (worker) 291 296 return convertToV8Object(V8ClassIndex::WORKER, worker); 297 298 SharedWorker* sharedWorker = target->toSharedWorker(); 299 if (sharedWorker) 300 return convertToV8Object(V8ClassIndex::SHAREDWORKER, sharedWorker); 292 301 293 302 XMLHttpRequest* xhr = target->toXMLHttpRequest();
Note: See TracChangeset
for help on using the changeset viewer.