Timeline
Aug 5, 2018:
- 11:43 PM Changeset in webkit [234587] by
-
- 4 edits in trunk
[GTK][WPE] Fetch tests assert in SubresourceLoader::didReceiveResponse()
https://bugs.webkit.org/show_bug.cgi?id=188163
Patch by Rob Buis <rbuis@igalia.com> on 2018-08-05
Reviewed by Frédéric Wang.
Source/WebCore:
Fetch in manual redirect mode uses didReceiveResponse instead of
willSendRequestInternal, so update the ASSERT.
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didReceiveResponse):
LayoutTests:
Unskip since this will not crash in Debug anymore.
- platform/wpe/TestExpectations:
- 9:37 PM Changeset in webkit [234586] by
-
- 253 edits1 copy3 moves6 adds in trunk
Add support for microtasks in workers
https://bugs.webkit.org/show_bug.cgi?id=188246
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
This test is wrong[1,2]. It starts failing since our worker starts using correct microtask queues.
[1]: https://github.com/web-platform-tests/wpt/pull/8936
[2]: https://github.com/w3c/ServiceWorker/issues/1213#issuecomment-342640579
- web-platform-tests/service-workers/service-worker/extendable-event-async-waituntil.https-expected.txt:
Source/WebCore:
This patch adds the microtask mechanism to workers. To adopt the existing microtask mechanism from the main thread,
we extend JSMainThreadExecState for non-main-threads. We rename it to JSExecState, and store stacked
ExecState* data in thread local storage in ThreadGlobalData instead of a static variable s_mainThreadState.
We add MicrotaskQueue to WorkerGlobalScope since each worker has its own thread and it should have its
own microtask queue.
- Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.cpp:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSBindingsAllInOne.cpp:
- bindings/js/JSCallbackData.cpp:
(WebCore::JSCallbackData::invokeCallback):
- bindings/js/JSCustomElementInterface.cpp:
(WebCore::constructCustomElementSynchronously):
(WebCore::JSCustomElementInterface::upgradeElement):
(WebCore::JSCustomElementInterface::invokeCallback):
- bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
- bindings/js/JSDOMGlobalObjectTask.cpp:
- bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::queueTaskToEventLoop):
Queue a microtask to MicrotaskQueue instead of posting a macrotask.
(WebCore::JSDOMWindowMicrotaskCallback::create): Deleted.
(WebCore::JSDOMWindowMicrotaskCallback::call): Deleted.
(WebCore::JSDOMWindowMicrotaskCallback::JSDOMWindowMicrotaskCallback): Deleted.
(): Deleted.
Extract JSDOMWindowMicrotaskCallback as JSMicrotaskCallback and create a new file for it.
- bindings/js/JSErrorHandler.cpp:
(WebCore::JSErrorHandler::handleEvent):
- bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
- bindings/js/JSExecState.cpp: Renamed from Source/WebCore/bindings/js/JSMainThreadExecState.cpp.
(WebCore::JSExecState::didLeaveScriptContext):
If we are in a main thread, we consume main thread microtask queue. If we are in worker thread,
we consume a microtask queue per worker.
(WebCore::functionCallHandlerFromAnyThread):
(WebCore::evaluateHandlerFromAnyThread):
- bindings/js/JSExecState.h: Renamed from Source/WebCore/bindings/js/JSMainThreadExecState.h.
(WebCore::JSExecState::currentState):
(WebCore::JSExecState::call):
(WebCore::JSExecState::evaluate):
(WebCore::JSExecState::profiledCall):
(WebCore::JSExecState::profiledEvaluate):
(WebCore::JSExecState::runTask):
(WebCore::JSExecState::loadModule):
(WebCore::JSExecState::linkAndEvaluateModule):
(WebCore::JSExecState::JSExecState):
(WebCore::JSExecState::~JSExecState):
(WebCore::JSExecState::setCurrentState):
Store and load ExecState in thread local storage, ThreadGlobalData. This allows us to use it for workers.
(WebCore::JSMainThreadNullState::JSMainThreadNullState):
(WebCore::JSMainThreadNullState::~JSMainThreadNullState):
We keep this name "JSMainThreadNullState" since CustomElementReactionStack should be stick to the main thread.
And this class is only used in the main thread.
- bindings/js/JSExecStateInstrumentation.h: Renamed from Source/WebCore/bindings/js/JSMainThreadExecStateInstrumentation.h.
(WebCore::JSExecState::instrumentFunctionInternal):
(WebCore::JSExecState::instrumentFunctionCall):
(WebCore::JSExecState::instrumentFunctionConstruct):
- bindings/js/JSMicrotaskCallback.h: Copied from Source/WebKitLegacy/mac/DOM/DOMHTMLBaseElement.mm.
(WebCore::JSMicrotaskCallback::create):
(WebCore::JSMicrotaskCallback::call):
(WebCore::JSMicrotaskCallback::JSMicrotaskCallback):
- bindings/js/JSWorkerGlobalScopeBase.cpp:
(WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):
- bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::executeFunctionInContext):
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::evaluateInWorld):
(WebCore::ScriptController::loadModuleScriptInWorld):
(WebCore::ScriptController::linkAndEvaluateModuleScriptInWorld):
(WebCore::ScriptController::canAccessFromCurrentOrigin):
- bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::evaluate):
- bridge/objc/WebScriptObject.mm:
(-[WebScriptObject callWebScriptMethod:withArguments:]):
(-[WebScriptObject evaluateWebScript:]):
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::compileShader):
(WebCore::WebGLRenderingContextBase::printToConsole):
- inspector/InspectorCanvas.cpp:
(WebCore::InspectorCanvas::buildObjectForCanvas):
(WebCore::InspectorCanvas::buildAction):
- inspector/InspectorController.cpp:
- inspector/InspectorFrontendHost.cpp:
- inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createGenericRecord):
- inspector/WorkerInspectorController.cpp:
- inspector/agents/InspectorCanvasAgent.cpp:
- inspector/agents/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::buildInitiatorObject):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::postMessage):
- page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::addMessage):
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::reportViolation const):
- platform/ThreadGlobalData.h:
(WebCore::ThreadGlobalData::ThreadGlobalData::currentState const):
(WebCore::ThreadGlobalData::ThreadGlobalData::setCurrentState):
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::removeMicrotaskQueue):
- workers/WorkerGlobalScope.h:
(WebCore::WorkerGlobalScope::microtaskQueue const):
- workers/WorkerThread.cpp:
(WebCore::WorkerThread::stop):
- workers/service/ExtendableEvent.cpp:
(WebCore::ExtendableEvent::addExtendLifetimePromise):
When dispatching an "install" event from service worker, we first create an event,
dispatch it, and set a handler which is called when a pending promise count becomes zero.
However, the old code checked pending promise count in a queued microtask. It worked
previously because microtask is actually a macrotask in the service worker. So this check
is done after a handler is set. But this patch introduces real microtask, and this check
happens before a handler is set because dispatching an event can exhaust microtask queue.
According to the spec, this check should not be done in microtask[1]. We make this checking
part as a macrotask. We note that algorithm noted as FIXMEs should be done in this
microtask while the checking part should not be done.
[1]: https://w3c.github.io/ServiceWorker/#installation-algorithm
Source/WebKit:
Rename JSMainThreadExecState.h to JSExecState.h.
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttr.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlob.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASection.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRule.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleList.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclaration.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheet.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRect.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMComment.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementation.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenList.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentGtk.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentType.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElementGtk.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFile.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileList.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollection.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocument.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollection.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElement.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEvent.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaList.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEvent.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMap.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeGtk.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIterator.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeList.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstruction.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRange.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheet.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetList.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMText.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalker.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEvent.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEvent.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathExpression.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathNSResolver.cpp:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResult.cpp:
Source/WebKitLegacy/mac:
Rename JSMainThreadExecState.h to JSExecState.h.
- DOM/DOMAttr.mm:
- DOM/DOMBlob.mm:
- DOM/DOMCDATASection.mm:
- DOM/DOMCSSCharsetRule.mm:
- DOM/DOMCSSFontFaceRule.mm:
- DOM/DOMCSSImportRule.mm:
- DOM/DOMCSSMediaRule.mm:
- DOM/DOMCSSPageRule.mm:
- DOM/DOMCSSPrimitiveValue.mm:
- DOM/DOMCSSRule.mm:
- DOM/DOMCSSRuleList.mm:
- DOM/DOMCSSStyleDeclaration.mm:
- DOM/DOMCSSStyleRule.mm:
- DOM/DOMCSSStyleSheet.mm:
- DOM/DOMCSSUnknownRule.mm:
- DOM/DOMCSSValue.mm:
- DOM/DOMCSSValueList.mm:
- DOM/DOMCharacterData.mm:
- DOM/DOMComment.mm:
- DOM/DOMCounter.mm:
- DOM/DOMDocument.mm:
- DOM/DOMDocumentFragment.mm:
- DOM/DOMDocumentType.mm:
- DOM/DOMElement.mm:
- DOM/DOMEvent.mm:
- DOM/DOMFile.mm:
- DOM/DOMFileList.mm:
- DOM/DOMHTML.mm:
- DOM/DOMHTMLAnchorElement.mm:
- DOM/DOMHTMLAppletElement.mm:
- DOM/DOMHTMLAreaElement.mm:
- DOM/DOMHTMLBRElement.mm:
- DOM/DOMHTMLBaseElement.mm:
- DOM/DOMHTMLBaseFontElement.mm:
- DOM/DOMHTMLBodyElement.mm:
- DOM/DOMHTMLButtonElement.mm:
- DOM/DOMHTMLCanvasElement.mm:
- DOM/DOMHTMLCollection.mm:
- DOM/DOMHTMLDListElement.mm:
- DOM/DOMHTMLDirectoryElement.mm:
- DOM/DOMHTMLDivElement.mm:
- DOM/DOMHTMLDocument.mm:
- DOM/DOMHTMLElement.mm:
- DOM/DOMHTMLEmbedElement.mm:
- DOM/DOMHTMLFieldSetElement.mm:
- DOM/DOMHTMLFontElement.mm:
- DOM/DOMHTMLFormElement.mm:
- DOM/DOMHTMLFrameElement.mm:
- DOM/DOMHTMLFrameSetElement.mm:
- DOM/DOMHTMLHRElement.mm:
- DOM/DOMHTMLHeadElement.mm:
- DOM/DOMHTMLHeadingElement.mm:
- DOM/DOMHTMLHtmlElement.mm:
- DOM/DOMHTMLIFrameElement.mm:
- DOM/DOMHTMLImageElement.mm:
- DOM/DOMHTMLInputElement.mm:
- DOM/DOMHTMLLIElement.mm:
- DOM/DOMHTMLLabelElement.mm:
- DOM/DOMHTMLLegendElement.mm:
- DOM/DOMHTMLLinkElement.mm:
- DOM/DOMHTMLMapElement.mm:
- DOM/DOMHTMLMarqueeElement.mm:
- DOM/DOMHTMLMediaElement.mm:
- DOM/DOMHTMLMenuElement.mm:
- DOM/DOMHTMLMetaElement.mm:
- DOM/DOMHTMLModElement.mm:
- DOM/DOMHTMLOListElement.mm:
- DOM/DOMHTMLObjectElement.mm:
- DOM/DOMHTMLOptGroupElement.mm:
- DOM/DOMHTMLOptionElement.mm:
- DOM/DOMHTMLOptionsCollection.mm:
- DOM/DOMHTMLParagraphElement.mm:
- DOM/DOMHTMLParamElement.mm:
- DOM/DOMHTMLPreElement.mm:
- DOM/DOMHTMLQuoteElement.mm:
- DOM/DOMHTMLScriptElement.mm:
- DOM/DOMHTMLSelectElement.mm:
- DOM/DOMHTMLStyleElement.mm:
- DOM/DOMHTMLTableCaptionElement.mm:
- DOM/DOMHTMLTableCellElement.mm:
- DOM/DOMHTMLTableColElement.mm:
- DOM/DOMHTMLTableElement.mm:
- DOM/DOMHTMLTableRowElement.mm:
- DOM/DOMHTMLTableSectionElement.mm:
- DOM/DOMHTMLTextAreaElement.mm:
- DOM/DOMHTMLTitleElement.mm:
- DOM/DOMHTMLUListElement.mm:
- DOM/DOMHTMLVideoElement.mm:
- DOM/DOMImplementation.mm:
- DOM/DOMKeyboardEvent.mm:
- DOM/DOMMediaError.mm:
- DOM/DOMMediaList.mm:
- DOM/DOMMouseEvent.mm:
- DOM/DOMMutationEvent.mm:
- DOM/DOMNamedNodeMap.mm:
- DOM/DOMNode.mm:
- DOM/DOMNodeIterator.mm:
- DOM/DOMNodeList.mm:
- DOM/DOMOverflowEvent.mm:
- DOM/DOMProcessingInstruction.mm:
- DOM/DOMProgressEvent.mm:
- DOM/DOMRGBColor.mm:
- DOM/DOMRange.mm:
- DOM/DOMRect.mm:
- DOM/DOMStyleSheet.mm:
- DOM/DOMStyleSheetList.mm:
- DOM/DOMText.mm:
- DOM/DOMTextEvent.mm:
- DOM/DOMTimeRanges.mm:
- DOM/DOMTokenList.mm:
- DOM/DOMTreeWalker.mm:
- DOM/DOMUIEvent.mm:
- DOM/DOMWheelEvent.mm:
- DOM/DOMXPathExpression.mm:
- DOM/DOMXPathResult.mm:
- DOM/ObjCEventListener.mm:
LayoutTests:
- http/wpt/workers/microtasks.any-expected.txt: Added.
- http/wpt/workers/microtasks.any.html: Added.
- http/wpt/workers/microtasks.any.js: Added.
(promise_test):
- http/wpt/workers/microtasks.any.worker-expected.txt: Added.
- http/wpt/workers/microtasks.any.worker.html: Added.
- 5:44 PM Changeset in webkit [234585] by
-
- 2 edits in trunk/Source/WebCore
Properties set on window.customElements can disappear due to GC
https://bugs.webkit.org/show_bug.cgi?id=172575
Lexicologically sort the IDL attributes per Darin's comment.
- dom/CustomElementRegistry.idl:
- 4:19 PM Changeset in webkit [234584] by
-
- 2 edits in trunk/Source/WebCore
[LFC][BFC] contentHeightForFormattingContextRoot uses the wrong coordinate system to compute the height.
https://bugs.webkit.org/show_bug.cgi?id=188319
Reviewed by Antti Koivisto.
Display::Box::marginBox() is in the coordinate system of the box itself (8px top margin translates to y = -8px).
What we need instead to compute the content height is the top/bottom position in the containing block's coordinate system (rect and rectWithMargin).
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::contentHeightForFormattingContextRoot):
- 3:10 AM Changeset in webkit [234583] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Remove unsound assertions in MediaPlayerPrivateGStreamerBase.
https://bugs.webkit.org/show_bug.cgi?id=188162
Reviewed by Philippe Normand.
These assertions sometimes fail, and there's a runtime check right
after them anyway.
Tests: fast/canvas/webgl/texImage2D-video-flipY-false.html
fast/canvas/webgl/texImage2D-video-flipY-true.html
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::copyVideoTextureToPlatformTexture):
(WebCore::MediaPlayerPrivateGStreamerBase::nativeImageForCurrentTime):
- 2:26 AM Changeset in webkit [234582] by
-
- 15 edits15 adds in trunk
[MediaCapabilities] Platform integration
https://bugs.webkit.org/show_bug.cgi?id=187850
Reviewed by Eric Carlson.
Source/WebCore:
Mock platform support for the MediaCapabilities specification.
Test: media/mediacapabilities/mock-decodingInfo.html
media/mediacapabilities/mock-encodingInfo.html
- Modules/mediacapabilities/MediaCapabilities.cpp:
(WebCore::MediaCapabilities::decodingInfo):
(WebCore::MediaCapabilities::encodingInfo):
- Modules/mediacapabilities/MediaCapabilitiesInfo.h:
(WebCore::MediaCapabilitiesInfo::create):
- PlatformGTK.cmake:
- PlatformMac.cmake:
- PlatformWPE.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/mediacapabilities/MediaEngineConfiguration.cpp: Added.
(WebCore::MediaEngineVideoConfiguration::MediaEngineVideoConfiguration):
(WebCore::MediaEngineAudioConfiguration::MediaEngineAudioConfiguration):
(WebCore::MediaEngineConfiguration::MediaEngineConfiguration):
- platform/mediacapabilities/MediaEngineConfiguration.h: Added.
(WebCore::MediaEngineVideoConfiguration::create):
(WebCore::MediaEngineVideoConfiguration::contentType const):
(WebCore::MediaEngineVideoConfiguration::size const):
(WebCore::MediaEngineVideoConfiguration::bitrate const):
(WebCore::MediaEngineVideoConfiguration::framerate const):
(WebCore::MediaEngineAudioConfiguration::create):
(WebCore::MediaEngineAudioConfiguration::contentType const):
(WebCore::MediaEngineAudioConfiguration::channels const):
(WebCore::MediaEngineAudioConfiguration::bitrate const):
(WebCore::MediaEngineAudioConfiguration::samplerate const):
(WebCore::MediaEngineConfiguration::audioConfiguration const):
(WebCore::MediaEngineConfiguration::videoConfiguration const):
- platform/mediacapabilities/MediaEngineConfigurationFactory.cpp: Added.
(WebCore::mockEnabled):
(WebCore::MediaEngineConfigurationFactory::createDecodingConfiguration):
(WebCore::MediaEngineConfigurationFactory::createEncodingConfiguration):
(WebCore::MediaEngineConfigurationFactory::enableMock):
(WebCore::MediaEngineConfigurationFactory::disableMock):
- platform/mediacapabilities/MediaEngineConfigurationFactory.h: Added.
- platform/mediacapabilities/MediaEngineDecodingConfiguration.h: Added.
(WebCore::MediaEngineDecodingConfiguration::MediaEngineDecodingConfiguration):
(WebCore::MediaEngineDecodingConfiguration::canDecodeMedia):
(WebCore::MediaEngineDecodingConfiguration::canSmoothlyDecodeMedia):
(WebCore::MediaEngineDecodingConfiguration::canPowerEfficientlyDecodeMedia):
(WebCore::MediaEngineDecodingConfiguration::decodingType const):
- platform/mediacapabilities/MediaEngineEncodingConfiguration.h: Added.
(WebCore::MediaEngineEncodingConfiguration::MediaEngineEncodingConfiguration):
(WebCore::MediaEngineEncodingConfiguration::canEncodeMedia):
(WebCore::MediaEngineEncodingConfiguration::canSmoothlyEncodeMedia):
(WebCore::MediaEngineEncodingConfiguration::canPowerEfficientlyEncodeMedia):
(WebCore::MediaEngineEncodingConfiguration::encodingType const):
- platform/mock/MediaEngineDecodingConfigurationMock.cpp: Added.
(WebCore::MediaEngineDecodingConfigurationMock::canDecodeMedia):
(WebCore::MediaEngineDecodingConfigurationMock::canSmoothlyDecodeMedia):
(WebCore::MediaEngineDecodingConfigurationMock::canPowerEfficientlyDecodeMedia):
- platform/mock/MediaEngineDecodingConfigurationMock.h: Added.
- platform/mock/MediaEngineEncodingConfigurationMock.cpp: Added.
(WebCore::MediaEngineEncodingConfigurationMock::canEncodeMedia):
(WebCore::MediaEngineEncodingConfigurationMock::canSmoothlyEncodeMedia):
(WebCore::MediaEngineEncodingConfigurationMock::canPowerEfficientlyEncodeMedia):
- platform/mock/MediaEngineEncodingConfigurationMock.h: Added.
- testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::enableMockMediaCapabilities):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
Mock tests for the MediaCapabilities specification.
- media/mediacapabilities/mock-decodingInfo-expected.txt: Added.
- media/mediacapabilities/mock-decodingInfo.html: Added.
- media/mediacapabilities/mock-encodingInfo-expected.txt: Added.
- media/mediacapabilities/mock-encodingInfo.html: Added.
- media/video-test.js:
(checkMediaCapabilitiesInfo):
Aug 4, 2018:
- 3:57 PM Changeset in webkit [234581] by
-
- 3 edits in trunk/Source/WebCore
Make WebCore::Timer more space-efficient
https://bugs.webkit.org/show_bug.cgi?id=187455
Reviewed by Brent Fulgham.
Steal a bit from m_heapIndex for m_wasDeleted to eliminate padding in Timer.
This reduces the size of Document, which has 8 Timers, from 3360 to 3296 bytes (saving 64 bytes).
- platform/Timer.cpp:
(WebCore::TimerBase::TimerBase):
- platform/Timer.h:
- 1:07 PM Changeset in webkit [234580] by
-
- 2 edits in trunk/Source/JavaScriptCore
REGRESSION (r208953): TemplateObjectDescriptor constructor calculates m_hash on use-after-move variable
<https://webkit.org/b/188331>
Reviewed by Yusuke Suzuki.
- runtime/TemplateObjectDescriptor.h:
(JSC::TemplateObjectDescriptor::TemplateObjectDescriptor):
Usem_rawstringsinstead ofrawStringsto calculate hash.
- 10:38 AM Changeset in webkit [234579] by
-
- 1 edit in trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
Sort the WebCore project file
- 2:02 AM Changeset in webkit [234578] by
-
- 6 edits2 adds in trunk
Properties set on window.customElements can disappear due to GC
https://bugs.webkit.org/show_bug.cgi?id=172575
<rdar://problem/32440668>
Reviewed by Saam Barati.
Source/WebCore:
Fixed the bug that JS wrapper of CustomElementsRegistry can erroneously get collected during GC
by keeping it alive as long as the global object is alive.
Test: fast/custom-elements/custom-element-registry-wrapper-should-stay-alive.html
- dom/CustomElementRegistry.cpp:
(WebCore::CustomElementRegistry::create):
(WebCore::CustomElementRegistry::CustomElementRegistry):
- dom/CustomElementRegistry.h:
(WebCore::CustomElementRegistry): Make this inherited from ContextDestructionObserver.
- dom/CustomElementRegistry.idl: Set GenerateIsReachable=ImplScriptExecutionContext in IDL. This will
make CustomElementRegistry reachable from the global object.
- page/DOMWindow.cpp:
(WebCore::DOMWindow::ensureCustomElementRegistry):
LayoutTests:
Added a regression test.
- fast/custom-elements/custom-element-registry-wrapper-should-stay-alive-expected.txt: Added.
- fast/custom-elements/custom-element-registry-wrapper-should-stay-alive.html: Added.