Timeline



Aug 5, 2018:

11:43 PM Changeset in webkit [234587] by commit-queue@webkit.org
  • 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 Yusuke Suzuki
  • 253 edits
    1 copy
    3 moves
    6 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 rniwa@webkit.org
  • 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 Alan Bujtas
  • 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 Ms2ger@igalia.com
  • 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 Philippe Normand
  • 15 edits
    15 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 Simon Fraser
  • 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 ddkilzer@apple.com
  • 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):
Use m_rawstrings instead of rawStrings to calculate hash.

10:38 AM Changeset in webkit [234579] by Simon Fraser
  • 1 edit in trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

Sort the WebCore project file

2:02 AM Changeset in webkit [234578] by rniwa@webkit.org
  • 6 edits
    2 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.

Aug 3, 2018:

11:35 PM Changeset in webkit [234577] by rniwa@webkit.org
  • 7 edits in trunk

innerHTML should not synchronously create a custom element
https://bugs.webkit.org/show_bug.cgi?id=188327
<rdar://problem/42923114>

Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

Rebaselined the test now that all test cases are passing.

  • web-platform-tests/custom-elements/connected-callbacks-html-fragment-parsing-expected.txt:

Source/WebCore:

Fixed the bug that the fragment parsing algorithm was synchronously constructing a custom element instead of
enqueuing an element to upgrade.

The fragment parsing algorithm creates an element for a token with *will execute script* flag set to false:
https://html.spec.whatwg.org/multipage/parsing.html#create-an-element-for-the-token
which results in creating an element with synchronous custom elements flag *not* set:
https://dom.spec.whatwg.org/#concept-create-element

When synchronous custom elements flag is false, we're supposed to create an element and enqueue a custom element
upgrade reaction. createHTMLElementOrFindCustomElementInterface was missing this last logic.

Also fixed a bug that Element::enqueueToUpgrade would hit a debug assertion when a custom element which has been
enqueued to upgrade is enqueued to upgrade for the second time. In this case, we need to put the element into the
current element queue (https://html.spec.whatwg.org/multipage/custom-elements.html#current-element-queue) again.

While the specification simply enqueues another upgrade reaction and bails out immediately in the first step of
the upgrade, WebKit's implementation simply avoids this redundancy in the first place:
https://html.spec.whatwg.org/multipage/custom-elements.html#concept-upgrade-an-element

Existing tests such as imported/w3c/web-platform-tests/custom-elements/reactions/Document.html exercises this
code path after the fragment parsing algorithm fix.

Tests: imported/w3c/web-platform-tests/custom-elements/connected-callbacks-html-fragment-parsing.html

  • dom/CustomElementReactionQueue.cpp:

(WebCore::CustomElementReactionQueueItem::type const): Added for an assertion.
(WebCore::CustomElementReactionQueue::enqueueElementUpgrade): Enqueue this element to the current element queue
by calling ensureCurrentQueue and avoid inserting a redundant upgrade reaction.

  • dom/CustomElementReactionQueue.h:
  • dom/Element.cpp:

(WebCore::Element::enqueueToUpgrade): Handle the case when a custom element is enqueued to upgrade for the second
time while it had been waiting in some element queue. In this case, the reaction queue for this element has
already been created and we simply need to put this element back into the current element queue (i.e. this element
now belongs to both element queues).

  • html/parser/HTMLConstructionSite.cpp:

(WebCore::findCustomElementInterface): Extracted out of createHTMLElementOrFindCustomElementInterface.
(WebCore::HTMLConstructionSite::createHTMLElementOrFindCustomElementInterface): Fixed the bug that the HTML parser
was synchronously constructing a custom element even for the fragment parsing algorithm.

11:27 PM Changeset in webkit [234576] by sbarati@apple.com
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

Give the jsc shell the JIT entitlement
https://bugs.webkit.org/show_bug.cgi?id=188324
<rdar://problem/42885806>

Reviewed by Dan Bernstein.

This should help us in ensuring the system jsc is able to JIT.

  • Configurations/JSC.xcconfig:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • allow-jit-macOS.entitlements: Added.
7:04 PM Changeset in webkit [234575] by bshafiei@apple.com
  • 1 copy in tags/Safari-606.1.36

Tag Safari-606.1.36.

7:03 PM Changeset in webkit [234574] by bshafiei@apple.com
  • 1 delete in tags/Safari-606.1.36

Delete tag

7:01 PM Changeset in webkit [234573] by bshafiei@apple.com
  • 2 edits in branches/safari-606-branch/Tools

Cherry-pick r234547. rdar://problem/42902608

Unreviewed gardening; r234534 changed the policy for what audio session is set when a
media element is paused. Updating the test to reflect the new policy.

  • TestWebKitAPI/Tests/WebKitLegacy/ios/AudioSessionCategoryIOS.mm: (TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234547 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7:01 PM Changeset in webkit [234572] by bshafiei@apple.com
  • 13 edits
    3 adds in branches/safari-606-branch

Cherry-pick r234534. rdar://problem/42902608

Control center controls disappear when pausing, locking device.
https://bugs.webkit.org/show_bug.cgi?id=188282
<rdar://problem/42497809>

Reviewed by Eric Carlson.

Source/WebCore:

Test: platform/mac/media/audio-session-category-video-paused.html

MediaRemote will set any app whose audio session category changes from MediaPlayback to
Ambient as not eligable for being the "now playing" app. Previously, due to the ordering of
events, we never moved from MediaPlayback to Ambient when pausing <video>, even though that
was the intention. Now that that bug is fixed, it exposed this new issue with MediaRemote.

To solve the new issue, make our audio session category policy more explicit: once we are in
MediaPlayback category, we will remain so as long as the media element in queston stays
loaded, has played, and is never interrupted by the system.

Make MediaSessionManagerCocoa a proper subclass of PlatformMediaSessionManager, and make
MediaSessionManageriOS and -Mac subclasses of the -Cocoa class. Add a new
m_hasPlayedSinceLastInterruption ivar to PlatformMediaSession, set when the state() changes
to Playing, and cleared during an interruption. Check this flag when deciding what audio
sessino category to set in MediaSessionManagerCocoa.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/PlatformMediaSession.cpp: (WebCore::PlatformMediaSession::setState):
  • platform/audio/PlatformMediaSession.h: (WebCore::PlatformMediaSession::hasPlayedSinceLastInterruption const): (WebCore::PlatformMediaSession::clearHasPlayedSinceLastInterruption):
  • platform/audio/PlatformMediaSessionManager.cpp: (WebCore::PlatformMediaSessionManager::updateSessionState): Deleted.
  • platform/audio/PlatformMediaSessionManager.h: (WebCore::PlatformMediaSessionManager::audioHardwareListener): (WebCore::PlatformMediaSessionManager::updateSessionState):
  • platform/audio/cocoa/MediaSessionManagerCocoa.cpp: (MediaSessionManagerCocoa::updateSessionState): (MediaSessionManagerCocoa::beginInterruption): (PlatformMediaSessionManager::updateSessionState): Deleted.
  • platform/audio/cocoa/MediaSessionManagerCocoa.h: Added.
  • platform/audio/ios/MediaSessionManagerIOS.h:
  • platform/audio/ios/MediaSessionManagerIOS.mm: (WebCore::MediaSessionManageriOS::MediaSessionManageriOS):
  • platform/audio/mac/MediaSessionManagerMac.h:
  • platform/audio/mac/MediaSessionManagerMac.mm: (WebCore::MediaSessionManagerMac::MediaSessionManagerMac):

LayoutTests:

  • platform/mac/media/audio-session-category-video-paused-expected.txt: Added.
  • platform/mac/media/audio-session-category-video-paused.html: Added.
  • platform/ios/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234534 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:33 PM Changeset in webkit [234571] by bshafiei@apple.com
  • 1 copy in tags/Safari-606.1.36

Tag Safari-606.1.36.

6:24 PM Changeset in webkit [234570] by bshafiei@apple.com
  • 1 delete in tags/Safari-606.1.36

Delete tag

6:09 PM Changeset in webkit [234569] by commit-queue@webkit.org
  • 23 edits
    5 adds in trunk

We should cache the compiled sandbox profile in a data vault
https://bugs.webkit.org/show_bug.cgi?id=184991

Patch by Ben Richards <benton_richards@apple.com> on 2018-08-03
Reviewed by Ryosuke Niwa.

Source/WebCore:

Added functionality to FileHandle so that it can lock a file while open.
Added a function to FileSystem to delete non empty directories.

  • platform/FileHandle.cpp:

(WebCore::FileHandle::FileHandle):
(WebCore::FileHandle::open):
(WebCore::FileHandle::close):

  • platform/FileHandle.h:
  • platform/FileSystem.h:
  • platform/cocoa/FileSystemCocoa.mm:

(WebCore::FileSystem::deleteNonEmptyDirectory):

Source/WebKit:

This patch changes a few things (note: data vaults and sandbox entitlements are only used in internal builds):
(1) Instead of compiling a sandbox every time a process is launched, processes now look for a cached sandbox

in a process specific data vault on macOS platforms. (ChildProcessMac.mm)

(2) If a valid cached sandbox is not found, a process will create the data vault (or ensure that it exists),

compile a sandbox, and cache it.

(3) In order to create process specific data vaults, each process now has their own <process name>-OSX-sandbox.entitlements

file which contains an entitlement with a process specific "storage class" which ensures that each process
can only ever access its own data vault. (See the article on confluence "Data Vaults and Restricted Files" for more info)

(4) The sandbox entitlements file for the Network, WebContent and Plugin services are loaded dynamically

through Scripts/<process name>-process-entitlements.sh which is triggered in a new build phase for each service.
The Storage process sandbox entitlements are loaded directly in Configurations/StorageService.xcconfig.
The reason that the sandbox entitlements are applied dynamically is so that these sandbox entitlements
are only applied when WK_USE_RESTRICTED_ENTITLEMENTS is YES. This means that open source builds will still work.

  • Configurations/Network-OSX-sandbox.entitlements: Added.
  • Configurations/Plugin-OSX-sandbox.entitlements: Added.
  • Configurations/Storage-OSX-sandbox.entitlements: Added.
  • Configurations/StorageService.xcconfig:
  • Configurations/WebContent-OSX-sandbox.entitlements: Added.
  • Configurations/WebKit.xcconfig:
  • NetworkProcess/NetworkProcess.h:
  • PluginProcess/PluginProcess.h:
  • Scripts/process-network-entitlements.sh: Added.
  • Scripts/process-plugin-entitlements.sh: Added.
  • Scripts/process-webcontent-entitlements.sh:
  • Shared/ChildProcess.h:
  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:

(WebKit::XPCServiceInitializer):

  • Shared/SandboxInitializationParameters.h:

(WebKit::SandboxInitializationParameters::setOverrideSandboxProfilePath):
(WebKit::SandboxInitializationParameters::overrideSandboxProfilePath const):
(WebKit::SandboxInitializationParameters::setSandboxProfile):
(WebKit::SandboxInitializationParameters::sandboxProfile const):
(): Deleted.

  • Shared/mac/ChildProcessMac.mm:

(WebKit::SandboxProfileDeleter::operator()):
(WebKit::SandboxParametersDeleter::operator()):
(WebKit::SandboxInfo::SandboxInfo):
(WebKit::fileContents):
(WebKit::processStorageClass):
(WebKit::setAndSerializeSandboxParameters):
(WebKit::getUserCacheDirectory):
(WebKit::sandboxDataVaultParentDirectory):
(WebKit::sandboxDirectory):
(WebKit::sandboxFilePath):
(WebKit::ensureSandboxCacheDirectory):
(WebKit::writeSandboxDataToCacheFile):
(WebKit::compileAndCacheSandboxProfile):
(WebKit::tryApplyCachedSandbox):
(WebKit::webKit2Bundle):
(WebKit::sandboxProfilePath):
(WebKit::compileAndApplySandboxSlowCase):
(WebKit::applySandbox):
(WebKit::initializeSandboxParameters):
(WebKit::ChildProcess::initializeSandbox):

  • Shared/mac/SandboxInitialiationParametersMac.mm:

(WebKit::SandboxInitializationParameters::SandboxInitializationParameters):

  • StorageProcess/StorageProcess.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebProcess.h:

Source/WTF:

Added trace points for sandbox initialization and exposed functions needed for sandbox caching

  • wtf/SystemTracing.h:
  • wtf/spi/darwin/SandboxSPI.h:

Tools:

Added trace points for sandbox initialization

  • Tracing/SystemTracePoints.plist:
6:06 PM Changeset in webkit [234568] by bshafiei@apple.com
  • 13 edits
    3 deletes in branches/safari-606-branch

Revert r234534. rdar://problem/42902608

6:06 PM Changeset in webkit [234567] by bshafiei@apple.com
  • 2 edits in branches/safari-606-branch/Tools

Revert r234547. rdar://problem/42902608

5:11 PM Changeset in webkit [234566] by commit-queue@webkit.org
  • 24 edits in trunk

WebGL 2 conformance: vertex_arrays/vertex_array_object.html
https://bugs.webkit.org/show_bug.cgi?id=188291
<rdar://problem/42792709>

Source/WebCore:

Patch by Justin Fan <Justin Fan> on 2018-08-03
Reviewed by Dean Jackson.

Get https://www.khronos.org/registry/webgl/conformance-suites/2.0.0/conformance2/vertex_arrays/vertex-array-object.html
working on Mac OS and iOS, and check in the new test expectations.

Existing test: webgl/2.0.0/conformance2/vertex_arrays/vertex-array-object.html

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::initializeVertexArrayObjects):
(WebCore::WebGL2RenderingContext::deleteVertexArray):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::deleteObject):

  • html/canvas/WebGLVertexArrayObject.cpp:

(WebCore::WebGLVertexArrayObject::WebGLVertexArrayObject):

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::checkVaryingsPacking const):
(WebCore::GraphicsContext3D::createVertexArray):
(WebCore::GraphicsContext3D::deleteVertexArray):
(WebCore::GraphicsContext3D::isVertexArray):
(WebCore::GraphicsContext3D::bindVertexArray):

LayoutTests:

Get https://www.khronos.org/registry/webgl/conformance-suites/2.0.0/conformance2/vertex_arrays/vertex-array-object.html
working on Mac OS and iOS, and check in the new test expectations.

Patch by Justin Fan <Justin Fan> on 2018-08-03
Reviewed by Dean Jackson.

The following FAILed before this patch but are now expecting PASSes.

  • webgl/2.0.0/conformance2/glsl3/array-as-return-value-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/array-assign-constructor-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/array-assign-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/array-complex-indexing-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/array-element-increment-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/array-equality-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/array-in-complex-expression-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/const-array-init-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/frag-depth-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/loops-with-side-effects-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug-expected.txt:
4:59 PM Changeset in webkit [234565] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip imported/w3c/web-platform-tests/FileAPI/reading-data-section/filereader_abort.html.
https://bugs.webkit.org/show_bug.cgi?id=187269

Unreviewed test gardening.

4:25 PM Changeset in webkit [234564] by commit-queue@webkit.org
  • 62 edits
    2 deletes in trunk/Source/WebCore

Remove WebGPUObject
https://bugs.webkit.org/show_bug.cgi?id=188114

Patch by Sam Weinig <sam@webkit.org> on 2018-08-03
Reviewed by Darin Adler.

This removes the unecessary WebGPUObject base class and updates the classes
that were inheriting from it to instead inherit directly from RefCounted. This
shrinks the size of all the classes that were inheriting from it, as they no
longer store a RefPtr<WebGPURenderingContext> member, which is unused. Most
of the classes also shrink because they can be devirtualized.

This also updates most of the create functions and constructors for the classes
that were inheriting from WebGPUObject to no longer require the WebGPURenderingContext
to be passed in.

  • For WebGPUBuffer, WebGPUCommandQueue, WebGPUComputeCommandEncoder, WebGPUComputePipelineState,

WebGPUDepthStencilState, WebGPUDrawable, WebGPUFunction, WebGPULibrary, WebGPURenderCommandEncoder,
WebGPURenderPassDepthAttachmentDescriptor, WebGPURenderPipelineColorAttachmentDescriptor,
WebGPURenderPipelineState, and WebGPUTexture the WebGPURenderingContext and any other additional
parameters needed for initialization were replaced with the underlying type (e.g. WebGPUBuffer
now gets passed a GPUBuffer).

  • WebGPUCommandBuffer is passed a GPUCommandQueue, since it needs to construct the underlying

GPUCommandBuffer itself so it can pass in the completion handler.

  • For WebGPUDepthStencilDescriptor, WebGPURenderPassAttachmentDescriptor,

WebGPURenderPassColorAttachmentDescriptor, WebGPURenderPassDescriptor and WebGPURenderPipelineDescriptor
the create and constructor functions are empty.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Remove WebGPUObject.h/cpp

  • html/canvas/WebGPUBuffer.cpp:

(WebCore::WebGPUBuffer::WebGPUBuffer):

  • html/canvas/WebGPUBuffer.h:
  • html/canvas/WebGPUBuffer.idl:

Switch from inheriting from WebGPUObject to directly inheriting from
RefCounted<WebGPUBuffer>. Since this de-virtualizes it, also add
ImplementationLacksVTable to the IDL file. Also update create
and constructor to take a GPUBuffer directly, rather than the context.

  • html/canvas/WebGPUCommandBuffer.cpp:

(WebCore::WebGPUCommandBuffer::create):
(WebCore::WebGPUCommandBuffer::WebGPUCommandBuffer):
Update create and constructor to no longer require a context, as it would
now be unused, as it no longer inherits from WebGPUObject nor needs to hold
onto the context for any reason.

(WebCore::WebGPUCommandBuffer::createRenderCommandEncoderWithDescriptor):
Update to call the new WebGPURenderCommandEncoder::create, which no longer
requires a context.

(WebCore::WebGPUCommandBuffer::createComputeCommandEncoder):
Update to call the new WebGPUComputeCommandEncoder::create, which no longer
requires a context.

  • html/canvas/WebGPUCommandBuffer.h:
  • html/canvas/WebGPUCommandBuffer.idl:

Switch from inheriting from GPUObject to directly inheriting from
RefCounted<WebGPUCommandBuffer>. Since this de-virtualizes it, also add
ImplementationLacksVTable to the IDL file. Also update create and constructor
to no longer take a context, and just take a GPUCommandQueue. We can't directly
pass a GPUCommandBuffer as WebGPUCommandBuffer needs to pass in a completion handler
on construction of the underlying GPUCommandBuffer.

  • html/canvas/WebGPUCommandQueue.cpp:

(WebCore::WebGPUCommandQueue::WebGPUCommandQueue):
(WebCore::WebGPUCommandQueue::createCommandBuffer):
Update to call the new WebGPUCommandBuffer::create, which no longer
requires a context.

  • html/canvas/WebGPUCommandQueue.h:
  • html/canvas/WebGPUCommandQueue.idl:

Switch from inheriting from GPUObject to directly inheriting from
RefCounted<WebGPUCommandQueue>. Since this de-virtualizes it, also add
ImplementationLacksVTable to the IDL file. Also update create and
constructor to take a GPUCommandQueue directly.

  • html/canvas/WebGPUComputeCommandEncoder.cpp:

(WebCore::WebGPUComputeCommandEncoder::create):
(WebCore::WebGPUComputeCommandEncoder::WebGPUComputeCommandEncoder):

  • html/canvas/WebGPUComputeCommandEncoder.h:
  • html/canvas/WebGPUComputeCommandEncoder.idl:

Switch from inheriting from GPUObject to directly inheriting from
RefCounted<WebGPUComputeCommandEncoder>. Since this de-virtualizes it,
also add ImplementationLacksVTable to the IDL file. Also update create and
constructor to take a GPUComputeCommandEncoder directly

  • html/canvas/WebGPUComputePipelineState.cpp:

(WebCore::WebGPUComputePipelineState::WebGPUComputePipelineState):

  • html/canvas/WebGPUComputePipelineState.h:
  • html/canvas/WebGPUComputePipelineState.idl:

Switch from inheriting from WebGPUObject to directly inheriting from
RefCounted<WebGPUComputePipelineState>. Since this de-virtualizes it, also add
ImplementationLacksVTable to the IDL file. Also update create and
constructor to take a GPUComputePipelineState directly.

  • html/canvas/WebGPUDepthStencilDescriptor.cpp:

Remove unneeded include of include "WebGPURenderingContext.h".

  • html/canvas/WebGPUDepthStencilDescriptor.h:
  • html/canvas/WebGPUDepthStencilDescriptor.idl:

Switch from inheriting from WebGPUObject to directly inheriting from
RefCounted<WebGPUDepthStencilDescriptor>. Since this de-virtualizes it, also add
ImplementationLacksVTable to the IDL file.

  • html/canvas/WebGPUDepthStencilState.cpp:

(WebCore::WebGPUDepthStencilState::WebGPUDepthStencilState):

  • html/canvas/WebGPUDepthStencilState.h:
  • html/canvas/WebGPUDepthStencilState.idl:

Switch from inheriting from WebGPUObject to directly inheriting from
RefCounted<WebGPUDepthStencilState>. Since this de-virtualizes it, also add
ImplementationLacksVTable to the IDL file. Also update create and
constructor to take a GPUDepthStencilState directly.

  • html/canvas/WebGPUDrawable.cpp:

(WebCore::WebGPUDrawable::WebGPUDrawable):

  • html/canvas/WebGPUDrawable.h:
  • html/canvas/WebGPUDrawable.idl:

Switch from inheriting from WebGPUObject to directly inheriting from
RefCounted<WebGPUDrawable>. Since this de-virtualizes it, also add
ImplementationLacksVTable to the IDL file. Also update create and
constructor to take a GPUDrawable directly.

  • html/canvas/WebGPUFunction.cpp:

(WebCore::WebGPUFunction::create):
(WebCore::WebGPUFunction::WebGPUFunction):

  • html/canvas/WebGPUFunction.h:
  • html/canvas/WebGPUFunction.idl:

Switch from inheriting from GPUObject to directly inheriting from
RefCounted<WebGPUFunction>. Since this de-virtualizes it, also add
ImplementationLacksVTable to the IDL file. Also update create and
constructor to take a GPUFunction directly.

  • html/canvas/WebGPULibrary.cpp:

(WebCore::WebGPULibrary::WebGPULibrary):
(WebCore::WebGPULibrary::functionWithName const):
Update for new WebGPUFunction::create, which no longer requires a
context.

  • html/canvas/WebGPULibrary.h:
  • html/canvas/WebGPULibrary.idl:

Switch from inheriting from WebGPUObject to directly inheriting from
RefCounted<WebGPULibrary>. Since this de-virtualizes it, also add
ImplementationLacksVTable to the IDL file. Also update create and
constructor to take a GPULibrary directly, rather than the context.
Unlike the other create functions that take their underlying type, this
one also continues to need the sourceCode String to be passed, as that
is not available from the underlying GPULibrary and must be stored
seperately.

  • html/canvas/WebGPUObject.cpp: Removed.
  • html/canvas/WebGPUObject.h: Removed.

Deleted.

  • html/canvas/WebGPURenderCommandEncoder.cpp:

(WebCore::WebGPURenderCommandEncoder::create):
(WebCore::WebGPURenderCommandEncoder::WebGPURenderCommandEncoder):

  • html/canvas/WebGPURenderCommandEncoder.h:
  • html/canvas/WebGPURenderCommandEncoder.idl:

Switch from inheriting from GPUObject to directly inheriting from
RefCounted<WebGPURenderCommandEncoder>. Since this de-virtualizes it, also add
ImplementationLacksVTable to the IDL file. Also update create and
constructor to take a GPURenderCommandEncoder directly.

  • html/canvas/WebGPURenderPassAttachmentDescriptor.cpp:

(WebCore::WebGPURenderPassAttachmentDescriptor::WebGPURenderPassAttachmentDescriptor):

  • html/canvas/WebGPURenderPassAttachmentDescriptor.h:

Switch from inheriting from GPUObject to directly inheriting from
RefCounted<WebGPURenderPassAttachmentDescriptor>. Also update create and
constructor to no longer take a context, as it is now not used. This remains virtual
as it is inherited from by WebGPURenderPassColorAttachmentDescriptor and WebGPURenderPassDepthAttachmentDescriptor.

  • html/canvas/WebGPURenderPassColorAttachmentDescriptor.cpp:

(WebCore::WebGPURenderPassColorAttachmentDescriptor::create):
(WebCore::WebGPURenderPassColorAttachmentDescriptor::WebGPURenderPassColorAttachmentDescriptor):

  • html/canvas/WebGPURenderPassColorAttachmentDescriptor.h:

Update create and constructor to no longer take a context, as it is now not used. Declare final
as this is not inherited by anything.

  • html/canvas/WebGPURenderPassDepthAttachmentDescriptor.cpp:

(WebCore::WebGPURenderPassDepthAttachmentDescriptor::create):
(WebCore::WebGPURenderPassDepthAttachmentDescriptor::WebGPURenderPassDepthAttachmentDescriptor):

  • html/canvas/WebGPURenderPassDepthAttachmentDescriptor.h:

Update create and constructor to no longer take a context, as it is now not used. Declare final
as this is not inherited by anything.

  • html/canvas/WebGPURenderPassDescriptor.cpp:

(WebCore::WebGPURenderPassDescriptor::depthAttachment):
Update for new WebGPURenderPassDepthAttachmentDescriptor::create function which no longer requires
a context.

Semi-interesting note: This function was previously calling "*context()" to pass a WebGPURenderingContext&
to WebGPURenderPassDepthAttachmentDescriptor::create. However, "context()" was always returning null, as
the constructor of WebGPURenderPassDescriptor was not initializing the WebGPUObject with a WebGPURenderingContext.
Now, one might think that this would cause a null-deref, but, because it was being assigned into a
WebGPURenderingContext&, no dereference happens right away (it essentially just passes a pointer) and since
the function it is being passed to does not use it, it never actually gets dereferenced.

(WebCore::WebGPURenderPassDescriptor::colorAttachments):
Update for new WebGPURenderPassColorAttachmentDescriptor::create function which no longer requires
a context.

  • html/canvas/WebGPURenderPassDescriptor.h:
  • html/canvas/WebGPURenderPassDescriptor.idl:

Switch from inheriting from GPUObject to directly inheriting from
RefCounted<WebGPURenderPassDescriptor>. Since this de-virtualizes it, also add
ImplementationLacksVTable to the IDL file.

  • html/canvas/WebGPURenderPipelineColorAttachmentDescriptor.cpp:

(WebCore::WebGPURenderPipelineColorAttachmentDescriptor::create):
(WebCore::WebGPURenderPipelineColorAttachmentDescriptor::WebGPURenderPipelineColorAttachmentDescriptor):

  • html/canvas/WebGPURenderPipelineColorAttachmentDescriptor.h:
  • html/canvas/WebGPURenderPipelineColorAttachmentDescriptor.idl:

Switch from inheriting from GPUObject to directly inheriting from
RefCounted<WebGPURenderPipelineColorAttachmentDescriptor>. Since this de-virtualizes it, also add
ImplementationLacksVTable to the IDL file. Also update create and constructor to
no longer take a context, as it is now not used.

  • html/canvas/WebGPURenderPipelineDescriptor.cpp:

(WebCore::WebGPURenderPipelineDescriptor::colorAttachments):
Update for new WebGPURenderPipelineColorAttachmentDescriptor::create which no longer requires
a context.

  • html/canvas/WebGPURenderPipelineDescriptor.h:
  • html/canvas/WebGPURenderPipelineDescriptor.idl:

Switch from inheriting from GPUObject to directly inheriting from
RefCounted<WebGPURenderPipelineDescriptor>. Since this de-virtualizes it, also add
ImplementationLacksVTable to the IDL file.

  • html/canvas/WebGPURenderPipelineState.cpp:

(WebCore::WebGPURenderPipelineState::WebGPURenderPipelineState):

  • html/canvas/WebGPURenderPipelineState.h:
  • html/canvas/WebGPURenderPipelineState.idl:

Switch from inheriting from GPUObject to directly inheriting from
RefCounted<WebGPURenderPipelineState>. Since this de-virtualizes it, also add
ImplementationLacksVTable to the IDL file. Also update create and
constructor to take a GPURenderPipelineState directly.

  • html/canvas/WebGPURenderingContext.cpp:

(WebCore::WebGPURenderingContext::createLibrary):
(WebCore::WebGPURenderingContext::createRenderPipelineState):
(WebCore::WebGPURenderingContext::createDepthStencilState):
(WebCore::WebGPURenderingContext::createComputePipelineState):
(WebCore::WebGPURenderingContext::createCommandQueue):
(WebCore::WebGPURenderingContext::nextDrawable):
(WebCore::WebGPURenderingContext::createBuffer):
(WebCore::WebGPURenderingContext::createTexture):
Update for new create functions which require the caller to pass
the underlying type.

  • html/canvas/WebGPUTexture.cpp:

(WebCore::WebGPUTexture::createFromDrawableTexture):
Renamed to create.

(WebCore::WebGPUTexture::create): Deleted
All callers now pass a GPUTexture directly.

  • html/canvas/WebGPUTexture.h:
  • html/canvas/WebGPUTexture.idl:

Switch from inheriting from GPUObject to directly inheriting from
RefCounted<WebGPUTexture>. Since this de-virtualizes it, also add
ImplementationLacksVTable to the IDL file.

  • html/canvas/WebGPUTextureDescriptor.h:
  • html/canvas/WebGPUTextureDescriptor.idl:

Switch from inheriting from GPUObject to directly inheriting from
RefCounted<WebGPUTextureDescriptor>. Since this de-virtualizes it, also add
ImplementationLacksVTable to the IDL file.

4:13 PM Changeset in webkit [234563] by commit-queue@webkit.org
  • 39 edits in trunk/Source

Fix spelling of "overridden"
https://bugs.webkit.org/show_bug.cgi?id=188315

Patch by Alex Christensen <achristensen@webkit.org> on 2018-08-03
Reviewed by Darin Adler.

Source/JavaScriptCore:

  • API/JSExport.h:
  • inspector/InjectedScriptSource.js:

Source/ThirdParty/ANGLE:

  • src/libANGLE/renderer/ProgramImpl.h:

Source/ThirdParty/libwebrtc:

  • Source/webrtc/p2p/client/basicportallocator.h:

Source/WebCore:

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityLabel]):
(-[WebAccessibilityObjectWrapper accessibilityValue]):

  • contentextensions/ContentExtensionsBackend.h:
  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::removeStyleFromRulesAndContext):

  • inspector/CommandLineAPIModuleSource.js:
  • platform/ScrollView.h:
  • platform/ScrollableArea.h:
  • platform/mediasession/MediaSessionInterruptionProvider.h:
  • rendering/RenderFragmentedFlow.cpp:

(WebCore::RenderFragmentedFlow::adjustedPositionRelativeToOffsetParent const):

  • rendering/RenderLayer.h:
  • rendering/RenderListBox.h:
  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::localCoordinateSpaceTransform const):

  • svg/SVGLengthContext.cpp:

(WebCore::SVGLengthContext::SVGLengthContext):
(WebCore::SVGLengthContext::convertValueToUserUnits const):
(WebCore::SVGLengthContext::determineViewport const):

  • svg/SVGLengthContext.h:

Source/WebInspectorUI:

  • UserInterface/Views/ContentBrowserTabContentView.js:

(WI.ContentBrowserTabContentView.prototype.treeElementForRepresentedObject):

  • UserInterface/Views/GeneralTreeElement.js:

(WI.GeneralTreeElement.prototype.ondetach):

  • UserInterface/Views/NavigationBar.js:

(WI.NavigationBar.prototype.get sizesToFit):

  • UserInterface/Views/NavigationSidebarPanel.js:

(WI.NavigationSidebarPanel.prototype.shouldFilterPopulate):

  • UserInterface/Views/TextEditor.js:

(WI.TextEditor.prototype.canBeFormatted):

  • UserInterface/Views/TreeElement.js:

(WI.TreeElement.prototype.onpopulate):

Source/WebKit:

  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::Connection::receiveSourceEventHandler):

  • Shared/WebPreferencesStore.cpp:

(WebKit::WebPreferencesStore::encode const):
(WebKit::WebPreferencesStore::decode):
(WebKit::valueForKey):
(WebKit::setValueForKey):
(WebKit::WebPreferencesStore::setStringValueForKey):
(WebKit::WebPreferencesStore::getStringValueForKey const):
(WebKit::WebPreferencesStore::setBoolValueForKey):
(WebKit::WebPreferencesStore::getBoolValueForKey const):
(WebKit::WebPreferencesStore::setUInt32ValueForKey):
(WebKit::WebPreferencesStore::getUInt32ValueForKey const):
(WebKit::WebPreferencesStore::setDoubleValueForKey):
(WebKit::WebPreferencesStore::getDoubleValueForKey const):
(WebKit::WebPreferencesStore::setOverrideDefaultsStringValueForKey):
(WebKit::WebPreferencesStore::setOverrideDefaultsBoolValueForKey):
(WebKit::WebPreferencesStore::setOverrideDefaultsUInt32ValueForKey):
(WebKit::WebPreferencesStore::setOverrideDefaultsDoubleValueForKey):

  • Shared/WebPreferencesStore.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView dragInteraction:previewForLiftingItem:session:]):
(-[WKContentView dragInteraction:previewForCancellingItem:withDefault:]):

  • UIProcess/ios/WKScrollView.mm:

(-[WKScrollView _systemContentInset]):

Source/WebKitLegacy/mac:

  • Misc/WebKitVersionChecks.mm:

(setWebKitLinkTimeVersion):
(WebKitLinkTimeVersion):

  • Plugins/WebBaseNetscapePluginView.mm:

(-[WebBaseNetscapePluginView handleMouseMoved:]):

  • WebCoreSupport/PopupMenuMac.mm:

(PopupMenuMac::populate):

4:10 PM Changeset in webkit [234562] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.36

Tag Safari-606.1.36.

4:01 PM Changeset in webkit [234561] by david_fenton@apple.com
  • 4 edits in trunk

Unreviewed, rolling out r234517.

Caused API test failures on iOS

Reverted changeset:

"[Cocoa] setCookie API fails to set session cookies for
defaultDataStore if processPool created but not used"
https://bugs.webkit.org/show_bug.cgi?id=188209
https://trac.webkit.org/changeset/234517

3:50 PM Changeset in webkit [234560] by commit-queue@webkit.org
  • 16 edits
    1 copy in trunk

Add configuration for automatic process pre-warming
https://bugs.webkit.org/show_bug.cgi?id=187108

Patch by Ben Richards <benton_richards@apple.com> on 2018-08-03
Reviewed by Ryosuke Niwa.

Source/WebKit:

Added configurations to allow setting the maximum number of processes that should be automatically prewarmed.

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetMaximumNumberOfPrewarmedProcesses):

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _setMaximumNumberOfPrewarmedProcesses:]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration setMaximumPrewarmedProcessCount:]):
(-[_WKProcessPoolConfiguration maximumPrewarmedProcessCount]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFinishLoadForFrame): Moved call to notifyProcessPoolToPrewarm from didFirstVisuallyNonEmptyLayoutForFrame to here.
This is to try to ensure that frame loading and prewarming don't happen at the same time as this would be heavy for some devices.
(WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setMaximumNumberOfProcesses): Condition changed so that calling setMaximumNumberOfProcesses after warmInitialProcess
doesn't result in a crash.
(WebKit::WebProcessPool::setMaximumNumberOfPrewarmedProcesses):
(WebKit::WebProcessPool::warmInitialProcess):
(WebKit::WebProcessPool::didReachGoodTimeToPrewarm):

  • UIProcess/WebProcessPool.h:

Tools:

Added new test case for setting maximum prewarmed process count and updated test case for process swap on navigation to set the maximum prewarmed process count to be 1 where relevant.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/InitialWarmedProcessUsed.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/SetMaximumPrewarmedProcessCount.mm:

(TEST):

2:35 PM Changeset in webkit [234559] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews-build] Add build step to Check Patch Relevance
https://bugs.webkit.org/show_bug.cgi?id=188295

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-build/steps.py:

(CheckPatchRelevance): Added step to check patch relevance.
(CheckPatchRelevance._patch_is_relevant): Checks if the patch is relevant.
(CheckPatchRelevance._get_patch): Retrieves the patch from buildbot.
(CheckPatchRelevance._addToLog): Add the log message.
(CheckPatchRelevance.start):

  • BuildSlaveSupport/ews-build/factories.py: Added CheckPatchRelevance step appropriately.
2:10 PM Changeset in webkit [234558] by Basuke Suzuki
  • 3 edits in trunk/LayoutTests

[LayoutTests][websocket] Return correct value even when cookie is not set.
https://bugs.webkit.org/show_bug.cgi?id=188317

Reviewed by Darin Adler.

ws://127.0.0.1:8880/websocket/tests/hybi/echo-cookie_wsh.py

This web socket script throw exception when cookie is not set. That is ended up with
immediate disconnection and causes timeout for failure tests which makes debugging hard.

  • http/tests/websocket/tests/hybi/echo-cookie_wsh.py:

(web_socket_transfer_data):

  • platform/wincairo/TestExpectations:
12:19 PM Changeset in webkit [234557] by Basuke Suzuki
  • 2 edits in trunk/LayoutTests

[Curl] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=188316

Unreviewed test gardening.

Skip some flaky tests.
Add comments why we skip for some platform dependent reason.

  • platform/wincairo/TestExpectations:
12:07 PM Changeset in webkit [234556] by Kocsen Chung
  • 2 edits in branches/safari-606-branch/Tools

Cherry-pick r234547. rdar://problem/42902608

Unreviewed gardening; r234534 changed the policy for what audio session is set when a
media element is paused. Updating the test to reflect the new policy.

  • TestWebKitAPI/Tests/WebKitLegacy/ios/AudioSessionCategoryIOS.mm: (TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234547 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:36 AM Changeset in webkit [234555] by Ms2ger@igalia.com
  • 2 edits in trunk/Source/WebDriver

Fix invalid optional access in WebDriver Session::createTopLevelBrowsingContext.
https://bugs.webkit.org/show_bug.cgi?id=188304

Reviewed by Brian Burg.

  • Session.cpp:

(WebDriver::Session::createTopLevelBrowsingContext): remove incorrect value() call.

11:00 AM Changeset in webkit [234554] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][BFC] Special case the document renderer when computing the height and margin
https://bugs.webkit.org/show_bug.cgi?id=188313

Reviewed by Antti Koivisto.

The document renderer is certainly special and its geometry is likely to be computed as part of "10.6.6 Complicated cases" (spec is unclear) but probably not by
making the it a formatting root. Let's just special case it at contentHeightForFormattingContextRoot(), since having the document renderer as a context root has unwanted side effect.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::contentHeightForFormattingContextRoot):

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::establishesBlockFormattingContext const):

10:57 AM Changeset in webkit [234553] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][BFC] Layout out-of-flow descendants only on the formatting context root.
https://bugs.webkit.org/show_bug.cgi?id=188312

Reviewed by Antti Koivisto.

Collect out-of-flow descendants on the formatting root container instead of the containing block and run layout on them on the root level. It's more efficient this way.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layout const):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::createSubTree):

10:56 AM Changeset in webkit [234552] by achristensen@apple.com
  • 11 edits
    2 adds in trunk/Source/WebKit

Check with SafeBrowsing during navigation in WKWebView
https://bugs.webkit.org/show_bug.cgi?id=188133

Reviewed by Chris Dumez.

This turns WebFramePolicyListenerProxy into an object that now listens for the results
of two processes happening in parallel: the API::NavigationClient's decidePolicyForNavigation{Action, Response}
(which it was already waiting for) and, on platforms that support it, the SafariSafeBrowsing framework's check.
The first result is stored as it waits for the second result unless the first result is the API::NavigationClient
saying to cancel or convert the navigation to a download, in which cases we don't care what the safe browsing
framework results are because we won't show the URL in the browser.

Nothing is done with the safe browsing results yet.

  • UIProcess/Cocoa/SafeBrowsingResultCocoa.mm: Added.

(WebKit::SafeBrowsingResult::SafeBrowsingResult):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::beginSafeBrowsingCheck):

  • UIProcess/SafeBrowsingResult.h: Added.

(WebKit::SafeBrowsingResult::provider const):
(WebKit::SafeBrowsingResult::isPhishing const):
(WebKit::SafeBrowsingResult::isMalware const):
(WebKit::SafeBrowsingResult::isUnwantedSoftware const):
(WebKit::SafeBrowsingResult::isKnownToBeUnsafe const):

  • UIProcess/WebFramePolicyListenerProxy.cpp:

(WebKit::WebFramePolicyListenerProxy::WebFramePolicyListenerProxy):
(WebKit::WebFramePolicyListenerProxy::didReceiveSafeBrowsingResults):
(WebKit::WebFramePolicyListenerProxy::use):
(WebKit::WebFramePolicyListenerProxy::download):
(WebKit::WebFramePolicyListenerProxy::ignore):

  • UIProcess/WebFramePolicyListenerProxy.h:

(WebKit::WebFramePolicyListenerProxy::create):

  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::setUpPolicyListenerProxy):

  • UIProcess/WebFrameProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):

  • UIProcess/WebPageProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
10:51 AM Changeset in webkit [234551] by Basuke Suzuki
  • 2 edits in trunk/LayoutTests

[LayoutTests][PHP] Fix old-style script which uses function name as a keyword.
https://bugs.webkit.org/show_bug.cgi?id=188289

Reviewed by Alex Christensen.

Function name should be passed as a string literal. In PHP, named function is
not the first class citizen.

  • http/tests/cookies/resources/echo-cookies.php:
10:51 AM Changeset in webkit [234550] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

ContentFilterUnblockHandler's constructors access moved-from variables
https://bugs.webkit.org/show_bug.cgi?id=188308
<rdar://problem/42882758>

Reviewed by Alex Christensen.

  • platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:
10:48 AM Changeset in webkit [234549] by Basuke Suzuki
  • 2 edits in trunk/LayoutTests

[LayoutTests] Suppress PHP Error message by removing an execution time limit.
https://bugs.webkit.org/show_bug.cgi?id=188288

Reviewed by Alex Christensen.

Remove execution timeout.

  • http/tests/multipart/resources/multipart.php:
10:26 AM Changeset in webkit [234548] by Kocsen Chung
  • 13 edits
    3 adds in branches/safari-606-branch

Cherry-pick r234534. rdar://problem/42902608

Control center controls disappear when pausing, locking device.
https://bugs.webkit.org/show_bug.cgi?id=188282
<rdar://problem/42497809>

Reviewed by Eric Carlson.

Source/WebCore:

Test: platform/mac/media/audio-session-category-video-paused.html

MediaRemote will set any app whose audio session category changes from MediaPlayback to
Ambient as not eligable for being the "now playing" app. Previously, due to the ordering of
events, we never moved from MediaPlayback to Ambient when pausing <video>, even though that
was the intention. Now that that bug is fixed, it exposed this new issue with MediaRemote.

To solve the new issue, make our audio session category policy more explicit: once we are in
MediaPlayback category, we will remain so as long as the media element in queston stays
loaded, has played, and is never interrupted by the system.

Make MediaSessionManagerCocoa a proper subclass of PlatformMediaSessionManager, and make
MediaSessionManageriOS and -Mac subclasses of the -Cocoa class. Add a new
m_hasPlayedSinceLastInterruption ivar to PlatformMediaSession, set when the state() changes
to Playing, and cleared during an interruption. Check this flag when deciding what audio
sessino category to set in MediaSessionManagerCocoa.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/PlatformMediaSession.cpp: (WebCore::PlatformMediaSession::setState):
  • platform/audio/PlatformMediaSession.h: (WebCore::PlatformMediaSession::hasPlayedSinceLastInterruption const): (WebCore::PlatformMediaSession::clearHasPlayedSinceLastInterruption):
  • platform/audio/PlatformMediaSessionManager.cpp: (WebCore::PlatformMediaSessionManager::updateSessionState): Deleted.
  • platform/audio/PlatformMediaSessionManager.h: (WebCore::PlatformMediaSessionManager::audioHardwareListener): (WebCore::PlatformMediaSessionManager::updateSessionState):
  • platform/audio/cocoa/MediaSessionManagerCocoa.cpp: (MediaSessionManagerCocoa::updateSessionState): (MediaSessionManagerCocoa::beginInterruption): (PlatformMediaSessionManager::updateSessionState): Deleted.
  • platform/audio/cocoa/MediaSessionManagerCocoa.h: Added.
  • platform/audio/ios/MediaSessionManagerIOS.h:
  • platform/audio/ios/MediaSessionManagerIOS.mm: (WebCore::MediaSessionManageriOS::MediaSessionManageriOS):
  • platform/audio/mac/MediaSessionManagerMac.h:
  • platform/audio/mac/MediaSessionManagerMac.mm: (WebCore::MediaSessionManagerMac::MediaSessionManagerMac):

LayoutTests:

  • platform/mac/media/audio-session-category-video-paused-expected.txt: Added.
  • platform/mac/media/audio-session-category-video-paused.html: Added.
  • platform/ios/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234534 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:06 AM Changeset in webkit [234547] by jer.noble@apple.com
  • 2 edits in trunk/Tools

Unreviewed gardening; r234534 changed the policy for what audio session is set when a
media element is paused. Updating the test to reflect the new policy.

  • TestWebKitAPI/Tests/WebKitLegacy/ios/AudioSessionCategoryIOS.mm:

(TestWebKitAPI::TEST):

8:38 AM Changeset in webkit [234546] by Alan Bujtas
  • 4 edits in trunk

[LFC][Floating] Now that the document renderer belongs to "complicated cases", adjust viewport stretching.
https://bugs.webkit.org/show_bug.cgi?id=188306

Reviewed by Antti Koivisto.

Source/WebCore:

And add passing cases for floats.

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::initialContainingBlock):
(WebCore::Layout::isStretchedToInitialContainingBlock):
(WebCore::Layout::stretchHeightToInitialContainingBlock):
(WebCore::Layout::stretchWidthToInitialContainingBlock):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):
(WebCore::Layout::isStretchedToViewport): Deleted.

Tools:

  • LayoutReloaded/misc/LFC-passing-tests.txt:
8:26 AM Changeset in webkit [234545] by Ryan Haddad
  • 11 edits
    2 deletes in trunk/Source/WebKit

Unreviewed, rolling out r234513.

14 API tests fail the assertions added in this change.

Reverted changeset:

"Check with SafeBrowsing during navigation in WKWebView"
https://bugs.webkit.org/show_bug.cgi?id=188133
https://trac.webkit.org/changeset/234513

7:21 AM Changeset in webkit [234544] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC] Do not check margin box while validating geometry.
https://bugs.webkit.org/show_bug.cgi?id=188297

Reviewed by Antti Koivisto.

The current RenderBox::marginBox implementation is not spec compliant. Ignore it for now.

  • layout/Verification.cpp:

(WebCore::Layout::outputMismatchingBlockBoxInformationIfNeeded):

3:43 AM Changeset in webkit [234543] by Carlos Garcia Campos
  • 8 edits
    2 adds in trunk/Source/WebKit

[WPE] WebDriver: add support for action commands
https://bugs.webkit.org/show_bug.cgi?id=188301

Reviewed by Žan Doberšek.

WPE doesn't support action commands because the platform specific code for handling events is not implemented.

  • SourcesWPE.txt: Add new file to compilation.
  • UIProcess/API/glib/WebKitUIClient.cpp: Use the drawing area size as window size in WPE.
  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::viewBackend): Return the WPE backend of the view.

  • UIProcess/API/wpe/PageClientImpl.h:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::performMouseInteraction):
(WebKit::WebAutomationSession::performKeyboardInteractions):
(WebKit::WebAutomationSession::performInteractionSequence):
(WebKit::WebAutomationSession::cancelInteractionSequence):

  • UIProcess/Automation/wpe/WebAutomationSessionWPE.cpp: Added.

(WebKit::modifiersToEventState):
(WebKit::mouseButtonToWPEButton):
(WebKit::stateModifierForWPEButton):
(WebKit::doMouseEvent):
(WebKit::doMotionEvent):
(WebKit::WebAutomationSession::platformSimulateMouseInteraction):
(WebKit::doKeyStrokeEvent):
(WebKit::keyCodeForVirtualKey):
(WebKit::modifiersForKeyCode):
(WebKit::WebAutomationSession::platformSimulateKeyboardInteraction):
(WebKit::WebAutomationSession::platformSimulateKeySequence):

  • UIProcess/WebPageProxy.h:
  • UIProcess/wpe/WebPageProxyWPE.cpp:

(WebKit::WebPageProxy::viewBackend): Return the WPE backend.

3:07 AM Changeset in webkit [234542] by Carlos Garcia Campos
  • 4 edits in trunk/Tools

[WPE] Use the new key mapper API from WPEBackend
https://bugs.webkit.org/show_bug.cgi?id=188216

Reviewed by Žan Doberšek.

  • WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:

(WTR::EventSenderProxy::keyDown): Use wpe_input_xkb_context_get_entries_for_key_code() to get the hardware key
code.

  • wpe/backends/WindowViewBackend.cpp:

(WPEToolingBackends::WindowViewBackend::WindowViewBackend):
(WPEToolingBackends::WindowViewBackend::handleKeyEvent):
(WPEToolingBackends::WindowViewBackend::modifiers const):

  • wpe/backends/WindowViewBackend.h:
2:38 AM Changeset in webkit [234541] by Carlos Garcia Campos
  • 8 edits in trunk

[WPE] Implement MouseEvent.buttons
https://bugs.webkit.org/show_bug.cgi?id=187998

Reviewed by Žan Doberšek.

Source/WebKit:

Pass buttons currently pressed to WebMouseEvent.

  • Shared/wpe/WebEventFactory.cpp:

(WebKit::pressedMouseButtons): Helper to get the pressed buttons mask for the WPE modifiers.
(WebKit::WebEventFactory::createWebMouseEvent): Use pressedMouseButtons().

  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::doneWithTouchEvent): Update the event modifiers.

Tools:

Pass modifiers to mouse events.

  • WebKitTestRunner/EventSenderProxy.h:
  • WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:

(WTR::senderButtonToWPEButton):
(WTR::modifierForButton):
(WTR::EventSenderProxy::mouseDown):
(WTR::EventSenderProxy::mouseUp):
(WTR::EventSenderProxy::mouseMoveTo):
(WTR::EventSenderProxy::mouseScrollBy):
(WTR::wkEventModifiersToWPE):
(WTR::wpeKeySymForKeyRef):
(WTR::EventSenderProxy::keyDown):
(WTR::EventSenderProxy::prepareAndDispatchTouchEvent):

  • wpe/backends/WindowViewBackend.cpp:

(WPEToolingBackends::WindowViewBackend::handleKeyEvent):
(WPEToolingBackends::WindowViewBackend::modifiers const):

  • wpe/backends/WindowViewBackend.h:
2:16 AM Changeset in webkit [234540] by Carlos Garcia Campos
  • 14 edits in trunk

[WPE] Use WPE key symbols and new API instead of xkbcommon and the key mapper
https://bugs.webkit.org/show_bug.cgi?id=188093

Reviewed by Žan Doberšek.

Source/WebCore:

Add helper functions to get key code, hardware key code, key identifier and windows key code from a WPE key symbol.

  • platform/PlatformKeyboardEvent.h:
  • platform/wpe/PlatformKeyboardEventWPE.cpp:

(WebCore::PlatformKeyboardEvent::keyValueForWPEKeyCode):
(WebCore::PlatformKeyboardEvent::keyCodeForHardwareKeyCode):
(WebCore::PlatformKeyboardEvent::keyIdentifierForWPEKeyCode):
(WebCore::PlatformKeyboardEvent::windowsKeyCodeForWPEKeyCode):
(WebCore::PlatformKeyboardEvent::singleCharacterString):

Source/WebKit:

  • Shared/WebEvent.h: Add WebKeyboardEvent constructor for WPE.
  • Shared/WebKeyboardEvent.cpp:

(WebKit::WebKeyboardEvent::WebKeyboardEvent): WebKeyboardEvent constructor for WPE.

  • Shared/wpe/WebEventFactory.cpp:

(WebKit::isWPEKeyCodeFromKeyPad): Helper tpo check if a key symbols is from key pad.
(WebKit::WebEventFactory::createWebKeyboardEvent): Use PlatformKeyboardEvent API to provide key code, hardware
key code, key identifier and windows key code to WebKeyboardEvent.

  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::m_backend): Use WPE key symbols.

Tools:

  • MiniBrowser/wpe/main.cpp: Use WPE key symbols.
  • WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:

(WTR::wpeKeySymForKeyRef): Use WPE key symbols and wpe_unicode_to_key_code().
(WTR::EventSenderProxy::keyDown): Do not set unicode char to the event since it was removed.

  • flatpak/org.webkit.WPE.yaml: Bump WPEBackend and WPEBackend-fdo versions.
  • wpe/backends/WindowViewBackend.cpp:

(WPEToolingBackends::WindowViewBackend::handleKeyEvent): Do not set unicode char to the event since it was removed.

  • wpe/jhbuild.modules: Bump WPEBackend and WPEBackend-fdo versions.
1:16 AM Changeset in webkit [234539] by rniwa@webkit.org
  • 10 edits
    1 add in trunk

Release assert when throwing exceptions in custom element reactions
https://bugs.webkit.org/show_bug.cgi?id=187805
<rdar://problem/42432714>

Reviewed by Saam Barati.

LayoutTests/imported/w3c:

Generated the expected result.

  • web-platform-tests/custom-elements/reactions/with-exceptions-expected.txt: Added.

Source/WebCore:

The release assertion was hit because we were not catching & re-throwing the exception thrown by DOM API
before trying to execute custom elements reactions in ~CustomElementReactionStack as specified here:
https://html.spec.whatwg.org/multipage/custom-elements.html#cereactions
Fixed the bug by capturing the exception and re-throwing the exception as specified.

Tests: imported/w3c/web-platform-tests/custom-elements/reactions/with-exceptions.html

  • bindings/js/JSMainThreadExecState.h:

(WebCore::JSMainThreadNullState::JSMainThreadNullState): Use the previous JS state.

  • bindings/scripts/CodeGeneratorJS.pm:

(GeneratePut): Pass in the exec state to CustomElementReactionStack.
(GeneratePutByIndex): Ditto.
(GenerateDefineOwnProperty): Ditto.
(GenerateDeletePropertyCommon): Ditto.
(GenerateAttributeSetterBodyDefinition): Ditto.
(GenerateOperationBodyDefinition): Ditto.

  • bindings/scripts/test/JS/JSTestCEReactions.cpp:

(WebCore::setJSTestCEReactionsAttributeWithCEReactionsSetter):
(WebCore::setJSTestCEReactionsReflectAttributeWithCEReactionsSetter):
(WebCore::jsTestCEReactionsPrototypeFunctionMethodWithCEReactionsBody):

  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:

(WebCore::setJSTestCEReactionsStringifierValueSetter):

  • dom/CustomElementReactionQueue.cpp:

(WebCore::CustomElementReactionQueue::ElementQueue::processQueue): Added. If there is a script running
in the stack (i.e. ExecState is not null), catch any exception before executing custom element reactions,
then re-throw the exception afterwards. ExecState is null when DOM API is invoked via Objective-C bindings
or when custom element reactions are executed in the backup queue (e.g. for editing operations).
(WebCore::CustomElementReactionStack::processQueue):
(WebCore::CustomElementReactionQueue::processBackupQueue):

  • dom/CustomElementReactionQueue.h:

(WebCore::CustomElementReactionStack::CustomElementReactionStack):
(WebCore::CustomElementReactionStack::~CustomElementReactionStack):

LayoutTests:

Unskipped the previously crashing test.

Aug 2, 2018:

10:24 PM Changeset in webkit [234538] by Basuke Suzuki
  • 2 edits
    7 adds in trunk/LayoutTests

[Curl] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=188293

Unreviewed test gardening.

Unskip some http tests.

  • platform/wincairo/TestExpectations:
    • contentextensions
    • events
    • favicon.ico
    • fullscreen
    • globalhistory
    • gzip-content-encoding
    • history
    • local
    • messaging
    • mime
    • multipart
    • performance
    • permissionclient
    • referrer-policy
    • resourceLoadStatistics
  • platform/wincairo/http/tests/local/file-url-sent-as-referer-expected.txt: Added.
  • platform/wincairo/http/tests/multipart/invalid-image-data-expected.txt: Added.
  • platform/wincairo/http/tests/multipart/invalid-image-data-standalone-expected.txt: Added.
  • platform/wincairo/http/tests/uri/css-href-expected.txt: Added.
9:32 PM Changeset in webkit [234537] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][BFC] Apply the "10.6.6 Complicated cases" when computing height and margin for the document renderer
https://bugs.webkit.org/show_bug.cgi?id=188296

Reviewed by Simon Fraser.

The spec is not clear about what to do with the document renderer. It behaves as if it was a formatting context root when
it comes to computing the content height. Let's apply "10.6.6 Complicated cases" for now.

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::complicatedCases):
(WebCore::Layout::FormattingContext::Geometry::floatingHeightAndMargin):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedHeightAndMargin): Deleted.

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::establishesBlockFormattingContext const):

  • layout/layouttree/LayoutBox.h:
7:32 PM Changeset in webkit [234536] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Floating] Add FloatingState::bottom() to enable content height computation for formatting roots.
https://bugs.webkit.org/show_bug.cgi?id=188294

Reviewed by Simon Fraser.

"10.6.7 'Auto' heights for block formatting context roots
...
In addition, if the element has any floating descendants whose bottom margin edge is below the element's bottom content edge,
then the height is increased to include those edges. Only floats that participate in this block formatting context are taken into
account, e.g., floats inside absolutely positioned descendants or other floats are not..."

  • layout/FloatingState.cpp:

(WebCore::Layout::FloatingState::bottom const):

  • layout/FloatingState.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::contentHeightForFormattingContextRoot):

7:10 PM Changeset in webkit [234535] by bshafiei@apple.com
  • 9 edits in branches/safari-606-branch/Source

Cherry-pick r234528. rdar://problem/42883788

Source/JavaScriptCore:
Reading instructionPointer from PlatformRegisters may fail when using pointer profiling
https://bugs.webkit.org/show_bug.cgi?id=188271
<rdar://problem/42850884>

Reviewed by Michael Saboff.

This patch defends against the instructionPointer containing garbage bits.
See radar for details.

  • runtime/MachineContext.h: (JSC::MachineContext::instructionPointer):
  • runtime/SamplingProfiler.cpp: (JSC::SamplingProfiler::takeSample):
  • runtime/VMTraps.cpp: (JSC::SignalContext::SignalContext): (JSC::SignalContext::tryCreate):
  • tools/CodeProfiling.cpp: (JSC::profilingTimer):
  • tools/SigillCrashAnalyzer.cpp: (JSC::SignalContext::SignalContext): (JSC::SignalContext::tryCreate): (JSC::SignalContext::dump): (JSC::installCrashHandler):
  • wasm/WasmFaultSignalHandler.cpp: (JSC::Wasm::trapHandler):

Source/WTF:
Reading instructionPointer from PlatformRegisters may fail when using pointer tagging
https://bugs.webkit.org/show_bug.cgi?id=188271
<rdar://problem/42850884>

Reviewed by Michael Saboff.

  • wtf/PtrTag.h: (WTF::isTaggedWith): (WTF::usesPointerTagging):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234528 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:54 PM Changeset in webkit [234534] by jer.noble@apple.com
  • 13 edits
    3 adds in trunk

Control center controls disappear when pausing, locking device.
https://bugs.webkit.org/show_bug.cgi?id=188282
<rdar://problem/42497809>

Reviewed by Eric Carlson.

Source/WebCore:

Test: platform/mac/media/audio-session-category-video-paused.html

MediaRemote will set any app whose audio session category changes from MediaPlayback to
Ambient as not eligable for being the "now playing" app. Previously, due to the ordering of
events, we never moved from MediaPlayback to Ambient when pausing <video>, even though that
was the intention. Now that that bug is fixed, it exposed this new issue with MediaRemote.

To solve the new issue, make our audio session category policy more explicit: once we are in
MediaPlayback category, we will remain so as long as the media element in queston stays
loaded, has played, and is never interrupted by the system.

Make MediaSessionManagerCocoa a proper subclass of PlatformMediaSessionManager, and make
MediaSessionManageriOS and -Mac subclasses of the -Cocoa class. Add a new
m_hasPlayedSinceLastInterruption ivar to PlatformMediaSession, set when the state() changes
to Playing, and cleared during an interruption. Check this flag when deciding what audio
sessino category to set in MediaSessionManagerCocoa.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::setState):

  • platform/audio/PlatformMediaSession.h:

(WebCore::PlatformMediaSession::hasPlayedSinceLastInterruption const):
(WebCore::PlatformMediaSession::clearHasPlayedSinceLastInterruption):

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::updateSessionState): Deleted.

  • platform/audio/PlatformMediaSessionManager.h:

(WebCore::PlatformMediaSessionManager::audioHardwareListener):
(WebCore::PlatformMediaSessionManager::updateSessionState):

  • platform/audio/cocoa/MediaSessionManagerCocoa.cpp:

(MediaSessionManagerCocoa::updateSessionState):
(MediaSessionManagerCocoa::beginInterruption):
(PlatformMediaSessionManager::updateSessionState): Deleted.

  • platform/audio/cocoa/MediaSessionManagerCocoa.h: Added.
  • platform/audio/ios/MediaSessionManagerIOS.h:
  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::MediaSessionManageriOS):

  • platform/audio/mac/MediaSessionManagerMac.h:
  • platform/audio/mac/MediaSessionManagerMac.mm:

(WebCore::MediaSessionManagerMac::MediaSessionManagerMac):

LayoutTests:

  • platform/mac/media/audio-session-category-video-paused-expected.txt: Added.
  • platform/mac/media/audio-session-category-video-paused.html: Added.
  • platform/ios/TestExpectations:
6:16 PM Changeset in webkit [234533] by bshafiei@apple.com
  • 7 edits in branches/safari-606-branch/Source/WebCore

Cherry-pick r234512. rdar://problem/42882298

Text selection color is hard to see in dark mode web views.
https://bugs.webkit.org/show_bug.cgi?id=188260
rdar://problem/42721294

Reviewed by Simon Fraser.

Stop using blendWithWhite() to transform the AppKit selection color in dark mode.
Using an alpha of 80% gives good contrast, and still works good for selections over images.

  • platform/graphics/Color.cpp: (WebCore::Color::blendWithWhite const): Mark new colors as semantic if the original is. (WebCore::Color::colorWithAlpha const): Ditto.
  • rendering/RenderElement.cpp: (WebCore::RenderElement::selectionBackgroundColor const): Use transformSelectionBackgroundColor.
  • rendering/RenderTheme.cpp: (WebCore::RenderTheme::activeSelectionBackgroundColor const): Use transformSelectionBackgroundColor. (WebCore::RenderTheme::inactiveSelectionBackgroundColor const): Ditto. (WebCore::RenderTheme::transformSelectionBackgroundColor const): Added. Just blend with white.
  • rendering/RenderTheme.h:
  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::transformSelectionBackgroundColor const): Added. Use an alpha with the color in dark mode, otherwise fallback to RenderTheme. (WebCore::RenderThemeMac::systemColor const): Use activeListBoxSelectionBackgroundColor() and activeSelectionBackgroundColor() instead of caching the colors again. Update hardcoded color.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234512 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:16 PM Changeset in webkit [234532] by bshafiei@apple.com
  • 2 edits in branches/safari-606-branch/Source/WebCore

Cherry-pick r234469. rdar://problem/42882308

Always use MediaPlayback audio category when playing to AppleTV
https://bugs.webkit.org/show_bug.cgi?id=188230
<rdar://problem/42497809>

Reviewed by Jer Noble.

  • platform/audio/cocoa/MediaSessionManagerCocoa.cpp: (PlatformMediaSessionManager::updateSessionState): Check session.isPlayingToWirelessPlaybackTarget().

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234469 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:16 PM Changeset in webkit [234531] by bshafiei@apple.com
  • 4 edits in branches/safari-606-branch/Source/WebCore

Cherry-pick r234463. rdar://problem/42882308

[iOS] Remove the delay before setting audio session category added in r233535
https://bugs.webkit.org/show_bug.cgi?id=188225

Reviewed by Jer Noble.

  • platform/audio/PlatformMediaSessionManager.cpp: (WebCore::PlatformMediaSessionManager::beginInterruption): scheduleUpdateSessionState -> updateSessionState. (WebCore::PlatformMediaSessionManager::addSession): Ditto. (WebCore::PlatformMediaSessionManager::removeSession): Ditto. (WebCore::PlatformMediaSessionManager::sessionStateChanged): Ditto. (WebCore::PlatformMediaSessionManager::sessionCanProduceAudioChanged): Ditto. (WebCore::PlatformMediaSessionManager::updateSessionState): Ditto. (WebCore::PlatformMediaSessionManager::audioOutputDeviceChanged): Ditto. (WebCore::PlatformMediaSessionManager::scheduleUpdateSessionState): Deleted.
  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.cpp: (PlatformMediaSessionManager::updateSessionState): (PlatformMediaSessionManager::scheduleUpdateSessionState): Deleted.
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::updateClipRects):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234463 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:11 PM Changeset in webkit [234530] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit

PDFPlugin: Context menus in RTL are left-aligned
https://bugs.webkit.org/show_bug.cgi?id=188292
<rdar://problem/32293787>

Reviewed by Simon Fraser.

  • WebProcess/Plugins/PDF/PDFLayerControllerSPI.h:

Add some SPI.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::handleContextMenuEvent):
Translate UI layout direction back into the platform enum, and pass it to PDFKit.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::userInterfaceLayoutDirection const):
Add a getter for UI layout direction.

5:24 PM Changeset in webkit [234529] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(r234486): assertion hit in ~CallbackAggregator()
https://bugs.webkit.org/show_bug.cgi?id=188283
<rdar://problem/42851342>

Reviewed by Alex Christensen.

[NSHTTPCookieStorage _saveCookies:] SPI may call its completion block on the background queue
so we need to make sure we dispatch back to the main thread before calling our completion
handler.

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::saveCookies):
(WebKit::NetworkProcess::platformSyncAllCookies):

5:14 PM Changeset in webkit [234528] by sbarati@apple.com
  • 9 edits in trunk/Source

Source/JavaScriptCore:
Reading instructionPointer from PlatformRegisters may fail when using pointer profiling
https://bugs.webkit.org/show_bug.cgi?id=188271
<rdar://problem/42850884>

Reviewed by Michael Saboff.

This patch defends against the instructionPointer containing garbage bits.
See radar for details.

  • runtime/MachineContext.h:

(JSC::MachineContext::instructionPointer):

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::takeSample):

  • runtime/VMTraps.cpp:

(JSC::SignalContext::SignalContext):
(JSC::SignalContext::tryCreate):

  • tools/CodeProfiling.cpp:

(JSC::profilingTimer):

  • tools/SigillCrashAnalyzer.cpp:

(JSC::SignalContext::SignalContext):
(JSC::SignalContext::tryCreate):
(JSC::SignalContext::dump):
(JSC::installCrashHandler):

  • wasm/WasmFaultSignalHandler.cpp:

(JSC::Wasm::trapHandler):

Source/WTF:
Reading instructionPointer from PlatformRegisters may fail when using pointer tagging
https://bugs.webkit.org/show_bug.cgi?id=188271
<rdar://problem/42850884>

Reviewed by Michael Saboff.

  • wtf/PtrTag.h:

(WTF::isTaggedWith):
(WTF::usesPointerTagging):

5:00 PM Changeset in webkit [234527] by Ryan Haddad
  • 2 edits in branches/safari-606-branch/Tools

Cherry-pick r234521. rdar://problem/42387347

Skip API test DataInteractionTests.CustomActionSheetPopover on current SDKs.
https://bugs.webkit.org/show_bug.cgi?id=175204

Unreviewed test gardening.

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@234521 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:54 PM Changeset in webkit [234526] by n_wang@apple.com
  • 11 edits
    2 adds in trunk

AX: [iOS] add support to return the attributed string under the element
https://bugs.webkit.org/show_bug.cgi?id=188276
<rdar://problem/42872357>

Reviewed by Chris Fleizach.

Source/WebCore:

Provided a way on iOS to return the attributed string under the element for
better performance.

Test: accessibility/ios-simulator/attributed-string-for-element.html

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _stringFromStartMarker:toEndMarker:attributed:]):
(-[WebAccessibilityObjectWrapper _stringForRange:attributed:]):
(-[WebAccessibilityObjectWrapper attributedStringForElement]):

Tools:

  • DumpRenderTree/AccessibilityUIElement.cpp:

(attributedStringForElementCallback):
(AccessibilityUIElement::getJSClass):

  • DumpRenderTree/AccessibilityUIElement.h:
  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::attributedStringForElement):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::attributedStringForElement):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::attributedStringForElement):

LayoutTests:

  • accessibility/ios-simulator/attributed-string-for-element-expected.txt: Added.
  • accessibility/ios-simulator/attributed-string-for-element.html: Added.
4:48 PM Changeset in webkit [234525] by Kocsen Chung
  • 7 edits in branches/safari-606-branch/Source

Versioning.

4:46 PM Changeset in webkit [234524] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Floating] Remove redundant LayoutContext member variable.
https://bugs.webkit.org/show_bug.cgi?id=188286

Reviewed by Simon Fraser.

  • layout/FloatingContext.cpp:

(WebCore::Layout::begin):
(WebCore::Layout::end):
(WebCore::Layout::FloatingContext::floatingPosition const):
(WebCore::Layout::FloatingPair::FloatingPair):
(WebCore::Layout::Iterator::Iterator):

4:41 PM Changeset in webkit [234523] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.35

Tag Safari-606.1.35.

4:35 PM Changeset in webkit [234522] by timothy_horton@apple.com
  • 1 edit
    2 deletes in trunk/LayoutTests

REGRESSION (r234488): Layout test fast/events/ios/keyboard-scrolling-repeat.html is timing out
<rdar://problem/42878480>

  • fast/events/ios/keyboard-scrolling-repeat-expected.txt: Removed.
  • fast/events/ios/keyboard-scrolling-repeat.html: Removed.

Remove a test that can't work anymore.
If we need to re-write it it will probably need to be an API test.

4:09 PM Changeset in webkit [234521] by Ryan Haddad
  • 2 edits in trunk/Tools

Skip API test DataInteractionTests.CustomActionSheetPopover on current SDKs.
https://bugs.webkit.org/show_bug.cgi?id=175204

Unreviewed test gardening.

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
3:37 PM Changeset in webkit [234520] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

Move queue processing logic from CustomElementReactionStack to CustomElementReactionQueue
https://bugs.webkit.org/show_bug.cgi?id=188277

Reviewed by Wenson Hsieh.

Moved ensureCurrentQueue, processBackupQueue, ElementQueue, ensureBackupQueue, and backupElementQueue
from CustomElementReactionStack to CustomElementReactionQueue to simplify CustomElementReactionStack.

No new tests since there is no behavior change.

  • dom/CustomElementReactionQueue.cpp:

(WebCore::CustomElementReactionQueue::enqueueElementUpgrade):
(WebCore::CustomElementReactionQueue::enqueueConnectedCallbackIfNeeded):
(WebCore::CustomElementReactionQueue::enqueueDisconnectedCallbackIfNeeded):
(WebCore::CustomElementReactionQueue::enqueueAdoptedCallbackIfNeeded):
(WebCore::CustomElementReactionQueue::enqueueAttributeChangedCallbackIfNeeded):
(WebCore::CustomElementReactionQueue::ElementQueue::add): Moved from CustomElementReactionStack.
(WebCore::CustomElementReactionQueue::ElementQueue::invokeAll): Ditto.
(WebCore::CustomElementReactionQueue::ensureCurrentQueue): Ditto.
(WebCore::CustomElementReactionQueue::ensureBackupQueue): Ditto.
(WebCore::CustomElementReactionQueue::processBackupQueue): Ditto.
(WebCore::CustomElementReactionQueue::backupElementQueue): Ditto.

  • dom/CustomElementReactionQueue.h:

(WebCore::CustomElementReactionStack::hasCurrentProcessingStack): Deleted. It was never called.

3:31 PM Changeset in webkit [234519] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix some builds after r234516
https://bugs.webkit.org/show_bug.cgi?id=188250

  • Platform/IPC/ArgumentCoders.h:

This assertion was comparing integers of different signs.
Since we don't allow exception throwing in WebKit, valueless_by_exception won't be true,
so this assertion will always be true. I'll just remove it.

3:20 PM Changeset in webkit [234518] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebKit

httpCookieStore.getAllCookies() does not always call completion block
https://bugs.webkit.org/show_bug.cgi?id=188242

Reviewed by Chris Dumez.

Take background assertion for network process to keep it alive during cookieStore API calls.

  • UIProcess/GenericCallback.h:
  • UIProcess/WebCookieManagerProxy.cpp:

(WebKit::WebCookieManagerProxy::getHostnamesWithCookies):
(WebKit::WebCookieManagerProxy::deleteCookie):
(WebKit::WebCookieManagerProxy::deleteAllCookiesModifiedSince):
(WebKit::WebCookieManagerProxy::setCookie):
(WebKit::WebCookieManagerProxy::setCookies):
(WebKit::WebCookieManagerProxy::getAllCookies):
(WebKit::WebCookieManagerProxy::getCookies):
(WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy):
(WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy):

3:18 PM Changeset in webkit [234517] by sihui_liu@apple.com
  • 4 edits in trunk

[Cocoa] setCookie API fails to set session cookies for defaultDataStore if processPool created but not used
https://bugs.webkit.org/show_bug.cgi?id=188209

Reviewed by Geoffrey Garen.

Source/WebKit:

If defaultDataStore is already created when launching network process, it means user
probably set cookies for default session via API, so we should update m_websiteDataStore to
make sure pendingCookies is passed to network process.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:

(TEST):

2:48 PM Changeset in webkit [234516] by achristensen@apple.com
  • 8 edits in trunk/Source/WebKit

Use WTF::Variant for WebPreferencesStore::Value
https://bugs.webkit.org/show_bug.cgi?id=188250

Reviewed by Sam Weinig.

It was conceptually a variant. This just uses an actual WTF::Variant.
Since it's encoded and decoded, I wrote variadic template encoders and decoders
like we have for other types (Expected, std::tuple, KeyValuePair, etc.)

  • Platform/IPC/ArgumentCoders.h:

(IPC::VariantCoder::encode):
(IPC::VariantCoder::decode):
Introduce ArgumentCoder<Variant>, which encodes which type the Variant currently
holds followed by the encoding of the current type.

  • Platform/IPC/Decoder.cpp:

(IPC::Decoder::Decoder):

  • Platform/IPC/Decoder.h:
  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::createMessageDecoder):
Use move semantics to prevent an unnecessary copy of the Vector<Attachment>

  • Scripts/PreferencesTemplates/WebPreferencesStoreDefaultsMap.cpp.erb:
  • Shared/WebPreferencesStore.cpp:

(WebKit::WebPreferencesStore::decode):
Use modern std::optional-based decoding supported by the new Variant decoding.
(WebKit::valueForKey):
Use WTF::get and WTF::holds_alternative instead of custom type checks.
(WebKit::WebPreferencesStore::Value::encode const): Deleted.
(WebKit::WebPreferencesStore::Value::decode): Deleted.
(WebKit::as<String>): Deleted.
(WebKit::as<bool>): Deleted.
(WebKit::as<uint32_t>): Deleted.
(WebKit::as<double>): Deleted.

  • Shared/WebPreferencesStore.h:

(WebKit::WebPreferencesStore::Value::Value): Deleted.
(WebKit::WebPreferencesStore::Value::operator=): Deleted.
(WebKit::WebPreferencesStore::Value::~Value): Deleted.
(WebKit::WebPreferencesStore::Value::type const): Deleted.
(WebKit::WebPreferencesStore::Value::asString const): Deleted.
(WebKit::WebPreferencesStore::Value::asBool const): Deleted.
(WebKit::WebPreferencesStore::Value::asUInt32 const): Deleted.
(WebKit::WebPreferencesStore::Value::asDouble const): Deleted.
(WebKit::WebPreferencesStore::Value::destroy): Deleted.
(): Deleted.
Use WTF::Variant instead of a custom type/union pair.

2:26 PM Changeset in webkit [234515] by Megan Gardner
  • 9 edits in trunk/LayoutTests

Reformat editable selection tests to remove potential flakeyness due to autoscroll
https://bugs.webkit.org/show_bug.cgi?id=188263
<rdar://problem/40565375>

Reviewed by Wenson Hsieh

Change the format of these editable selection tests to put the editable content at the top of the page so
that when selecting we do not run into the page trying to autoscroll while selecting, which makes the tests more
flakey, and more difficult to get accurate and consistent answers.

  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-down-to-change-selected-text.html:
  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-left-to-change-selected-text.html:
  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-right-to-change-selected-text.html:
  • fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-up-to-change-selected-text.html:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-down-to-change-selected-text.html:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-left-to-change-selected-text.html:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-right-to-change-selected-text.html:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text.html:
1:24 PM Changeset in webkit [234514] by achristensen@apple.com
  • 2 edits in trunk/Source/WTF

Add some Variant types to Forward.h
https://bugs.webkit.org/show_bug.cgi?id=188250

  • wtf/Forward.h:
1:13 PM Changeset in webkit [234513] by achristensen@apple.com
  • 11 edits
    2 adds in trunk/Source/WebKit

Check with SafeBrowsing during navigation in WKWebView
https://bugs.webkit.org/show_bug.cgi?id=188133

Reviewed by Chris Dumez.

This turns WebFramePolicyListenerProxy into an object that now listens for the results
of two processes happening in parallel: the API::NavigationClient's decidePolicyForNavigation{Action, Response}
(which it was already waiting for) and, on platforms that support it, the SafariSafeBrowsing framework's check.
The first result is stored as it waits for the second result unless the first result is the API::NavigationClient
saying to cancel or convert the navigation to a download, in which cases we don't care what the safe browsing
framework results are because we won't show the URL in the browser.

Nothing is done with the safe browsing results yet.

  • UIProcess/Cocoa/SafeBrowsingResultCocoa.mm: Added.

(WebKit::SafeBrowsingResult::SafeBrowsingResult):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::beginSafeBrowsingCheck):

  • UIProcess/SafeBrowsingResult.h: Added.

(WebKit::SafeBrowsingResult::provider const):
(WebKit::SafeBrowsingResult::isPhishing const):
(WebKit::SafeBrowsingResult::isMalware const):
(WebKit::SafeBrowsingResult::isUnwantedSoftware const):
(WebKit::SafeBrowsingResult::isKnownToBeUnsafe const):

  • UIProcess/WebFramePolicyListenerProxy.cpp:

(WebKit::WebFramePolicyListenerProxy::WebFramePolicyListenerProxy):
(WebKit::WebFramePolicyListenerProxy::didReceiveSafeBrowsingResults):
(WebKit::WebFramePolicyListenerProxy::use):
(WebKit::WebFramePolicyListenerProxy::download):
(WebKit::WebFramePolicyListenerProxy::ignore):

  • UIProcess/WebFramePolicyListenerProxy.h:

(WebKit::WebFramePolicyListenerProxy::create):

  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::setUpPolicyListenerProxy):

  • UIProcess/WebFrameProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):

  • UIProcess/WebPageProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
1:12 PM Changeset in webkit [234512] by timothy@apple.com
  • 7 edits in trunk/Source/WebCore

Text selection color is hard to see in dark mode web views.
https://bugs.webkit.org/show_bug.cgi?id=188260
rdar://problem/42721294

Reviewed by Simon Fraser.

Stop using blendWithWhite() to transform the AppKit selection color in dark mode.
Using an alpha of 80% gives good contrast, and still works good for selections over images.

  • platform/graphics/Color.cpp:

(WebCore::Color::blendWithWhite const): Mark new colors as semantic if the original is.
(WebCore::Color::colorWithAlpha const): Ditto.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::selectionBackgroundColor const): Use transformSelectionBackgroundColor.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::activeSelectionBackgroundColor const): Use transformSelectionBackgroundColor.
(WebCore::RenderTheme::inactiveSelectionBackgroundColor const): Ditto.
(WebCore::RenderTheme::transformSelectionBackgroundColor const): Added. Just blend with white.

  • rendering/RenderTheme.h:
  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::transformSelectionBackgroundColor const): Added. Use an alpha with the color
in dark mode, otherwise fallback to RenderTheme.
(WebCore::RenderThemeMac::systemColor const): Use activeListBoxSelectionBackgroundColor()
and activeSelectionBackgroundColor() instead of caching the colors again. Update hardcoded color.

1:07 PM Changeset in webkit [234511] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Floating] Use displayBox.rectWithMargin().bottom instead of displayBox.bottom() to where applicable.
https://bugs.webkit.org/show_bug.cgi?id=188274

Reviewed by Antti Koivisto.

Float placement uses the margin box.

  • layout/FloatingContext.cpp:

(WebCore::Layout::FloatingPair::bottom const):
(WebCore::Layout::Iterator::operator++):
(WebCore::Layout::Iterator::set):

12:56 PM Changeset in webkit [234510] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Floating] Right aligned float's horizontal candidate position is miscomputed.
https://bugs.webkit.org/show_bug.cgi?id=188273

Reviewed by Antti Koivisto.

rightAlignedBoxLeft is already shifted with the size of the margin box.

  • layout/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::alignWithFloatings const):

12:47 PM Changeset in webkit [234509] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC] Display:Box::rectWithMargin()'s width and height don't include margin left/top.
https://bugs.webkit.org/show_bug.cgi?id=188272

Reviewed by Antti Koivisto.

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::rectWithMargin const):

12:40 PM Changeset in webkit [234508] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Floating] Containing block of a float could push the candidate position beyond the current float.
https://bugs.webkit.org/show_bug.cgi?id=188264

Reviewed by Antti Koivisto.

<div id=first style="float: left; width: 100px; height: 10px;"></div>
<div id=second style="float: left; width: 10px; height: 10px;"></div>
<div style="width: 50px; height: 50px;>

<div id=third style="float: left; width: 10px; height: 10px;"></div>

</div>
In the example above by the time the "third" float comes in, we are already at 110px horizontally. However the containing block of the "third" float forces
the candidate position at 0px. In such cases intersecting won't work since the candidate position is beyond the last(second) float (horizontally).
We could either keep going back to the previous floats on this vertical position and eventually intersect with "first" or just compare the horizontal
positions and ensure that the left/right float is not going to be placed to the left/right of the last float on the current vertical position.

  • layout/FloatingContext.cpp:

(WebCore::Layout::FloatingPair::intersects const):

12:25 PM Changeset in webkit [234507] by rniwa@webkit.org
  • 8 edits in trunk

Implement customElements.upgrade()
https://bugs.webkit.org/show_bug.cgi?id=183397

Reviewed by Frédéric Wang.

LayoutTests/imported/w3c:

Rebaseline the test now that we're passing.

  • web-platform-tests/custom-elements/custom-element-registry/upgrade-expected.txt:

Source/WebCore:

Added the support to upgrade custom elements directly. Ordinarily, custom elements get upgraded as they are
inserted / connected into a document but some script libraries and authors want to be able to upgrade them before that.
Also see https://github.com/w3c/webcomponents/issues/710

Implemented the method as specified at:
https://html.spec.whatwg.org/multipage/custom-elements.html#dom-customelementregistry-upgrade

When invoked, the upgrade(root) method must run these steps:

  1. Let candidates be a list of all of root's shadow-including inclusive descendant elements, in shadow-including tree order.
  2. For each candidate of candidates, try to upgrade candidate.

Tests: imported/w3c/web-platform-tests/custom-elements/custom-element-registry/upgrade.html

  • dom/CustomElementReactionQueue.cpp:

(WebCore::CustomElementReactionQueue::enqueueElementUpgradeIfDefined): Removed the assertion that the upgraded element
is connected since the whole point of this API is to upgrade a disconnected element.

  • dom/CustomElementRegistry.cpp:

(WebCore::upgradeElementsInShadowIncludingdescendants): Added.
(WebCore::CustomElementRegistry::upgrade): Added.

  • dom/CustomElementRegistry.h: Forward declare DeferredPromise instead of unnecessarily including JSDOMPromiseDeferred.h.
  • dom/CustomElementRegistry.idl:
  • dom/Element.cpp:

(WebCore::Element::insertedIntoAncestor): Moved the assertion here.

12:19 PM Changeset in webkit [234506] by Simon Fraser
  • 9 edits in trunk/Source/WebCore

Convert calc-related enums to 8-bit enum classes
https://bugs.webkit.org/show_bug.cgi?id=188215

Reviewed by Zalan Bujtas.

This shrinks CSSCalcOperation from 48 to 32 bytes.

  • css/CSSCalculationValue.cpp:

(WebCore::unitCategory):
(WebCore::determineCategory):
(WebCore::resolvedTypeForMinOrMax):
(WebCore::isIntegerResult):
(WebCore::CSSCalcExpressionNodeParser::parseValue):
(WebCore::CSSCalcExpressionNodeParser::parseValueMultiplicativeExpression):
(WebCore::CSSCalcExpressionNodeParser::parseAdditiveValueExpression):
(WebCore::CSSCalcExpressionNodeParser::parseMinMaxExpression):
(WebCore::createBlendHalf):
(WebCore::createCSS):

  • css/CSSCalculationValue.h:
  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::primitiveType const):

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertTo100PercentMinusLength):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::CalcParser::consumeNumberRaw):
(WebCore::CSSPropertyParserHelpers::CalcParser::consumePositiveIntegerRaw):
(WebCore::CSSPropertyParserHelpers::consumeInteger):
(WebCore::CSSPropertyParserHelpers::consumePositiveIntegerRaw):
(WebCore::CSSPropertyParserHelpers::consumeNumberRaw):
(WebCore::CSSPropertyParserHelpers::consumeNumber):
(WebCore::CSSPropertyParserHelpers::consumeFontWeightNumber):
(WebCore::CSSPropertyParserHelpers::consumeLength):
(WebCore::CSSPropertyParserHelpers::consumePercent):
(WebCore::CSSPropertyParserHelpers::canConsumeCalcValue):
(WebCore::CSSPropertyParserHelpers::consumeLengthOrPercent):
(WebCore::CSSPropertyParserHelpers::consumeAngle):
(WebCore::CSSPropertyParserHelpers::consumeAngleOrPercent):
(WebCore::CSSPropertyParserHelpers::consumeTime):

  • platform/CalculationValue.cpp:

(WebCore::CalcExpressionNumber::operator== const):
(WebCore::CalcExpressionOperation::evaluate const):
(WebCore::CalcExpressionOperation::operator== const):
(WebCore::CalcExpressionOperation::dump const):
(WebCore::CalcExpressionLength::operator== const):
(WebCore::CalcExpressionBlendLength::CalcExpressionBlendLength):
(WebCore::CalcExpressionBlendLength::operator== const):
(WebCore::operator<<):

  • platform/CalculationValue.h:

(WebCore::CalcExpressionNumber::CalcExpressionNumber):
(WebCore::toCalcExpressionNumber):
(WebCore::CalcExpressionLength::CalcExpressionLength):
(WebCore::toCalcExpressionLength):
(WebCore::CalcExpressionOperation::CalcExpressionOperation):
(WebCore::toCalcExpressionOperation):
(WebCore::toCalcExpressionBlendLength):

  • platform/Length.cpp:

(WebCore::convertTo100PercentMinusLength):

12:06 PM Changeset in webkit [234505] by mitz@apple.com
  • 3 edits in trunk/Tools

Fixed WebKit.AttrStyle timing out on build.webkit.org.

  • TestWebKitAPI/Tests/WebKitCocoa/AttrStyle.html: Changed from a URL that requires network access to one that doesn’t.
  • TestWebKitAPI/Tests/WebKitCocoa/AttrStyle.mm:

(TEST): Updated expected value.

11:32 AM Changeset in webkit [234504] by Wenson Hsieh
  • 7 edits
    3 adds in trunk

[iOS] Keyboard becomes unresponsive after pressing delete while pressing down on a character key with accents
https://bugs.webkit.org/show_bug.cgi?id=188251
<rdar://problem/37842108>

Reviewed by Tim Horton.

Source/WebKit:

Fixes a bug in key event handling where invoking -handleKeyWebEvent:withCompletionHandler: from within the
completion callback of a previous call to -handleKeyWebEvent:withCompletionHandler: would cause the completion
callback to be cleared out prematurely. In some cases (as described in the title of this bug), UIKit exercises
this codepath and subsequently hangs due to their completion block never getting invoked by WebKit.

Test: KeyboardInputTests.CanHandleKeyEventInCompletionHandler

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView handleKeyWebEvent:withCompletionHandler:]):
(-[WKContentView _didHandleKeyEvent:eventWasHandled:]):

Tools:

Adds a new API test to verify that clients (in this case, UIKit) is allowed to invoke
-handleKeyWebEvent:withCompletionHandler: within the completion block of a prior invocation.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm: Added.

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/TestInputDelegate.h: Added.

Pull some logic used to force an input session to start out from an existing API test file
(WKWebViewAutofillTests) and into a separate helper class that is used by both the existing API tests and the
new keyboard input test.

  • TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:

(-[AutofillTestView initWithFrame:]):
(TestWebKitAPI::TEST):
(-[TestInputDelegate init]): Deleted.
(-[TestInputDelegate _webView:focusShouldStartInputSession:]): Deleted.

  • TestWebKitAPI/ios/UIKitSPI.h:

Add some UIKit SPI utilized by the new API test.

10:43 AM Changeset in webkit [234503] by cturner@igalia.com
  • 2 edits in trunk/Source/WebCore

Handle zero-sized ISOMP4 boxes appropriately
https://bugs.webkit.org/show_bug.cgi?id=188256

Reviewed by Jer Noble.

According to ISO/IEC 14496-12:2012(E), when the Box classes' size
field is zero, the implied size of the box extends to the end of
the file. If this detail is not taken into account, CENC
sanitization can incorrectly report an invalid box size, since 0
!= the number of bytes in this box, specifically, the data layout
of Box is as follows,

aligned(8) class Box (unsigned int(32) boxtype,

optional unsigned int(8)[16] extended_type) {

unsigned int(32) size;
unsigned int(32) type = boxtype;
if (size==1) {

unsigned int(64) largesize;

} else if (size==0) { This is the case now handled.

box extends to end of file

}
if (boxtype==‘uuid’) {

unsigned int(8)[16] usertype = extended_type;

}

}

Tested by imported/w3c/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.https.html

  • platform/graphics/iso/ISOBox.cpp:

(WebCore::ISOBox::peekBox): Check if the parsed size is zero, and
if it is, the size is calculated as the total number of bytes in
the incoming DataView.
(WebCore::ISOBox::parse): Ditto.

9:42 AM Changeset in webkit [234502] by mitz@apple.com
  • 15 edits
    2 adds in trunk

Optionally expose Attr::style to JavaScript
https://bugs.webkit.org/show_bug.cgi?id=188226
<rdar://problem/42818113>

Reviewed by Darin Adler.

Source/WebCore:

Test: TestWebKitAPI/Tests/WebKitCocoa/AttrStyle.mm

  • dom/Attr.cpp: Update comment.
  • dom/Attr.idl: Define the style attribute, enabled at runtime by the AttrStyle feature.
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setAttrStyleEnabled): Added this accessor.
(WebCore::RuntimeEnabledFeatures::attrStyleEnabled const): Ditto.

Source/WebKit:

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const): Encode new attrStyleEnabled member.
(WebKit::WebProcessCreationParameters::decode): Decode new attrStyleEnabled member.

  • Shared/WebProcessCreationParameters.h: Define new attrStyleEnabled member, initialized to false.
  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy): Copy new m_attrStyleEnabled member.

  • UIProcess/API/APIProcessPoolConfiguration.h: Define new m_attrStyleEnabled member.
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: Declare new attrStyleEnabled boolean property.
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration attrStyleEnabled]): New accessor.
(-[_WKProcessPoolConfiguration setAttrStyleEnabled:]): Ditto.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess): Initialize parameters.attrStyleEnabled

from the configuration.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess): Set the attrStyleEnabled runtime feature based

on the creation parameters.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/AttrStyle.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/AttrStyle.mm: Added.

(TEST):

8:45 AM Changeset in webkit [234501] by david_fenton@apple.com
  • 116 edits in trunk

Unreviewed, rolling out r234489.

Caused 50+ crashes and 60+ API failures on iOS

Reverted changeset:

"[WTF] Rename String::format to String::deprecatedFormat"
https://bugs.webkit.org/show_bug.cgi?id=188191
https://trac.webkit.org/changeset/234489

8:01 AM Changeset in webkit [234500] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Floating] Do not pass formatting root to FloatingContext
https://bugs.webkit.org/show_bug.cgi?id=188257

Reviewed by Antti Koivisto.

If we ever need it, we can get it from FloatingState.

  • layout/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::FloatingContext):

  • layout/FloatingContext.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layout const):

7:28 AM Changeset in webkit [234499] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][Floating] Convert all coordinates relative to the formatting context root.
https://bugs.webkit.org/show_bug.cgi?id=188249

Reviewed by Antti Koivisto.

The idea here is that all the float related computation should be happening in the same coordinate system.
FloatItem holds the transformed Display::Box for both the layout box and its containing block.

  • layout/FloatingContext.cpp:

(WebCore::Layout::begin):
(WebCore::Layout::end):
(WebCore::Layout::FloatingContext::computePosition const):
(WebCore::Layout::FloatingContext::floatingPosition const):
(WebCore::Layout::FloatingContext::initialVerticalPosition const):
(WebCore::Layout::FloatingContext::alignWithContainingBlock const):
(WebCore::Layout::FloatingContext::alignWithFloatings const):
(WebCore::Layout::FloatingContext::toContainingBlock const):
(WebCore::Layout::FloatingPair::FloatingPair):
(WebCore::Layout::FloatingPair::left const):
(WebCore::Layout::FloatingPair::right const):
(WebCore::Layout::Iterator::Iterator):
(WebCore::Layout::previousFloatingIndex):
(WebCore::Layout::Iterator::operator++):
(WebCore::Layout::Iterator::set):

  • layout/FloatingContext.h:
  • layout/FloatingState.cpp:

(WebCore::Layout::FloatingState::FloatItem::FloatItem):
(WebCore::Layout::FloatingState::remove):
(WebCore::Layout::FloatingState::append):

  • layout/FloatingState.h:

(WebCore::Layout::FloatingState::isEmpty const):
(WebCore::Layout::FloatingState::FloatItem::layoutBox const):
(WebCore::Layout::FloatingState::FloatItem::containingBlock const):
(WebCore::Layout::FloatingState::FloatItem::displayBox const):
(WebCore::Layout::FloatingState::FloatItem::containingBlockDisplayBox const):
(WebCore::Layout::FloatingState::floats const):
(WebCore::Layout::FloatingState::last const):
(WebCore::Layout::FloatingState::root const):
(WebCore::Layout::FloatingState::floatings const): Deleted.

  • layout/displaytree/DisplayBox.h:
5:21 AM Changeset in webkit [234498] by cturner@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Dynamically adjust blocksize
https://bugs.webkit.org/show_bug.cgi?id=188194

Reviewed by Xabier Rodriguez-Calvar.

Update the blocksize depending on how much is obtained from a read
of the input stream. This avoids doing too many reads in small
chunks when larger amounts of data are available and also prevents
using a very large memory area to read a small chunk of data.

Adapted from https://bugzilla.gnome.org/show_bug.cgi?id=767833

No tests new tests since no change in functionality.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webkit_web_src_init):
(CachedResourceStreamingClient::checkUpdateBlocksize):
(CachedResourceStreamingClient::dataReceived):

2:23 AM Changeset in webkit [234497] by cturner@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Stop pushing buffers when seeking status changes
https://bugs.webkit.org/show_bug.cgi?id=188193

Reviewed by Xabier Rodriguez-Calvar.

After switching to splitting buffers into smaller block sizes in

https://bugs.webkit.org/show_bug.cgi?id=182829

It was found that during the individual buffer pushes, the seeking
status could change behind our backs from another thread. When
this happens, buffers from incorrect offsets would find their way
into appsrc and eventually the demuxer itself, which would start
parsing from a random place and at best give a confusing error
message.

The solution here is break from pushing buffers when the seeking
status has been has changed. Flushes will clear out what we've
already delivered into the appsrc, then we must make sure to not
continue sending buffers in there after the flush.

No new tests since this is a timing bug.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(CachedResourceStreamingClient::dataReceived):

Aug 1, 2018:

11:28 PM Changeset in webkit [234496] by bshafiei@apple.com
  • 6 edits in branches/safari-606-branch/Source/WebKit

Cherry-pick r234486. rdar://problem/42844004

Make sure cookies get flushed to disk before exiting or suspending the network process
https://bugs.webkit.org/show_bug.cgi?id=188241
<rdar://problem/42831831>

Reviewed by Alex Christensen and Geoffrey Garen.

Make sure cookies get flushed to disk before exiting or suspending the network process,
to make sure they do not get lost.

  • NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::didClose): (WebKit::NetworkProcess::actualPrepareToSuspend): (WebKit::NetworkProcess::platformSyncAllCookies):
  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::syncAllCookies): (WebKit::NetworkProcess::platformSyncAllCookies):
  • Shared/ChildProcess.cpp: (WebKit::ChildProcess::didClose): (WebKit::callExitNow): (WebKit::callExitSoon): (WebKit::ChildProcess::initialize): (WebKit::didCloseOnConnectionWorkQueue): Deleted.
  • Shared/ChildProcess.h: (WebKit::ChildProcess::shouldCallExitWhenConnectionIsClosed const):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234486 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:21 PM Changeset in webkit [234495] by bshafiei@apple.com
  • 10 edits in branches/safari-606-branch

Cherry-pick r234466. rdar://problem/42843690

Hardcode some system colors to avoid fingerprinting exposure.
https://bugs.webkit.org/show_bug.cgi?id=188203
rdar://problem/42781630

Reviewed by Tim Horton.

Source/WebCore:

Passes existing tests with the hardcoded blue system appearance.

  • rendering/RenderTheme.h:
  • rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::systemColor const): Adds special handling for some system colors. Fixes -apple-system-selected-text-background to match the real selection color by using blendWithWhite().

LayoutTests:

  • fast/css/apple-system-control-colors-expected.txt: Updated.
  • fast/css/test-setting-canvas-color.html: Fixed for colors with alpha.
  • platform/mac-highsierra/fast/css/apple-system-control-colors-expected.txt:
  • platform/mac-sierra/fast/css/apple-system-control-colors-expected.txt: Updated.
  • platform/mac/TestExpectations: Removed fast/css/test-setting-canvas-color.html.
  • platform/mac/fast/css/apple-system-control-colors-expected.txt: Updated.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234466 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:20 PM Changeset in webkit [234494] by bshafiei@apple.com
  • 2 edits in branches/safari-606-branch/Source/WebKit

Cherry-pick r234384. rdar://problem/42843520

REGRESSION (r230817): Terrible performance when selecting text on Stash code review
https://bugs.webkit.org/show_bug.cgi?id=188144
<rdar://problem/42642489>

Reviewed by Darin Adler.

After r230817, mouse events were serially dispatched to the web process and handled before the subsequent mouse
event. However, this resulted in rapid-fire mouse move events filling up the mouse event queue in the case where
mouse move events were being handled by the web process at a slower rate than the UI process was enqueueing
them. To mitigate this, r231511 introduced a mechanism for replacing the most recently enqueued mouse move event
with an incoming mouse move event.

However, when a user with a force-click-enabled trackpad performs a mouse drag, a rapid stream of
"mouseforcechanged" events is interleaved alongside the stream of "mousemove" events. This renders r231511
ineffective, since the most recently queued event is often a "mouseforcechanged" event instead of a "mousemove".
On the stash code review page, this can result in hundreds of mouse events being backed up in the mouse event
queue, causing perceived slowness when selecting text.

To fix this, we extend the mechanism introduced in r231511, such that it is capable of replacing both
"mouseforcechanged" and "mousemove" events in the queue. Rather than consider only the most recently queued
item, we instead find the most recently queued event that matches the type of the incoming event, remove it from
the queue, and then append the incoming event to the end of the queue. To avoid the risk of removing the only
"mousemove" or "mouseforcechanged" event in the middle of a mouse down and mouse up, we also bail when searching
backwards for an event to replace if we come across any event that is neither of these types.

This effectively throttles the rate at which mouseforcechanged or mousemove events are dispatched when a user
with force-click-enabled hardware clicks and drags the mouse across the page.

  • UIProcess/WebPageProxy.cpp: (WebKit::removeOldRedundantEvent): (WebKit::WebPageProxy::handleMouseEvent):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234384 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9:24 PM Changeset in webkit [234493] by Yusuke Suzuki
  • 2 edits in trunk/Source/WebCore

Unreviewed, revert TransformationMatrix::operator== change
https://bugs.webkit.org/show_bug.cgi?id=188197

This change partially revert cleaning up of TransformationMatrix since memcmp does not
follow double comparison algorithm. So semantics was accidentally changed.

  • platform/graphics/transforms/TransformationMatrix.h:

(WebCore::TransformationMatrix::operator== const):

9:10 PM Changeset in webkit [234492] by Yusuke Suzuki
  • 4 edits in trunk/Source/WebCore

Unreviewed, rename TransformationMatrix::Identity to TransformationMatrix::identity
https://bugs.webkit.org/show_bug.cgi?id=188204

Follow the coding style.

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::transform const):
(WebCore::GraphicsLayer::childrenTransform const):

  • platform/graphics/transforms/TransformationMatrix.cpp:
  • platform/graphics/transforms/TransformationMatrix.h:
8:55 PM Changeset in webkit [234491] by Yusuke Suzuki
  • 9 edits
    2 moves
    2 adds in trunk

Add self.queueMicrotask(f) on DOMWindow
https://bugs.webkit.org/show_bug.cgi?id=188212

Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • runtime/JSGlobalObject.cpp:

(JSC::enqueueJob):

  • runtime/JSMicrotask.cpp: Renamed from Source/JavaScriptCore/runtime/JSJob.cpp.

(JSC::createJSMicrotask):
Export them to WebCore.

(JSC::JSMicrotask::run):

  • runtime/JSMicrotask.h: Renamed from Source/JavaScriptCore/runtime/JSJob.h.

Add another version of JSMicrotask which does not have arguments.

Source/WebCore:

This patch adds self.queueMicrotask(f) in DOMWindow, which takes a function and enqueue it into microtask queue.
We do not add this to Worker's global scope since our worker does not support microtasks correctly.

Tests: js/dom/queue-microtask-window.html

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::queueMicrotask):
Post a microtask to JSC's microtask mechanism. This will eventually go to WebCore's MicrotaskQueue code.

  • page/DOMWindow.idl:

LayoutTests:

  • js/dom/queue-microtask-window-expected.txt: Added.
  • js/dom/queue-microtask-window.html: Added.
7:19 PM Changeset in webkit [234490] by Ross Kirsling
  • 2 edits in trunk/Tools

TestWTF.WTF_NeverDestroyed.Construct output differs for MSVC in Debug mode
https://bugs.webkit.org/show_bug.cgi?id=188244

Reviewed by Daniel Bates.

Follow-up to r234179. MSVC chooses not to inline the lambda in Debug mode.

  • TestWebKitAPI/Tests/WTF/NeverDestroyed.cpp:
7:11 PM Changeset in webkit [234489] by tpopela@redhat.com
  • 116 edits in trunk

[WTF] Rename String::format to String::deprecatedFormat
https://bugs.webkit.org/show_bug.cgi?id=188191

Reviewed by Darin Adler.

It should be replaced with string concatenation.

Source/JavaScriptCore:

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::nameForRegister):

  • inspector/InjectedScriptBase.cpp:

(Inspector::InjectedScriptBase::makeCall):

  • inspector/InspectorBackendDispatcher.cpp:

(Inspector::BackendDispatcher::getPropertyValue):

  • inspector/agents/InspectorConsoleAgent.cpp:

(Inspector::InspectorConsoleAgent::enable):
(Inspector::InspectorConsoleAgent::stopTiming):

  • jsc.cpp:

(FunctionJSCStackFunctor::operator() const):

  • parser/Lexer.cpp:

(JSC::Lexer<T>::invalidCharacterMessage const):

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::initializeDateTimeFormat):

  • runtime/IntlObject.cpp:

(JSC::canonicalizeLocaleList):

  • runtime/LiteralParser.cpp:

(JSC::LiteralParser<CharType>::Lexer::lex):
(JSC::LiteralParser<CharType>::Lexer::lexStringSlow):
(JSC::LiteralParser<CharType>::parse):

  • runtime/LiteralParser.h:

(JSC::LiteralParser::getErrorMessage):

Source/WebCore:

  • Modules/indexeddb/IDBKeyData.cpp:

(WebCore::IDBKeyData::loggingString const):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::addRecord):

  • Modules/indexeddb/shared/IDBCursorInfo.cpp:

(WebCore::IDBCursorInfo::loggingString const):

  • Modules/indexeddb/shared/IDBGetAllRecordsData.cpp:

(WebCore::IDBGetAllRecordsData::loggingString const):

  • Modules/indexeddb/shared/IDBGetRecordData.cpp:

(WebCore::IDBGetRecordData::loggingString const):

  • Modules/indexeddb/shared/IDBIndexInfo.cpp:

(WebCore::IDBIndexInfo::loggingString const):
(WebCore::IDBIndexInfo::condensedLoggingString const):

  • Modules/indexeddb/shared/IDBIterateCursorData.cpp:

(WebCore::IDBIterateCursorData::loggingString const):

  • Modules/indexeddb/shared/IDBObjectStoreInfo.cpp:

(WebCore::IDBObjectStoreInfo::condensedLoggingString const):

  • Modules/indexeddb/shared/IDBResourceIdentifier.cpp:

(WebCore::IDBResourceIdentifier::loggingString const):

  • Modules/webdatabase/Database.cpp:

(WebCore::formatErrorMessage):

  • Modules/webdatabase/SQLError.h:

(WebCore::SQLError::create):

  • Modules/websockets/WebSocket.cpp:

(WebCore::encodeProtocolString):

  • accessibility/win/AccessibilityObjectWrapperWin.cpp:

(WebCore::AccessibilityObjectWrapper::accessibilityAttributeValue):

  • css/CSSUnicodeRangeValue.cpp:

(WebCore::CSSUnicodeRangeValue::customCSSText const):

  • css/MediaQueryEvaluator.cpp:

(WebCore::aspectRatioValueAsString):

  • css/parser/CSSParserToken.cpp:

(WebCore::CSSParserToken::serialize const):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseHexColor):

  • dom/Document.cpp:

(WebCore::Document::lastModified):

  • html/FTPDirectoryDocument.cpp:

(WebCore::processFilesizeString):
(WebCore::processFileDateString):

  • html/HTMLMediaElement.h:

(WTF::ValueToString<WebCore::TextTrackCue::string):

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::setLength):

  • html/ImageDocument.cpp:

(WebCore::ImageDocument::imageUpdated):

  • html/canvas/WebGLRenderingContextBase.cpp:
  • html/parser/XSSAuditor.cpp:

(WebCore::XSSAuditor::init):

  • html/track/VTTCue.cpp:

(WebCore::VTTCueBox::applyCSSProperties):

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::setDockingUnavailable):
(WebCore::InspectorFrontendClientLocal::setAttachedWindow):
(WebCore::InspectorFrontendClientLocal::setDebuggingEnabled):
(WebCore::InspectorFrontendClientLocal::setTimelineProfilingEnabled):
(WebCore::InspectorFrontendClientLocal::showMainResourceForFrame):

  • inspector/agents/InspectorCSSAgent.cpp:
  • inspector/agents/InspectorIndexedDBAgent.cpp:
  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::windowRoundedCornerRadiusCSS const):

  • page/History.cpp:

(WebCore::History::stateObjectAdded):

  • page/MemoryRelease.cpp:

(WebCore::logMemoryStatisticsAtTimeOfDeath):

  • page/cocoa/ResourceUsageOverlayCocoa.mm:

(WebCore::formatByteNumber):
(WebCore::gcTimerString):
(WebCore::ResourceUsageOverlay::platformDraw):

  • page/cocoa/ResourceUsageThreadCocoa.mm:

(WebCore::logFootprintComparison):

  • page/linux/ResourceUsageOverlayLinux.cpp:

(WebCore::cpuUsageString):
(WebCore::formatByteNumber):
(WebCore::gcTimerString):

  • page/scrolling/AxisScrollSnapOffsets.cpp:

(WebCore::snapOffsetsToString):
(WebCore::snapOffsetRangesToString):
(WebCore::snapPortOrAreaToString):

  • platform/DateComponents.cpp:

(WebCore::DateComponents::toStringForTime const):
(WebCore::DateComponents::toString const):

  • platform/LocalizedStrings.cpp:
  • platform/animation/TimingFunction.cpp:

(WebCore::TimingFunction::cssText const):

  • platform/audio/HRTFElevation.cpp:

(WebCore::HRTFElevation::calculateKernelsForAzimuthElevation):

  • platform/cocoa/KeyEventCocoa.mm:

(WebCore::keyIdentifierForCharCode):

  • platform/gamepad/mac/HIDGamepad.cpp:

(WebCore::HIDGamepad::HIDGamepad):

  • platform/glib/UserAgentGLib.cpp:

(WebCore::platformVersionForUAString):

  • platform/graphics/Color.cpp:

(WebCore::Color::nameForRenderTreeAsText const):

  • platform/graphics/FloatPolygon.h:

(WTF::ValueToString<WebCore::FloatPolygonEdge::string):

  • platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:

(WebCore::AVTrackPrivateAVFObjCImpl::id const):

  • platform/graphics/avfoundation/MediaSampleAVFObjC.h:

(WebCore::MediaSampleAVFObjC::MediaSampleAVFObjC):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::setName):
(WebCore::GraphicsLayerCA::setContentsToSolidColor):
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
(WebCore::GraphicsLayerCA::updateContentsImage):
(WebCore::GraphicsLayerCA::updateContentsRects):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::simpleBusMessageCallback):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::load):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::handleStateChangeMessage):
(WebCore::AppendPipeline::resetPipeline):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::load):
(WebCore::MediaPlayerPrivateGStreamerMSE::doSeek):

  • platform/graphics/gtk/ImageBufferGtk.cpp:

(WebCore::encodeImage):

  • platform/gtk/PlatformKeyboardEventGtk.cpp:

(WebCore::PlatformKeyboardEvent::keyIdentifierForGdkKeyCode):

  • platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp:

(WebCore::GStreamerAudioCaptureSource::create):

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(WebCore::webkitMediaStreamSrcAddPad):

  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:

(WebCore::GStreamerVideoCaptureSource::create):

  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:

(WebCore::GStreamerVideoEncoder::makeElement):

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::drawText):

  • platform/mock/mediasource/MockSourceBufferPrivate.cpp:
  • platform/network/ParsedContentRange.cpp:

(WebCore::ParsedContentRange::headerValue const):

  • platform/network/cf/NetworkStorageSessionCFNet.cpp:

(WebCore::NetworkStorageSession::switchToNewTestingSession):

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::unauthorizedSQLFunction):

  • platform/text/PlatformLocale.cpp:

(WebCore::DateTimeStringBuilder::visitField):

  • platform/win/GDIObjectCounter.cpp:

(WebCore::GDIObjectCounter::GDIObjectCounter):

  • platform/win/KeyEventWin.cpp:

(WebCore::keyIdentifierForWindowsKeyCode):

  • rendering/FloatingObjects.h:

(WTF::ValueToString<WebCore::FloatingObject::string):

  • rendering/RenderFragmentedFlow.h:

(WTF::ValueToString<WebCore::RenderFragmentContainer::string):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::logLayerInfo):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::formatMediaControlsTime const):

  • testing/Internals.cpp:

(WebCore::Internals::address):

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::ensureValidRecordsTable):
(WebCore::RegistrationDatabase::importRecords):

Source/WebCore/PAL:

  • pal/FileSizeFormatter.cpp:

(fileSizeDescription):

Source/WebKit:

  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::buildAcceptLanguages):

  • Platform/IPC/win/ConnectionWin.cpp:

(IPC::Connection::createServerAndClientIdentifiers):

  • Shared/WebMemorySampler.cpp:

(WebKit::WebMemorySampler::writeHeaders):

  • Shared/win/WebEventFactory.cpp:

(WebKit::keyIdentifierFromEvent):

  • Shared/wpe/WebEventFactory.cpp:

(WebKit::identifierStringForKeyEvent):

  • UIProcess/API/APINavigation.cpp:

(API::Navigation::loggingString const):

  • UIProcess/API/glib/IconDatabase.cpp:

(WebKit::IconDatabase::performURLImport):

  • UIProcess/Cocoa/ViewGestureController.cpp:

(WebKit::ViewGestureController::SnapshotRemovalTracker::startWatchdog):

  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::SuspendedPageProxy::loggingString const):

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::loggingString):

  • UIProcess/WebInspectorUtilities.cpp:

(WebKit::inspectorPageGroupIdentifierForPage):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processDidFinishLaunching):
(WebKit::WebProcessPool::startMemorySampler):

  • UIProcess/gtk/InputMethodFilter.cpp:

(WebKit::InputMethodFilter::logHandleKeyboardEventForTesting):
(WebKit::InputMethodFilter::logHandleKeyboardEventWithCompositionResultsForTesting):
(WebKit::InputMethodFilter::logConfirmCompositionForTesting):
(WebKit::InputMethodFilter::logSetPreeditForTesting):

Source/WebKitLegacy/win:

  • FullscreenVideoController.cpp:

(timeToString):

  • WebView.cpp:

(webKitVersionString):

Source/WTF:

  • wtf/Assertions.cpp:
  • wtf/JSONValues.cpp:
  • wtf/WorkQueue.cpp:

(WTF::WorkQueue::concurrentApply):

  • wtf/dtoa.cpp:

(WTF::dtoa):

  • wtf/text/WTFString.cpp:

(WTF::String::deprecatedFormat):
(WTF::String::format): Deleted.

  • wtf/text/WTFString.h:

Tools:

  • DumpRenderTree/win/DumpRenderTree.cpp:

(applicationId):
(main):

  • TestWebKitAPI/win/PlatformUtilitiesWin.cpp:

(TestWebKitAPI::Util::createURLForResource):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::cacheTestRunnerCallback):

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp:

(WTR::AccessibilityNotificationHandler::connectAccessibilityCallbacks):

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::attributedStringForRange):
(WTR::AccessibilityUIElement::url):
(WTR::stringAtOffset):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::didReceiveAuthenticationChallenge):
(WTR::TestController::downloadDidFail):
(WTR::originUserVisibleName):
(WTR::userMediaOriginHash):
(WTR::TestController::didNavigateWithNavigationData):
(WTR::TestController::didPerformClientRedirect):
(WTR::TestController::didPerformServerRedirect):
(WTR::TestController::didUpdateHistoryTitle):

5:30 PM Changeset in webkit [234488] by timothy_horton@apple.com
  • 8 edits
    2 adds in trunk/Source

Using the keyboard arrow keys to scroll a webpage is very slow, not smooth, takes too long
https://bugs.webkit.org/show_bug.cgi?id=188239
<rdar://problem/22997654>

Reviewed by Simon Fraser.

Source/WebCore/PAL:

  • pal/spi/cocoa/QuartzCoreSPI.h:

Add a piece of SPI.

Source/WebKit:

Instead of depending on key repeat to drive scrolling with arrow keys held down,
run a display link that animates the scroll. We still do a single discrete scroll
first (so that you can tap the key and shift by line/page), but then on the first
repeat we ramp up to a constant velocity determined by the desired increment,
stopping when the key is lifted or a different key is pressed.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _scrollByContentOffset:animated:]):
(-[WKWebView _scrollByContentOffset:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:

Add animated parameter to scrollByContentOffset, and plumb it through to UIScrollView.

  • UIProcess/ios/WKContentViewInteraction.h:

Add a WKKeyboardScrollingAnimator member.
Conform to WKKeyboardScrollable.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]):
Install the WKKeyboardScrollingAnimator.

(-[WKContentView cleanupInteraction]):
Uninstall the WKKeyboardScrollingAnimator.

(-[WKContentView unscaledView]):
Fix a stupid style nit.

(-[WKContentView handleKeyWebEvent:]):
Give WKKeyboardScrollingAnimator the first shot at incoming keyboard events.
It will only consume events here if it's already performing a scrolling animation
(because otherwise they should go straight through to the page).

(-[WKContentView _interpretKeyEvent:isCharEvent:]):
Give WKKeyboardScrollingAnimator a shot at handling keyboard events that
the web content did not handle. We will only start a scrolling animation
if the page did not handle an event that would start a scroll.

(-[WKContentView isKeyboardScrollable]):
Part of WKKeyboardScrollable; only report ourselves as scrollable if
we would previously have allowed scrolling from keyboard events (if
we're not in contenteditable, and don't have a <select> focused).

(-[WKContentView distanceForScrollingIncrement:]):
Part of WKKeyboardScrollable; compute the distance for each scrolling increment.

(-[WKContentView scrollByContentOffset:animated:]):
Part of WKKeyboardScrollable; plumb scrolls up to WKWebView.

(-[WKContentView _scrollOffsetForEvent:]): Moved to WKKeyboardScrollingAnimator.mm.

  • UIProcess/ios/WKKeyboardScrollingAnimator.h: Added.
  • UIProcess/ios/WKKeyboardScrollingAnimator.mm: Added.

(-[WKKeyboardScrollingAnimator init]):
(-[WKKeyboardScrollingAnimator initWithScrollable:]):
(-[WKKeyboardScrollingAnimator invalidate]):
(-[WKKeyboardScrollingAnimator _scrollOffsetForEvent:]):
Compute the scroll offset given a particular event. This is moved from WKContentView;
otherwise the primary change is that it now asks the WKKeyboardScrollable
for the distance instead of computing it directly.

(-[WKKeyboardScrollingAnimator beginWithEvent:]):
If we're currently in the initial state (WaitingForFirstEvent), and
a given event should start a scroll, transition into WaitingForRepeat,
and do a single animated scroll of the appropriate distance.

(-[WKKeyboardScrollingAnimator handleKeyEvent:]):
If this key event should terminate a scroll (because it is either a keyup
or a non-scrolling keydown), shut down any running animations.

If this is the first key repeat after the initial scroll, start a scrolling
animation.

Eat the event if it either started or continued a scroll.

(-[WKKeyboardScrollingAnimator startAnimatedScroll]):
(-[WKKeyboardScrollingAnimator stopAnimatedScroll]):
Helpers to start and stop the display link and do some bookkeeping.

(-[WKKeyboardScrollingAnimator displayLinkFired:]):
Ask the WKKeyboardScrollable to scroll the content based on the frame time,
an acceleration curve, and the current animation's scrolling increment.

  • WebKit.xcodeproj/project.pbxproj:
5:02 PM Changeset in webkit [234487] by Kocsen Chung
  • 7 edits in branches/safari-606-branch/Source

Versioning.

4:45 PM Changeset in webkit [234486] by Chris Dumez
  • 6 edits in trunk/Source/WebKit

Make sure cookies get flushed to disk before exiting or suspending the network process
https://bugs.webkit.org/show_bug.cgi?id=188241
<rdar://problem/42831831>

Reviewed by Alex Christensen and Geoffrey Garen.

Make sure cookies get flushed to disk before exiting or suspending the network process,
to make sure they do not get lost.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::didClose):
(WebKit::NetworkProcess::actualPrepareToSuspend):
(WebKit::NetworkProcess::platformSyncAllCookies):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::syncAllCookies):
(WebKit::NetworkProcess::platformSyncAllCookies):

  • Shared/ChildProcess.cpp:

(WebKit::ChildProcess::didClose):
(WebKit::callExitNow):
(WebKit::callExitSoon):
(WebKit::ChildProcess::initialize):
(WebKit::didCloseOnConnectionWorkQueue): Deleted.

  • Shared/ChildProcess.h:

(WebKit::ChildProcess::shouldCallExitWhenConnectionIsClosed const):

4:26 PM Changeset in webkit [234485] by rniwa@webkit.org
  • 4 edits in trunk/LayoutTests

REGRESSION(r227983): fast/dom/adopt-node-crash-2.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=182589

Rebaseline the test and remove the flaky test expectation.

  • fast/dom/adopt-node-crash-2-expected.txt:
  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
3:36 PM Changeset in webkit [234484] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.34

Tag Safari-606.1.34.

3:08 PM Changeset in webkit [234483] by achristensen@apple.com
  • 10 edits in trunk/Source

Move all calls to ResourceLoader::start to WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=184946

Reviewed by Andy Estes.

Source/WebCore:

This is in preparation for moving ResourceLoader::start to WebKitLegacy along with all ResourceHandle code.
I move the code that moves m_deferredRequest into m_request into WebKitLegacy, which won't change behavior for
modern WebKit because modern WebKit never calls ResourceLoader::start, the only place where m_deferredRequest
is ever set. This won't change behavior for WebKitLegacy because the same operations happen in the same order.

  • loader/LoaderStrategy.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::setDefersLoading):

  • loader/ResourceLoader.h:

(WebCore::ResourceLoader::setRequest):
(WebCore::ResourceLoader::deferredRequest const):
(WebCore::ResourceLoader::takeDeferredRequest):

Source/WebKit:

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::setDefersLoading):

  • WebProcess/Network/WebLoaderStrategy.h:

Source/WebKitLegacy:

  • WebCoreSupport/WebResourceLoadScheduler.cpp:

(WebResourceLoadScheduler::setDefersLoading):

  • WebCoreSupport/WebResourceLoadScheduler.h:
3:07 PM Changeset in webkit [234482] by n_wang@apple.com
  • 21 edits
    4 adds in trunk

AX: AOM: Add ARIA IDL Attribute Reflection
https://bugs.webkit.org/show_bug.cgi?id=184676
<rdar://problem/39476882>

Source/WebCore:

Reviewed by Chris Fleizach.

Test: accessibility/ARIA-reflection.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AccessibilityRole.idl: Added.
  • accessibility/AriaAttributes.idl: Added.
  • dom/Element.idl:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setAriaReflectionEnabled):
(WebCore::RuntimeEnabledFeatures::ariaReflectionEnabled const):

Source/WebKit:

Added ARIA property string reflection on Element, behind
a new runtime flag.
Spec: https://w3c.github.io/aria/#idl-interface

Reviewed by Chris Fleizach.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetAriaReflectionEnabled):
(WKPreferencesGetAriaReflectionEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:

Source/WebKitLegacy/mac:

Reviewed by Chris Fleizach.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences ariaReflectionEnabled]):
(-[WebPreferences setAriaReflectionEnabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Tools:

Reviewed by Chris Fleizach.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

Reviewed by Chris Fleizach.

  • accessibility/ARIA-reflection-expected.txt: Added.
  • accessibility/ARIA-reflection.html: Added.
  • js/dom/dom-static-property-for-in-iteration.html:
  • platform/win/TestExpectations:
2:46 PM Changeset in webkit [234481] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Floating] Revert back to only one list for the all the floatings.
https://bugs.webkit.org/show_bug.cgi?id=188232

Reviewed by Antti Koivisto.

If the combined floating list turns out to be a performance bottleneck, we can still split it into left and right. However at this point
having 2 dedicated lists just makes the implementation more complicated.

  • layout/FloatingContext.cpp:

(WebCore::Layout::begin):
(WebCore::Layout::end):
(WebCore::Layout::FloatingPair::FloatingPair):
(WebCore::Layout::FloatingPair::left const):
(WebCore::Layout::FloatingPair::right const):
(WebCore::Layout::Iterator::Iterator):
(WebCore::Layout::previousFloatingIndex):
(WebCore::Layout::Iterator::operator++):
(WebCore::Layout::Iterator::set):
(WebCore::Layout::floatingDisplayBox): Deleted.

  • layout/FloatingState.cpp:

(WebCore::Layout::FloatingState::remove):
(WebCore::Layout::FloatingState::append):

  • layout/FloatingState.h:

(WebCore::Layout::FloatingState::isEmpty const):
(WebCore::Layout::FloatingState::floatings const):
(WebCore::Layout::FloatingState::last const):

2:36 PM Changeset in webkit [234480] by Basuke Suzuki
  • 5 edits in trunk/Source/WebCore

[Curl] Change synchronous request logic using MessageQueue to match with Mac port.
https://bugs.webkit.org/show_bug.cgi?id=188206

Reviewed by Alex Christensen.

Port synchronous request logic from ResourceHandleMac to use MessageQueue for
client callback invocation. This makes simplify the logic of CurlRequest because
now every requests are handled in Curl thread and there's no difference between
sync and async requests.

Test: Covered by these tests:

  • http\tests\xmlhttprequest\simple-sync.html
  • http\tests\xmlhttprequest\xmlhttprequest-unsafe-redirect.html
  • platform/network/ResourceHandleInternal.h:
  • platform/network/curl/CurlRequest.cpp: Remove synchronous request logics.

(WebCore::CurlRequest::CurlRequest):
(WebCore::CurlRequest::invalidateClient):
(WebCore::CurlRequest::start):
(WebCore::CurlRequest::cancel):
(WebCore::CurlRequest::runOnMainThread): Added message queue handling.
(WebCore::CurlRequest::runOnWorkerThreadIfRequired):
(WebCore::CurlRequest::didReceiveData):
(WebCore::CurlRequest::invokeDidReceiveResponseForFile):
(WebCore::CurlRequest::completeDidReceiveResponse):
(WebCore::CurlRequest::updateHandlePauseState):
(WebCore::CurlRequest::isHandlePaused const):

  • platform/network/curl/CurlRequest.h:

(WebCore::CurlRequest::create):
(WebCore::CurlRequest::resourceRequest const):

  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::createCurlRequest):
(WebCore::ResourceHandle::restartRequestWithCredential):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
(WebCore::ResourceHandle::platformContinueSynchronousDidReceiveResponse):
(WebCore::ResourceHandle::continueAfterDidReceiveResponse):
(WebCore::ResourceHandle::continueAfterWillSendRequest):
(WebCore::ResourceHandle::handleDataURL):

2:33 PM Changeset in webkit [234479] by david_fenton@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test editing/selection/update-selection-by-style-change.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=187649

Unreviewed test gardening, re-marked test as flaky.

  • platform/mac-wk2/TestExpectations:
2:31 PM Changeset in webkit [234478] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][Floating] Use margin box consistently while placing a floating.
https://bugs.webkit.org/show_bug.cgi?id=188222

Reviewed by Antti Koivisto.

The floating box fits when its margin box fits.

  • layout/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::computePosition const):
(WebCore::Layout::FloatingContext::floatingPosition const):
(WebCore::Layout::FloatingContext::initialVerticalPosition const):
(WebCore::Layout::FloatingContext::alignWithContainingBlock const):
(WebCore::Layout::FloatingContext::alignWithFloatings const):
(WebCore::Layout::FloatingPair::intersects const):

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::rectWithMargin const):

2:21 PM Changeset in webkit [234477] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[INTL] Allow "unknown" formatToParts types
https://bugs.webkit.org/show_bug.cgi?id=188176

Patch by Andy VanWagoner <andy@vanwagoner.family> on 2018-08-01
Reviewed by Darin Adler.

Originally extra unexpected field types were marked as "literal", since
the spec did not account for these. The ECMA 402 spec has since been updated
to specify "unknown" should be used in these cases.

Currently there is no known way to reach these cases, so no tests can
account for them. Theoretically they shoudn't exist, but they are specified,
just to be safe. Marking them as "unknown" instead of "literal" hopefully
will make such cases easy to identify if they ever happen.

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::partTypeString):

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::partTypeString):

2:20 PM Changeset in webkit [234476] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC] Add FormattingContext::mapToAncestor geometry mapping function
https://bugs.webkit.org/show_bug.cgi?id=188188

Reviewed by Antti Koivisto.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::mapToAncestor):

  • layout/FormattingContext.h:
  • layout/displaytree/DisplayBox.cpp:

(WebCore::Display::Box::clone const):

  • layout/displaytree/DisplayBox.h:
2:19 PM Changeset in webkit [234475] by commit-queue@webkit.org
  • 11 edits in trunk

[INTL] Implement hourCycle in DateTimeFormat
https://bugs.webkit.org/show_bug.cgi?id=188006

Patch by Andy VanWagoner <andy@vanwagoner.family> on 2018-08-01
Reviewed by Darin Adler.

JSTests:

Removed fixed hourCycle expectations.

  • test262/expectations.yaml:

Source/JavaScriptCore:

Implemented hourCycle, updating both the skeleton and the final pattern.
Changed resolveLocale to assume undefined options are not given and null
strings actually mean null, which removes the tag extension.

  • runtime/CommonIdentifiers.h:
  • runtime/IntlCollator.cpp:

(JSC::IntlCollator::initializeCollator):

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDTFInternal::localeData):
(JSC::IntlDateTimeFormat::setFormatsFromPattern):
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
(JSC::IntlDateTimeFormat::resolvedOptions):

  • runtime/IntlDateTimeFormat.h:
  • runtime/IntlObject.cpp:

(JSC::resolveLocale):

LayoutTests:

Added tests for hourCycle.

  • js/intl-datetimeformat-expected.txt:
  • js/script-tests/intl-datetimeformat.js:
2:16 PM Changeset in webkit [234474] by Basuke Suzuki
  • 2 edits in trunk/Source/WebCore

[Curl] Bugfix on ResourceHandle::cancel()
https://bugs.webkit.org/show_bug.cgi?id=188234

Reviewed by Darin Adler.
Trivial bug. The actual request was not cancelled correctly.

  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::cancel):

2:13 PM Changeset in webkit [234473] by commit-queue@webkit.org
  • 11 edits in trunk/LayoutTests

number-toLocaleString.js test fails on ARM Linux buildbots
https://bugs.webkit.org/show_bug.cgi?id=154533

Patch by Andy VanWagoner <andy@vanwagoner.family> on 2018-08-01
Reviewed by Yusuke Suzuki.

Removed assumed default locale in Intl tests. The default is tested to
verify that it is a string, and a canonicalized language tag. All other
test cases explicitly use a locale when they expect a localized value.

  • js/intl-collator-expected.txt:
  • js/intl-datetimeformat-expected.txt:
  • js/intl-default-locale-expected.txt:
  • js/intl-default-locale.html:
  • js/intl-numberformat-expected.txt:
  • js/intl-pluralrules-expected.txt:
  • js/script-tests/intl-collator.js:
  • js/script-tests/intl-datetimeformat.js:
  • js/script-tests/intl-numberformat.js:
  • js/script-tests/intl-pluralrules.js:
2:05 PM Changeset in webkit [234472] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview 62

Added a tag for Safari Technology Preview release 62.

1:53 PM Changeset in webkit [234471] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Floating] FloatingState should take the formatting root box.
https://bugs.webkit.org/show_bug.cgi?id=188214

Reviewed by Antti Koivisto.

This will be taken into use when FormattingContext takes all boxes in the coordinate system of the formatting root.

  • layout/FloatingState.cpp:

(WebCore::Layout::FloatingState::FloatingState):
(WebCore::Layout::belongsToThisFloatingContext):
(WebCore::Layout::FloatingState::append):

  • layout/FloatingState.h:

(WebCore::Layout::FloatingState::create):

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::establishedFormattingState):

1:52 PM Changeset in webkit [234470] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Floating] Align new floating with the bottom of the existing floatings.
https://bugs.webkit.org/show_bug.cgi?id=188213

Reviewed by Antti Koivisto.

When the incoming floating does not fit at all, align its top with the bottom of the existing floatings.

  • layout/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::floatingPosition const):
(WebCore::Layout::FloatingPair::bottom const):

1:48 PM Changeset in webkit [234469] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

Always use MediaPlayback audio category when playing to AppleTV
https://bugs.webkit.org/show_bug.cgi?id=188230
<rdar://problem/42497809>

Reviewed by Jer Noble.

  • platform/audio/cocoa/MediaSessionManagerCocoa.cpp:

(PlatformMediaSessionManager::updateSessionState): Check session.isPlayingToWirelessPlaybackTarget().

1:33 PM Changeset in webkit [234468] by keith_miller@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

JSArrayBuffer should have its own JSType
https://bugs.webkit.org/show_bug.cgi?id=188231

Reviewed by Saam Barati.

  • runtime/JSArrayBuffer.cpp:

(JSC::JSArrayBuffer::createStructure):

  • runtime/JSCast.h:
  • runtime/JSType.h:
1:29 PM Changeset in webkit [234467] by Jonathan Bedard
  • 2 edits in trunk/Tools

Use iPhone SE as the default simulated device
https://bugs.webkit.org/show_bug.cgi?id=188227

Reviewed by Aakash Jain.

  • Scripts/webkitpy/port/ios_simulator.py:

(IOSSimulatorPort):

12:07 PM Changeset in webkit [234466] by timothy@apple.com
  • 10 edits in trunk

Hardcode some system colors to avoid fingerprinting exposure.
https://bugs.webkit.org/show_bug.cgi?id=188203
rdar://problem/42781630

Reviewed by Tim Horton.

Source/WebCore:

Passes existing tests with the hardcoded blue system appearance.

  • rendering/RenderTheme.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::systemColor const):
Adds special handling for some system colors. Fixes -apple-system-selected-text-background
to match the real selection color by using blendWithWhite().

LayoutTests:

  • fast/css/apple-system-control-colors-expected.txt: Updated.
  • fast/css/test-setting-canvas-color.html: Fixed for colors with alpha.
  • platform/mac-highsierra/fast/css/apple-system-control-colors-expected.txt:
  • platform/mac-sierra/fast/css/apple-system-control-colors-expected.txt: Updated.
  • platform/mac/TestExpectations: Removed fast/css/test-setting-canvas-color.html.
  • platform/mac/fast/css/apple-system-control-colors-expected.txt: Updated.
11:12 AM Changeset in webkit [234465] by Nikita Vasilyev
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Dark Mode: SourceCodeTextEditor thread indicator widget is too light
https://bugs.webkit.org/show_bug.cgi?id=188119
<rdar://problem/42670811>

Reviewed by Matt Baker.

Make the background of the thread indicator widget darker.

Reduce the number of HTML elements and simplify CSS by removing the HTML element that drew an arrow and using clip-path on inline widgets instead.

  • UserInterface/Views/DarkMode.css:

(@media (prefers-dark-interface)):
(.text-editor > .CodeMirror .execution-line):
(.text-editor > .CodeMirror .execution-range-highlight:not(.CodeMirror-selectedtext),):

  • UserInterface/Views/SourceCodeTextEditor.css:

(.source-code.text-editor .CodeMirror-linewidget):
(.source-code.text-editor > .CodeMirror .line-indicator-widget.inline):
(@media (prefers-dark-interface)):
(.source-code.text-editor > .CodeMirror .thread-widget.inline):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WI.SourceCodeTextEditor.prototype._updateThreadIndicatorWidget):
(WI.SourceCodeTextEditor.prototype._updateIssueWidgetForIssues):

  • UserInterface/Views/TextEditor.css:

(@media (prefers-dark-interface)):
(.text-editor > .CodeMirror .execution-line.primary .CodeMirror-linenumber::after):

  • UserInterface/Views/Variables.css:

(:root):

11:09 AM Changeset in webkit [234464] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Dark Mode: disabled breakpoints banner is too light
https://bugs.webkit.org/show_bug.cgi?id=188120
<rdar://problem/42671348>

Reviewed by Matt Baker.

  • UserInterface/Views/DebuggerSidebarPanel.css:

(@media (prefers-dark-interface)):
(.sidebar > .panel.navigation.debugger .warning-banner):

11:07 AM Changeset in webkit [234463] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

[iOS] Remove the delay before setting audio session category added in r233535
https://bugs.webkit.org/show_bug.cgi?id=188225

Reviewed by Jer Noble.

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::beginInterruption): scheduleUpdateSessionState -> updateSessionState.
(WebCore::PlatformMediaSessionManager::addSession): Ditto.
(WebCore::PlatformMediaSessionManager::removeSession): Ditto.
(WebCore::PlatformMediaSessionManager::sessionStateChanged): Ditto.
(WebCore::PlatformMediaSessionManager::sessionCanProduceAudioChanged): Ditto.
(WebCore::PlatformMediaSessionManager::updateSessionState): Ditto.
(WebCore::PlatformMediaSessionManager::audioOutputDeviceChanged): Ditto.
(WebCore::PlatformMediaSessionManager::scheduleUpdateSessionState): Deleted.

  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.cpp:

(PlatformMediaSessionManager::updateSessionState):
(PlatformMediaSessionManager::scheduleUpdateSessionState): Deleted.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateClipRects):

11:04 AM Changeset in webkit [234462] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Allow WebFramePolicyListenerProxy to be used multiple times
https://bugs.webkit.org/show_bug.cgi?id=188229

Reviewed by Chris Dumez.

This fixes a regression from r234210 in clients that misuse the API.

  • UIProcess/WebFramePolicyListenerProxy.cpp:

(WebKit::WebFramePolicyListenerProxy::use):
(WebKit::WebFramePolicyListenerProxy::download):
(WebKit::WebFramePolicyListenerProxy::ignore):

10:26 AM Changeset in webkit [234461] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

[iOS] Color picker should have a border when presented in a popover
https://bugs.webkit.org/show_bug.cgi?id=188207

Patch by Aditya Keerthi <Aditya Keerthi> on 2018-08-01
Reviewed by Wenson Hsieh.

The color picker should have a border when presented in a popover. This matches
the behavior of color pickers in other parts of iOS.

Since the popover will resize its view to fill its size, we first place the
color picker in a container view. The container view can then fill the popover,
while the smaller color picker is centered in it's container - creating the
appearance of a border.

  • UIProcess/ios/forms/WKFormColorControl.mm:

(-[WKColorPopover initWithView:]):

  • UIProcess/ios/forms/WKFormColorPicker.mm:
9:01 AM Changeset in webkit [234460] by Yusuke Suzuki
  • 4 edits in trunk/Source/WebCore

Add TransformationMatrix::Identity
https://bugs.webkit.org/show_bug.cgi?id=188204

Reviewed by Simon Fraser.

This patch adds TransformationMatrix::Identity, which is a static const variable holding an identity matrix.

No behavior change.

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::transform const):
(WebCore::GraphicsLayer::childrenTransform const):
(): Deleted.

  • platform/graphics/transforms/TransformationMatrix.cpp:
  • platform/graphics/transforms/TransformationMatrix.h:
8:47 AM Changeset in webkit [234459] by commit-queue@webkit.org
  • 13 edits
    1 delete in trunk

Unreviewed, rolling out r234443 and r234445.
https://bugs.webkit.org/show_bug.cgi?id=188224

Revision caused 3 api failures across all platforms.
(Requested by Truitt on #webkit).

Reverted changesets:

"Add configuration for automatic process pre-warming"
https://bugs.webkit.org/show_bug.cgi?id=187108
https://trac.webkit.org/changeset/234443

"Add configuration for automatic process pre-warming"
https://bugs.webkit.org/show_bug.cgi?id=187108
https://trac.webkit.org/changeset/234445

8:40 AM Changeset in webkit [234458] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

[iOS] WKColorPicker's selection indicator doesn't always cover the selected swatch
https://bugs.webkit.org/show_bug.cgi?id=188124

Patch by Aditya Keerthi <Aditya Keerthi> on 2018-08-01
Reviewed by Wenson Hsieh.

  • On iPhone, the size of an individual color swatch can change on rotation. In

this case, we should resize the selection indicator along with the swatch. Added
a new delegate method to WKColorMatrixViewDelegate to notify the color picker if
the matrix was redrawn. We then resize the selection indicator to match the
selected swatch's size.

  • On iPad, the selection indicator should have rounded corners if it's at the

corner of the color picker. Otherwise, part of the indicator will be hidden by
the popover. The selected swatch's position is checked before drawing the
indicator. If it's at one of the four corners of the picker, the appropriate mask
is applied to the color selection indicator's border.

  • UIProcess/ios/forms/WKFormColorPicker.h:
  • UIProcess/ios/forms/WKFormColorPicker.mm:

(-[WKColorMatrixView layoutSubviews]):
(-[WKColorPicker initWithView:]):
(-[WKColorPicker drawSelectionIndicatorForColorButton:]):
(-[WKColorPicker colorMatrixViewDidLayoutSubviews:]):
(-[WKColorPicker colorMatrixView:didTapColorButton:]):
(-[WKColorPicker didPanColors:]):

6:35 AM Changeset in webkit [234457] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Make sure that first buffer running time is 0 in GStreamerMediaStreamSource
https://bugs.webkit.org/show_bug.cgi?id=188210

This is a live source and the first frame is the beginning of the stream,
but that doesn't mean that the incoming stream from the camera didn't start
before. We need to set a pad offset on each srcpad of the source to compensate
for that. This is the exact same logic as in webrtc GStreamerVideo/Enc/Dec/oder.

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-08-01
Reviewed by Alejandro G. Castro.

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(WebCore::webkit_media_stream_src_init):
(WebCore::webkitMediaStreamSrcPushVideoSample):
(WebCore::webkitMediaStreamSrcPushAudioSample):

5:10 AM Changeset in webkit [234456] by aboya@igalia.com
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=188221

  • platform/gtk/TestExpectations:
1:01 AM Changeset in webkit [234455] by zandobersek@gmail.com
  • 7 edits
    2 adds
    2 deletes in trunk/Source

[CoordGraphics] Move CoordinatedBackingStore to WebCore
https://bugs.webkit.org/show_bug.cgi?id=188158

Reviewed by Carlos Garcia Campos.

Move the CoordinatedBackingStore class from WebKit to WebCore. It has no
dependency on anything in the WebKit layer, and it's more suitable to
future needs to keep it in the WebCore layer.

Source/WebCore:

  • platform/TextureMapper.cmake:
  • platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp: Renamed from Source/WebKit/Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp.
  • platform/graphics/texmap/coordinated/CoordinatedBackingStore.h: Renamed from Source/WebKit/Shared/CoordinatedGraphics/CoordinatedBackingStore.h.

(WebCore::CoordinatedBackingStoreTile::CoordinatedBackingStoreTile):
(WebCore::CoordinatedBackingStore::rect const):

Source/WebKit:

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
Note: See TracTimeline for information about the timeline view.