Timeline



Oct 30, 2017:

11:58 PM Changeset in webkit [224222] by jmarcell@apple.com
  • 7 edits in branches/safari-604.4.7.0-branch/Source

Versioning.

11:56 PM Changeset in webkit [224221] by jmarcell@apple.com
  • 7 edits in branches/safari-604.4.7.1-branch/Source

Versioning.

11:46 PM Changeset in webkit [224220] by jmarcell@apple.com
  • 1 copy in branches/safari-604.4.7.1-branch

New branch.

8:22 PM Changeset in webkit [224219] by timothy_horton@apple.com
  • 6 edits in trunk/Websites/webkit.org

Update safe area inset demo pages to use env()
https://bugs.webkit.org/show_bug.cgi?id=179041

Reviewed by Simon Fraser.

  • demos/safe-area-insets/1-default.html:
  • demos/safe-area-insets/2-viewport-fit.html:
  • demos/safe-area-insets/3-safe-area-constants.html:
  • demos/safe-area-insets/4-min-max.html:
  • demos/safe-area-insets/safe-areas.html:

Update to use env() instead of constant(), but keep constant() around
for backwards-compatibility.

Adjust the colors on the safe areas test page to look a little less holiday-like.

8:13 PM Changeset in webkit [224218] by Chris Dumez
  • 157 edits
    30 adds in trunk

Fire updatefound event after resolving the registration promise
https://bugs.webkit.org/show_bug.cgi?id=178985

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline tests and land expected results for tests that are timing out.
A lot of tests are now actualling testing something instead of failing right away.

  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-add.https-expected.txt:
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-delete.https-expected.txt:
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-keys.https-expected.txt:
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-match.https-expected.txt:
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-matchAll.https-expected.txt:
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-put.https-expected.txt:
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-storage-keys.https-expected.txt:
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-storage-match.https-expected.txt:
  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-storage.https-expected.txt:
  • web-platform-tests/service-workers/cache-storage/serviceworker/credentials.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/close.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/extendable-message-event-constructor.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/extendable-message-event.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/postmessage.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/registration-attribute.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/service-worker-error-event.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/unregister.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/update.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/activate-event-after-install-state-change.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/activation-after-registration.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/active.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/appcache-ordering-main.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/claim-affect-other-registration.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/claim-fetch.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/claim-not-using-registration.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/claim-using-registration.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/claim-worker-fetch.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/client-id.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/client-navigate.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/clients-get-client-types.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/clients-get-cross-origin.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/clients-get.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/clients-matchall-exact-controller.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/clients-matchall-include-uncontrolled.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/clients-matchall-on-evaluation.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/clients-matchall-order.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/clients-matchall.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/controller-on-disconnect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/controller-on-load.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/controller-on-reload.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/extendable-event-async-waituntil.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/extendable-event-waituntil.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-cache.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-csp.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-after-navigation-within-page.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-network-error.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-referrer-policy.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-respond-with-argument.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-respond-with-readable-stream.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-respond-with-response-body-with-invalid-chunk.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-respond-with-stops-propagation.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-throws-after-respond-with.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-within-sw.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-frame-resource.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-header-visibility.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-inscope.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-outscope.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-request-css-base-url.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-css-cross-origin-mime-check.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-css-images.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-fallback.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-html-imports.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-no-freshness-headers.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-resources.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-xhr-sync.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-xhr.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-response-taint.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-response-xhr.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-waits-for-activate.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/foreign-fetch-basics.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/foreign-fetch-cors.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/foreign-fetch-event.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/foreign-fetch-workers.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/getregistrations.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/http-to-https-redirect-and-register.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/iframe-sandbox-register-link-element.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/immutable-prototype-serviceworker.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/import-scripts-redirect.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/import-scripts-updated-flag.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/indexeddb.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/install-event-type.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/installing.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/interfaces-sw.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/interfaces-window.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/invalid-blobtype.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/invalid-header.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/iso-latin1-header.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/link-element-register-basic.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/link-element-register-mime-types.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/link-element-register-scope.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/link-element-register-script-url.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/link-element-register-script.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/link-element-register-security-error.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/mime-sniffing.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/multi-globals/url-parsing.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/multiple-register.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/multiple-update.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/navigate-window.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/navigation-preload/broken-chunked-encoding.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/navigation-preload/chunked-encoding.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/navigation-preload/empty-preload-response-body.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/navigation-preload/get-state.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/navigation-preload/redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/navigation-preload/request-headers.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/navigation-preload/resource-timing.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/navigation-redirect-body.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/navigation-redirect-to-http.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/navigation-redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/onactivate-script-error.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/oninstall-script-error.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/opaque-response-preloaded.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/performance-timeline.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/postmessage-blob-url.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/postmessage-from-waiting-serviceworker.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/postmessage-msgport-to-client.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/postmessage-to-client.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/postmessage.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/ready.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/redirected-response.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/referer.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/referrer-policy-header.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/register-default-scope.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/register-foreign-fetch-errors.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/register-wait-forever-in-install-worker.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-basic.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-end-to-end.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-events.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-mime-types.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-scope.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-script-url.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-script.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-security-error.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-service-worker-attributes.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-updateviacache.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/request-body-blob.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/request-end-to-end.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/resource-timing.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/service-worker-csp-connect.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/service-worker-csp-default.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/service-worker-csp-script.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/serviceworker-message-event-historical.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/serviceworkerobject-scripturl.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/shared-worker-controlled.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/skip-waiting-installed.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/skip-waiting-using-registration.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/skip-waiting-without-client.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/skip-waiting.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/state.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/synced-state.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/uncontrolled-page.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/unregister-controller.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/unregister-then-register-new-script.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/unregister-then-register.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/unregister.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/update-after-navigation-fetch-event.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/update-after-oneday.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/update-bytecheck.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/update-recovery.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/update.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/waiting.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/websocket.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/windowclient-navigate.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/worker-interception.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/xhr.https-expected.txt:

Source/WebCore:

Fake series of events that are supposed to happen after registering a service worker
that notify the page of the service worker's installation and activation.

Also make sure that registration.installing / waiting / active return proper values.
Make sure that serviceWorker.scriptURL returns a proper value.

This unblocks a lot of web-platform-tests since they were blocked shortly after
registration due to missing events or registration.installing being null.

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::activeServiceWorker const):
(WebCore::ScriptExecutionContext::setActiveServiceWorker):

  • dom/ScriptExecutionContext.h:
  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::prepareFetch):

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):

  • workers/service/ServiceWorker.cpp:

(WebCore::ServiceWorker::ServiceWorker):
(WebCore::ServiceWorker::setState):

  • workers/service/ServiceWorker.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::controller const):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
(WebCore::ServiceWorkerContainer::jobResolvedWithUnregistrationResult):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::ServiceWorkerRegistration):
(WebCore::ServiceWorkerRegistration::~ServiceWorkerRegistration):
(WebCore::ServiceWorkerRegistration::installing):
(WebCore::ServiceWorkerRegistration::waiting):
(WebCore::ServiceWorkerRegistration::active):

  • workers/service/ServiceWorkerRegistration.h:
  • workers/service/ServiceWorkerRegistrationData.cpp:

(WebCore::ServiceWorkerRegistrationData::isolatedCopy const):

  • workers/service/ServiceWorkerRegistrationData.h:

(WebCore::ServiceWorkerRegistrationData::encode const):
(WebCore::ServiceWorkerRegistrationData::decode):

  • workers/service/server/SWClientConnection.cpp:

(WebCore::SWClientConnection::postMessageToServiceWorkerClient):

  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::scriptContextStarted):
(WebCore::SWServerRegistration::runRegisterJob):
(WebCore::SWServerRegistration::data const):

  • workers/service/server/SWServerRegistration.h:

LayoutTests:

Update tests that are skipped due to timing out.

6:15 PM Changeset in webkit [224217] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

We need a storeStoreFence before storing to the instruction stream's live variable catch data
https://bugs.webkit.org/show_bug.cgi?id=178649

Reviewed by Keith Miller.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::ensureCatchLivenessIsComputedForBytecodeOffsetSlow):

5:49 PM Changeset in webkit [224216] by jmarcell@apple.com
  • 1 copy in branches/safari-604.4.7.0-branch

New branch.

5:47 PM Changeset in webkit [224215] by jmarcell@apple.com
  • 7 edits in branches/safari-604-branch/Source

Versioning.

4:48 PM Changeset in webkit [224214] by Ryan Haddad
  • 46 edits
    3 copies
    72 adds
    29 deletes in trunk/LayoutTests

[iOS] Rebaseline and re-enable CSS tests
https://bugs.webkit.org/show_bug.cgi?id=178746

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
  • platform/ios-wk2/TestExpectations:

[ truncated ]

4:41 PM Changeset in webkit [224213] by commit-queue@webkit.org
  • 56 edits in trunk/Source

Use LazyNeverDestroyed instead of DEFINE_GLOBAL for XMLNames, HTMLNames, MathMLNames and SVGNames
https://bugs.webkit.org/show_bug.cgi?id=175118

Patch by Fujii Hironori <Fujii Hironori> on 2017-10-30
Reviewed by Alex Christensen.

Source/WebCore:

Stop using DEFINE_GLOBAL hack in favor of LazyNeverDestroyed.

No new tests since there should be no behavioral change.

  • dom/make_names.pl:

(printConstructors):
(printNamesHeaderFile):
(printNamesCppFile):
(printDefinitions):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::inheritsPresentationalRole const):

  • css/StyleResolver.cpp:

(WebCore::hasEffectiveDisplayNoneForDisplayContents):

  • dom/CustomElementReactionQueue.cpp:

(WebCore::CustomElementReactionQueue::observesStyleAttribute const):

  • dom/Document.cpp:

(WebCore::Document::validateCustomElementName):

  • dom/Element.cpp:

(WebCore::isStyleAttribute):
(WebCore::canAttachAuthorShadowRoot):

  • dom/ElementData.cpp:

(WebCore::ElementData::findLanguageAttribute const):

  • domjit/JSDocumentDOMJIT.cpp:

(WebCore::compileDocumentBodyAttribute):

  • editing/Editor.cpp:

(WebCore::Editor::applyEditingStyleToBodyElement const):

  • editing/EditorCommand.cpp:

(WebCore::valueDefaultParagraphSeparator):

  • editing/MarkupAccumulator.cpp:

(WebCore::MarkupAccumulator::serializeNodesWithNamespaces):
(WebCore::MarkupAccumulator::appendNamespace):
(WebCore::MarkupAccumulator::elementCannotHaveEndTag):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::isProhibitedParagraphChild):

  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::createWindowEventHandlerNameMap):

  • html/HTMLDocument.cpp:

(WebCore::HTMLDocument::isCaseSensitiveAttribute):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::createEventHandlerNameMap):

  • html/parser/HTMLConstructionSite.cpp:

(WebCore::HTMLConstructionSite::findFosterSite):

  • html/parser/HTMLElementStack.cpp:

(WebCore::HTMLElementStack::hasTemplateInHTMLScope const):

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::updatePredictedBaseURL):

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::processFakePEndTagIfPInButtonScope):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processTemplateEndTag):
(WebCore::HTMLTreeBuilder::processEndOfFileForInTemplateContents):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTagForInBody):
(WebCore::HTMLTreeBuilder::processCaptionEndTagForInCaption):
(WebCore::HTMLTreeBuilder::processTableEndTagForInTable):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::insertPhoneNumberLink):
(WebCore::HTMLTreeBuilder::defaultForBeforeHTML):
(WebCore::HTMLTreeBuilder::defaultForBeforeHead):
(WebCore::HTMLTreeBuilder::defaultForInHead):
(WebCore::HTMLTreeBuilder::defaultForInHeadNoscript):
(WebCore::HTMLTreeBuilder::defaultForAfterHead):

  • html/parser/TextDocumentParser.cpp:

(WebCore::TextDocumentParser::insertFakePreElement):

  • rendering/svg/SVGPathData.cpp:

(WebCore::pathFromGraphicsElement):

  • rendering/svg/SVGResources.cpp:

(WebCore::clipperFilterMaskerTags):
(WebCore::markerTags):
(WebCore::fillAndStrokeTags):
(WebCore::chainableResourceTags):

  • svg/SVGAnimatedBoolean.h:
  • svg/SVGAnimatedEnumeration.h:
  • svg/SVGAnimatedInteger.h:
  • svg/SVGAnimatedLength.h:
  • svg/SVGAnimatedLengthList.h:
  • svg/SVGAnimatedNumber.h:
  • svg/SVGAnimatedNumberList.h:
  • svg/SVGAnimatedPreserveAspectRatio.h:
  • svg/SVGAnimatedRect.h:
  • svg/SVGAnimatedString.h:
  • svg/SVGAnimatedTransformList.h:
  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::isSupportedAttribute):

  • svg/SVGCursorElement.cpp:

(WebCore::SVGCursorElement::isSupportedAttribute):

  • svg/SVGElement.cpp:

(WebCore::createAttributeNameToCSSPropertyIDMap):
(WebCore::SVGElement::childShouldCreateRenderer const):
(WebCore::SVGElement::animatableAttributeForName):

  • svg/SVGFilterElement.cpp:

(WebCore::SVGFilterElement::isSupportedAttribute):

  • svg/SVGFilterPrimitiveStandardAttributes.cpp:

(WebCore::SVGFilterPrimitiveStandardAttributes::isSupportedAttribute):

  • svg/SVGForeignObjectElement.cpp:

(WebCore::SVGForeignObjectElement::isSupportedAttribute):

  • svg/SVGGradientElement.cpp:

(WebCore::SVGGradientElement::isSupportedAttribute):

  • svg/SVGImageElement.cpp:

(WebCore::SVGImageElement::isSupportedAttribute):

  • svg/SVGLineElement.cpp:

(WebCore::SVGLineElement::isSupportedAttribute):

  • svg/SVGMarkerElement.cpp:

(WebCore::SVGMarkerElement::isSupportedAttribute):

  • svg/SVGMaskElement.cpp:

(WebCore::SVGMaskElement::isSupportedAttribute):

  • svg/SVGPathElement.cpp:

(WebCore::SVGPathElement::dPropertyInfo):
(WebCore::SVGPathElement::isSupportedAttribute):

  • svg/SVGPatternElement.cpp:

(WebCore::SVGPatternElement::isSupportedAttribute):

  • svg/SVGPolyElement.cpp:

(WebCore::SVGPolyElement::pointsPropertyInfo):

  • svg/SVGRadialGradientElement.cpp:

(WebCore::SVGRadialGradientElement::isSupportedAttribute):

  • svg/SVGTextContentElement.cpp:

(WebCore::SVGTextContentElement::textLengthPropertyInfo):
(WebCore::SVGTextContentElement::isSupportedAttribute):

  • svg/SVGTextPathElement.cpp:

(WebCore::SVGTextPathElement::isSupportedAttribute):

  • svg/SVGUseElement.cpp:

(WebCore::createAllowedElementSet):

  • xml/NativeXPathNSResolver.cpp:

(WebCore::NativeXPathNSResolver::lookupNamespaceURI):

  • xml/parser/XMLDocumentParser.cpp:

(WebCore::XMLDocumentParser::parseDocumentFragment):

Source/WebKit:

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPrivate.cpp:

(WebKit::wrap):

4:38 PM Changeset in webkit [224212] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.4.7

Tag Safari-604.4.7.

4:35 PM Changeset in webkit [224211] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, skip cache storage WPT tests that cause flaky crashes on the bots
https://bugs.webkit.org/show_bug.cgi?id=179035

4:11 PM Changeset in webkit [224210] by Nikita Vasilyev
  • 3 edits
    2 adds in trunk

Web Inspector: [PARITY] Styles Redesign: Ability to modify style attributes
https://bugs.webkit.org/show_bug.cgi?id=178328
<rdar://problem/35000990>

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

Before this patch, modifying a property of a style attribute duplicated the old property
and appended the new one. This happened because WI.TextRange.prototype.resolveOffsets
didn't resolve offsets correctly when text didn't end with a trailing new line.

Since WI.TextRange.prototype.resolveOffsets is used elsewhere and this could be expected
behavior, append a line break before resolving a range.

  • UserInterface/Models/CSSProperty.js:

(WI.CSSProperty.prototype._updateOwnerStyleText):

LayoutTests:

Add tests for WI.TextRange.protopyte.resolveOffsets.

  • inspector/unit-tests/text-range-expected.txt: Added.
  • inspector/unit-tests/text-range.html: Added.
4:08 PM Changeset in webkit [224209] by Matt Lewis
  • 1 edit
    8 adds in trunk/LayoutTests

Followup rebaseline to r224204.

Unreviewed test gardening.

  • platform/mac-elcapitan-wk2/http/tests/contentextensions/make-https-expected.txt: Added.
  • platform/mac-sierra-wk2/http/tests/contentextensions/make-https-expected.txt: Added.
3:45 PM Changeset in webkit [224208] by jmarcell@apple.com
  • 4 edits in branches/safari-604-branch/Source

Apply patch. rdar://problem/35244284

Since cookie partitioning is declared available on macOS 10.12, we cannot use it to check for availability of the new SPI. This patch introduces a new check.

3:43 PM Changeset in webkit [224207] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebCore

[WebGL] Optimization to skip painting if texture and source surface hasn't changed isn't working; re-optimize.
https://bugs.webkit.org/show_bug.cgi?id=178953

Reviewed by Dean Jackson.

The "seed" value of the current bound texture never matches the last saved value in
VideoTextureCopierCV::copyImageToPlatformTexture(). The value is modified by the function
itself, so a fresh value needs to be re-queried after the image's surface is attached to the
texture.

Once this fix is in, however, the <canvas> being painted will flash when no new image is
available. This is because the wrong texture target is being restored by the GC3DStateSaver
at the end of copyImageToPlatformTexture(). While we're fixing that, we may as well use the
texture state saved by the GraphicsContext3D itself to restore the correct texture unit,
texture target, and texture.

  • platform/graphics/GraphicsContext3D.h:

(WebCore::GraphicsContext3D::activeTextureUnit const):
(WebCore::GraphicsContext3D::currentBoundTexture const):
(WebCore::GraphicsContext3D::currentBoundTarget const):
(WebCore::GraphicsContext3D::GraphicsContext3DState::currentBoundTexture const):
(WebCore::GraphicsContext3D::GraphicsContext3DState::boundTexture const):
(WebCore::GraphicsContext3D::GraphicsContext3DState::currentBoundTarget const):
(WebCore::GraphicsContext3D::GraphicsContext3DState::boundTarget const):
(WebCore::GraphicsContext3D::GraphicsContext3DState::currentBoundTexture): Deleted.
(WebCore::GraphicsContext3D::GraphicsContext3DState::boundTexture): Deleted.
(WebCore::GraphicsContext3D::GraphicsContext3DState::boundTarget): Deleted.

  • platform/graphics/cv/VideoTextureCopierCV.cpp:

(WebCore::VideoTextureCopierCV::copyImageToPlatformTexture):
(WebCore::VideoTextureCopierCV::GC3DStateSaver::GC3DStateSaver):
(WebCore::VideoTextureCopierCV::GC3DStateSaver::~GC3DStateSaver):

  • platform/graphics/cv/VideoTextureCopierCV.h:
  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::prepareTexture):
(WebCore::GraphicsContext3D::activeTexture):
(WebCore::GraphicsContext3D::bindTexture):

3:42 PM Changeset in webkit [224206] by Michael Catanzaro
  • 8 edits in trunk

WKBundlePageWillSendSubmitEventCallback is called with incorrect frame parameter
https://bugs.webkit.org/show_bug.cgi?id=176719

Reviewed by Chris Dumez.

Source/WebCore:

WKBundlePageWillSendSubmitEventCallback is clearly intended to parallel
WKBundlePageWillSubmitFormCallback, since almost all the parameters are the same. Now, in
WKBundlePageWillSubmitFormCallback, the first WKBundleFrameRef, "frame", is the frame of the
form target, and the second WKBundleFrameRef, sourceFrame, is the frame containing the form.
That's correct. But in WKBundlePageWillSendSubmitEventCallback, both frame and sourceFrame
are always identical. The problem is that the FrameLoaderClient delegate is called on the
wrong FrameLoaderClient. It should be called on the FrameLoaderClient of the target frame,
but HTMLFormElement calls it on the FrameLoaderClient of the source frame instead.

Fix this by factoring the target frame computation out of FormSubmission into some helpers.

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::prepareForSubmission):
(WebCore::HTMLFormElement::effectiveTarget const):
(WebCore::HTMLFormElement::findSubmitButton const):

  • html/HTMLFormElement.h:
  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::create):

Tools:

Test that WKBundlePageWillSendSubmitEventCallback is called with separate frame and
sourceFrame parameters when the target frame of the form submission is not the source frame.

  • TestWebKitAPI/Tests/WebKit/WillSendSubmitEvent.cpp:

(TestWebKitAPI::didReceiveMessageFromInjectedBundle):

  • TestWebKitAPI/Tests/WebKit/WillSendSubmitEvent_Bundle.cpp:

(TestWebKitAPI::willSendSubmitEvent):

  • TestWebKitAPI/Tests/WebKit/auto-submitting-form.html:
3:32 PM Changeset in webkit [224205] by Matt Lewis
  • 1 edit
    2 adds in trunk/LayoutTests

Rebaselined imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-ontrack.https.html for iOS after r224156.

Unreviewed test gardening.

  • platform/ios-wk2/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-ontrack.https-expected.txt: Added.
3:21 PM Changeset in webkit [224204] by Matt Lewis
  • 3 edits in trunk/LayoutTests

Rebaselining multiple http/tests/websocket/tests/hybi/contentextensions/ test after r224031.

Unreviewed test gardening.

  • http/tests/websocket/tests/hybi/contentextensions/upgrade-expected.txt:
  • http/tests/websocket/tests/hybi/contentextensions/upgrade-worker-expected.txt:
3:08 PM Changeset in webkit [224203] by Ross Kirsling
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Clicking filler in data grid should clear selection
https://bugs.webkit.org/show_bug.cgi?id=179027

Reviewed by Brian Burg.

  • UserInterface/Views/DataGrid.js:

(WI.DataGrid.prototype._mouseDownInDataTable):

2:55 PM Changeset in webkit [224202] by achristensen@apple.com
  • 4 edits in trunk

ASSERTION FAILED: internalValuesConsistent(m_url) in WebCore::URLParser::URLParser
https://bugs.webkit.org/show_bug.cgi?id=178861

Reviewed by Tim Horton.

Source/WebCore:

This is a dark corner of the URL spec that has wildly different behavior in different browsers.
The assertion fired when we have a file URL with a ? or a # after file:// and it was because
m_pathAfterLastSlash was still 0. We definitely shouldn't assert. I'm making us consistent with
other cases where we have nothing there and add an implied missing slash.

Covered by new API tests.

  • platform/URLParser.cpp:

(WebCore::URLParser::parse):

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::TEST_F):

2:24 PM Changeset in webkit [224201] by Megan Gardner
  • 4 edits in trunk/Source

Correctly determine affinity when inserting text via Keyboard Suggestions
https://bugs.webkit.org/show_bug.cgi?id=178969

Reviewed by Ryosuke Niwa.

Source/WebCore:

There has been talk about renaming these enums, but in the meantime we should at least have a comment
clarifying what they actually mean.

No new tests only adding a comment, no tests needed.

  • editing/TextAffinity.h:

Source/WebKit:

Use the logic of VisiblePosition to correctly determine cursor affinity. We were
defaulting to upstream, but that in incorrect and resulted in hitting asserts that
we should not. This should give us the correct affinity in all cases.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::syncApplyAutocorrection):

1:53 PM Changeset in webkit [224200] by webkit@devinrousso.com
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas Tab: no path components shown in recording content view after selecting a recording via View Recordings... dropdown
https://bugs.webkit.org/show_bug.cgi?id=178807
<rdar://problem/35176463>

Reviewed by Brian Burg.

When the first Recording is taken of a canvas, it is immediately added as a child. When the
CanvasTreeElement is attached, however, it will attempt to regenerate its children if
necessary. This is especially true for canvases with ShaderPrograms, as they are added with
addRepresentedObjectToNewChildQueue, meaning that the child TreeElements aren't actually
added until the next tick, preventing the ContentBrowser logic from generating path
components correctly.

This patch switches to using addChildForRepresentedObject so that there is no delay when
adding children, and also ensures that any existing recordings are also added on regeneration.

  • UserInterface/Views/CanvasTabContentView.js:

(WI.CanvasTabContentView.prototype._recordingAdded):
Move logic for adding TreeElements for new Recordings to CanvasTreeElement.

  • UserInterface/Views/CanvasTreeElement.js:

(WI.CanvasTreeElement.createRecordingTreeElement):
(WI.CanvasTreeElement):
(WI.CanvasTreeElement.prototype.onattach):
(WI.CanvasTreeElement.prototype.ondetach):
(WI.CanvasTreeElement.prototype.onpopulate):
(WI.CanvasTreeElement.prototype._handleItemAdded):
(WI.CanvasTreeElement.prototype._handleItemRemoved):
(WI.CanvasTreeElement.prototype._shaderProgramAdded): Deleted.
(WI.CanvasTreeElement.prototype._shaderProgramRemoved): Deleted.

1:37 PM Changeset in webkit [224199] by rniwa@webkit.org
  • 4 edits
    2 adds in trunk

Crash in addChildNodesToDeletionQueue
https://bugs.webkit.org/show_bug.cgi?id=178974
<rdar://problem/35234372>

Reviewed by Brent Fulgham.

Source/WebCore:

The bug was caused by HTMLConstructionSite::insertTextNode constructing an ill-formed tree
when fostering parent under a template element by adjusting HTMLConstructionSiteTask's parent
without clearing nextChild. Fixed the crash by simply removing this code since executeTask
already takes care of fostering the parent in static inline insert(HTMLConstructionSiteTask&).

Test: fast/parser/foster-parent-under-template.html

  • html/parser/HTMLConstructionSite.cpp:

(WebCore::HTMLConstructionSite::insertTextNode):

LayoutTests:

Add a regression test.

  • fast/parser/foster-parent-inside-template-expected.txt: Added.
  • fast/parser/foster-parent-inside-template.html: Added.
  • resources/dump-as-markup.js:

(Markup._get): Fixed the bug that this code would always throw an exception inside a browser.

1:31 PM Changeset in webkit [224198] by commit-queue@webkit.org
  • 17 edits
    1 move
    3 deletes in trunk

Unreviewed, rolling out r224078.
https://bugs.webkit.org/show_bug.cgi?id=179026

MotionMark regression (Requested by shallawa on #webkit).

Reverted changeset:

"When navigating back to a page, compositing layers may not
use accelerated drawing"
https://bugs.webkit.org/show_bug.cgi?id=178749
https://trac.webkit.org/changeset/224078

1:00 PM Changeset in webkit [224197] by msaboff@apple.com
  • 5 edits
    2 deletes in trunk/PerformanceTests

Eliminate Basic compiler test from RexBench
https://bugs.webkit.org/show_bug.cgi?id=179025

Reviewed by Saam Barati.

  • RexBench/Basic: Removed.
  • RexBench/Basic/ast.js: Removed.
  • RexBench/Basic/basic.js: Removed.
  • RexBench/Basic/benchmark.js: Removed.
  • RexBench/Basic/caseless_map.js: Removed.
  • RexBench/Basic/lexer.js: Removed.
  • RexBench/Basic/number.js: Removed.
  • RexBench/Basic/parser.js: Removed.
  • RexBench/Basic/random.js: Removed.
  • RexBench/Basic/state.js: Removed.
  • RexBench/Basic/stress-test.js: Removed.
  • RexBench/Basic/util.js: Removed.
  • RexBench/basic_benchmark.js: Removed.
  • RexBench/about.html:
  • RexBench/cli.js:
  • RexBench/glue.js:
  • RexBench/index.html:
12:45 PM Changeset in webkit [224196] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[Setting] Only expose experimental features that are compiled in
https://bugs.webkit.org/show_bug.cgi?id=179023

Patch by Sam Weinig <sam@webkit.org> on 2017-10-30
Reviewed by Tim Horton.

  • Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb:

Update template to conditionally expose experimental features based on their
'condition' option in WebPreferences.yaml

12:34 PM Changeset in webkit [224195] by dino@apple.com
  • 13 edits in trunk

Implement "bitmaprenderer" CanvasRenderingContext
https://bugs.webkit.org/show_bug.cgi?id=178992
<rdar://problem/34147157>

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Update the expected results now more of the interface has
been added.

  • web-platform-tests/imagebitmap-renderingcontext/bitmaprenderer-as-imagesource-expected.txt:
  • web-platform-tests/imagebitmap-renderingcontext/context-creation-with-alpha-expected.txt:
  • web-platform-tests/imagebitmap-renderingcontext/tranferFromImageBitmap-null-expected.txt:
  • web-platform-tests/imagebitmap-renderingcontext/transferFromImageBitmap-detached-expected.txt:

Source/WebCore:

Implement the "bitmaprenderer" context for HTMLCanvasElement.
Use as much of the existing 2d context code as possible, which
means that we are painting the ImageBitmap into the backing
store. This isn't optimal, but it is good enough to get
going while we move buffer ownership from the canvas object
into the rendering contexts.

This patch raised a few issues on the HTML specification:
https://github.com/whatwg/html/issues/3164
https://github.com/whatwg/html/issues/3165
https://github.com/whatwg/html/issues/3166
https://github.com/whatwg/html/issues/3167

Update existing Web Platform Test results.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::createContext2d): Drive-by comment fix.
(WebCore::HTMLCanvasElement::createContextWebGL): Ditto.
(WebCore::HTMLCanvasElement::createContextWebGPU): Ditto.
(WebCore::HTMLCanvasElement::createContextBitmapRenderer): We now require
a layer/backing store for a bitmap context.
(WebCore::HTMLCanvasElement::paintsIntoCanvasBuffer const): Add bitmap-renderer
to the type of context that uses the canvas's backing store.
(WebCore::HTMLCanvasElement::createImageBuffer const): Comment fix.
(WebCore::HTMLCanvasElement::setImageBuffer const): Change parameter to a &&.
(WebCore::HTMLCanvasElement::setImageBufferAndMarkDirty): New function to set
the backing store efficiently, as well as make it look like we need to repaint
the entire canvas.
(WebCore::HTMLCanvasElement::drawingContext const): The buffer doesn't actually
need to provide a GraphicsContext if we're a bitmap renderer.

  • html/HTMLCanvasElement.h:
  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::transferOwnershipAndClose): New helper to give the ownership
of the ImageBuffer away, and look like close() was called.

  • html/ImageBitmap.h:
  • html/canvas/ImageBitmapRenderingContext.cpp: Implement the algorithm from the HTML

specification.
(WebCore::ImageBitmapRenderingContext::ImageBitmapRenderingContext):
(WebCore::ImageBitmapRenderingContext::isAccelerated const):
(WebCore::ImageBitmapRenderingContext::setOutputBitmap):
(WebCore::ImageBitmapRenderingContext::transferFromImageBitmap):

  • html/canvas/ImageBitmapRenderingContext.h:
  • html/canvas/ImageBitmapRenderingContext.idl:
11:44 AM Changeset in webkit [224194] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Remove flaky expectation for contentextension tests.
https://bugs.webkit.org/show_bug.cgi?id=162942

Unreviewed test gardening.

The underlying issue was resolved a while ago, but this expectation was not removed.

  • platform/mac-wk2/TestExpectations:
11:23 AM Changeset in webkit [224193] by Simon Fraser
  • 5 edits in trunk

tab-size: 0px asserts
https://bugs.webkit.org/show_bug.cgi?id=176198

Reviewed by Antti Koivisto.

Don't claim to support tab-size values with units. We don't, and they would become 0, rather
than fall back to the default as should happen.

Source/WebCore:

Enhanced fast/css/tab-size.html to test.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeTabSize):

LayoutTests:

  • fast/css/tab-size-expected.html:
  • fast/css/tab-size.html:
11:21 AM Changeset in webkit [224192] by Michael Catanzaro
  • 23 edits in trunk

[WPE] Fix build warnings
https://bugs.webkit.org/show_bug.cgi?id=178899

Reviewed by Carlos Alberto Lopez Perez.

Source/JavaScriptCore:

  • PlatformWPE.cmake:

Source/WebCore:

These are actually mostly cross-platform issues.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::arrayBufferViewElementSize):

  • platform/Cairo.cmake:
  • platform/Curl.cmake:
  • platform/FreeType.cmake:
  • platform/GCrypt.cmake:
  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:

(WebCore::TextureMapperShaderProgram::create):

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::SoupNetworkSession):

Source/WebKit:

  • PlatformWPE.cmake:

Source/WTF:

  • wtf/PlatformWPE.cmake:

Tools:

  • TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp:

(testContextMenuDownloadActions):
(testBlobDownload):
(beforeAll):

  • TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp:
  • TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:

(testWebViewJavaScriptDialogs):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp:
  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:
  • WebKitTestRunner/PlatformWPE.cmake:
  • WebKitTestRunner/wpe/HeadlessViewBackend.cpp:
  • WebKitTestRunner/wpe/TestControllerWPE.cpp:

(WTR::threadDefaultContext): Deleted.

11:16 AM Changeset in webkit [224191] by commit-queue@webkit.org
  • 6 edits
    1 add in trunk/Source/WebKit

[Settings] Replace macro driven experimental features code with generated code
https://bugs.webkit.org/show_bug.cgi?id=178994

Patch by Sam Weinig <sam@webkit.org> on 2017-10-30
Reviewed by Simon Fraser.

As a first step toward allowing experimental features to vary based on compile
time flags, replace the macro driven implementation of the WebPreferences part
of experimental features, with one generated from a template file.

  • CMakeLists.txt:
  • DerivedSources.make:
  • Scripts/GeneratePreferences.rb:
  • WebKit.xcodeproj/project.pbxproj:

Generate the new template.

  • Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb: Added.
  • UIProcess/WebPreferences.cpp:

(WebKit::createExperimentalFeaturesVector): Deleted.
(WebKit::WebPreferences::experimentalFeatures): Deleted.
(WebKit::WebPreferences::isEnabledForFeature const): Deleted.
(WebKit::WebPreferences::setEnabledForFeature): Deleted.
(WebKit::WebPreferences::enableAllExperimentalFeatures): Deleted.

Replace macro implementation with template generated one.

11:13 AM Changeset in webkit [224190] by Michael Catanzaro
  • 2 edits
    1 delete in trunk/Tools

[WPE] Upstream or stop using cairo-egl-device-create-for-egl-surface.patch
https://bugs.webkit.org/show_bug.cgi?id=178898

Reviewed by Žan Doberšek.

This patch seems to be unused.

  • wpe/jhbuild.modules:
  • wpe/patches/cairo-egl-device-create-for-egl-surface.patch: Removed.
11:12 AM Changeset in webkit [224189] by Michael Catanzaro
  • 9 edits
    5 adds in trunk

[WPE] Build more files under WebCore as unified sources and get rid of WebCorePlatformWPE build target
https://bugs.webkit.org/show_bug.cgi?id=178964

Reviewed by Carlos Alberto Lopez Perez.

Source/WebCore:

This also gets rid of the WebCorePlatformWPE build target to simplify the build. It links to
all the same libraries as the WebCore target, so it doesn't seem to have any purpose. Bye.

Some CMake files under platform are not unified, either because there is not much to gain
(e.g. ImageDecoders, where everything is in a separate directory), or because it is complex
(e.g. GStreamer, where GObject implementations would be tricky to build unified), and
because we're limited to using only features declared in WebKitFeatures.cmake inside the
unified sources lists, which makes some of the platform files a bit tricky (notably,
anything that needs to go into WebCorePlatformGTK for the GTK port). So it's not perfect.

  • PlatformWPE.cmake:
  • SourcesWPE.txt: Added.
  • crypto/gcrypt/GCryptUtilities.h:
  • platform/Cairo.cmake:
  • platform/GCrypt.cmake:
  • platform/SourcesCairo.txt: Added.
  • platform/SourcesGCrypt.txt: Added.
  • platform/SourcesGLib.txt: Added.
  • platform/SourcesSoup.txt: Added.

Source/WebKit:

  • PlatformWPE.cmake:

Tools:

  • TestWebKitAPI/PlatformWPE.cmake:
11:09 AM Changeset in webkit [224188] by commit-queue@webkit.org
  • 1 edit
    20 adds
    20 deletes in trunk/LayoutTests

[Web Animations] Rewrite homegrown tests as Web Platform tests
https://bugs.webkit.org/show_bug.cgi?id=179017

We rewrite all of the new homegrown Web Animations tests as Web Platorm tests,
except for one test which checks dumping of the document timeline using an
internals method which is not appropriate as a WPT.

Patch by Antoine Quint <Antoine Quint> on 2017-10-30
Reviewed by Dean Jackson.

  • http/wpt/wk-web-animations/timing-model/animation-creation-basic-expected.txt: Added.
  • http/wpt/wk-web-animations/timing-model/animation-creation-basic.html: Added.
  • http/wpt/wk-web-animations/timing-model/animation-current-time-expected.txt: Added.
  • http/wpt/wk-web-animations/timing-model/animation-current-time.html: Added.
  • http/wpt/wk-web-animations/timing-model/animation-effect-expected.txt: Added.
  • http/wpt/wk-web-animations/timing-model/animation-effect-timing-expected.txt: Added.
  • http/wpt/wk-web-animations/timing-model/animation-effect-timing.html: Added.
  • http/wpt/wk-web-animations/timing-model/animation-effect.html: Added.
  • http/wpt/wk-web-animations/timing-model/animation-interface-effect-property-expected.txt: Added.
  • http/wpt/wk-web-animations/timing-model/animation-interface-effect-property.html: Added.
  • http/wpt/wk-web-animations/timing-model/animation-interface-start-time-property-expected.txt: Added.
  • http/wpt/wk-web-animations/timing-model/animation-interface-start-time-property.html: Added.
  • http/wpt/wk-web-animations/timing-model/document-timeline-expected.txt: Added.
  • http/wpt/wk-web-animations/timing-model/document-timeline.html: Added.
  • http/wpt/wk-web-animations/timing-model/keyframe-effect-expected.txt: Added.
  • http/wpt/wk-web-animations/timing-model/keyframe-effect-interface-timing-duration-expected.txt: Added.
  • http/wpt/wk-web-animations/timing-model/keyframe-effect-interface-timing-duration.html: Added.
  • http/wpt/wk-web-animations/timing-model/keyframe-effect.html: Added.
  • http/wpt/wk-web-animations/timing-model/timeline-current-time-expected.txt: Added.
  • http/wpt/wk-web-animations/timing-model/timeline-current-time.html: Added.
  • webanimations/animation-creation-basic-expected.txt: Removed.
  • webanimations/animation-creation-basic.html: Removed.
  • webanimations/animation-current-time-expected.txt: Removed.
  • webanimations/animation-current-time.html: Removed.
  • webanimations/animation-effect-expected.txt: Removed.
  • webanimations/animation-effect-timing-expected.txt: Removed.
  • webanimations/animation-effect-timing.html: Removed.
  • webanimations/animation-effect.html: Removed.
  • webanimations/animation-interface-effect-property-expected.txt: Removed.
  • webanimations/animation-interface-effect-property.html: Removed.
  • webanimations/animation-interface-start-time-property-expected.txt: Removed.
  • webanimations/animation-interface-start-time-property.html: Removed.
  • webanimations/document-timeline-expected.txt: Removed.
  • webanimations/document-timeline.html: Removed.
  • webanimations/keyframe-effect-expected.txt: Removed.
  • webanimations/keyframe-effect-interface-timing-duration-expected.txt: Removed.
  • webanimations/keyframe-effect-interface-timing-duration.html: Removed.
  • webanimations/keyframe-effect.html: Removed.
  • webanimations/timeline-current-time-expected.txt: Removed.
  • webanimations/timeline-current-time.html: Removed.
11:08 AM Changeset in webkit [224187] by Michael Catanzaro
  • 1 edit
    1 delete in trunk/Source/WebCore

Remove more unused ENABLE(GAMEPAD_DEPRECATED) code
https://bugs.webkit.org/show_bug.cgi?id=178364

Reviewed by Carlos Alberto Lopez Perez.

  • Modules/gamepad/deprecated/Gamepad.cpp: Removed.
  • Modules/gamepad/deprecated/Gamepad.h: Removed.
  • Modules/gamepad/deprecated/Gamepad.idl: Removed.
  • Modules/gamepad/deprecated/GamepadList.cpp: Removed.
  • Modules/gamepad/deprecated/GamepadList.h: Removed.
  • Modules/gamepad/deprecated/GamepadList.idl: Removed.
  • Modules/gamepad/deprecated/NavigatorGamepad.cpp: Removed.
  • Modules/gamepad/deprecated/NavigatorGamepad.h: Removed.
  • Modules/gamepad/deprecated/NavigatorGamepad.idl: Removed.
10:57 AM Changeset in webkit [224186] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Use if conditional function in DerivedSources.make to reduce duplication
https://bugs.webkit.org/show_bug.cgi?id=178989

Reviewed by Darin Adler.

In DerivedSources.make we currently duplicate most of the Makefile recipe for generating HTML/SVG
tags and attributes to support passing the optional command line option --extraDefines when one
or more HTML/SVG compile-time features are enabled. Instead we can make use of a Makefile
conditional function in the recipe itself to avoid code duplication.

  • DerivedSources.make:
10:39 AM Changeset in webkit [224185] by pvollan@apple.com
  • 50 edits in trunk/LayoutTests

[Win] Rebaseline tests after r224177.

Unreviewed test gardening.

  • platform/win/editing/deleting/4922367-expected.txt:
  • platform/win/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt:
  • platform/win/editing/deleting/delete-at-paragraph-boundaries-010-expected.txt:
  • platform/win/editing/deleting/delete-at-paragraph-boundaries-011-expected.txt:
  • platform/win/editing/deleting/delete-block-merge-contents-005-expected.txt:
  • platform/win/editing/deleting/delete-block-merge-contents-006-expected.txt:
  • platform/win/editing/deleting/delete-block-merge-contents-007-expected.txt:
  • platform/win/editing/deleting/delete-block-merge-contents-008-expected.txt:
  • platform/win/editing/deleting/delete-block-merge-contents-023-expected.txt:
  • platform/win/editing/deleting/delete-block-merge-contents-024-expected.txt:
  • platform/win/editing/deleting/delete-br-008-expected.txt:
  • platform/win/editing/deleting/delete-br-009-expected.txt:
  • platform/win/editing/deleting/delete-br-010-expected.txt:
  • platform/win/editing/deleting/delete-line-015-expected.txt:
  • platform/win/editing/deleting/delete-line-016-expected.txt:
  • platform/win/editing/deleting/delete-line-017-expected.txt:
  • platform/win/editing/deleting/merge-no-br-expected.txt:
  • platform/win/editing/deleting/type-delete-after-quote-expected.txt:
  • platform/win/editing/execCommand/4747450-expected.txt:
  • platform/win/editing/execCommand/4916402-expected.txt:
  • platform/win/editing/execCommand/4916541-expected.txt:
  • platform/win/editing/execCommand/4924441-expected.txt:
  • platform/win/editing/execCommand/5136770-expected.txt:
  • platform/win/editing/execCommand/5142012-2-expected.txt:
  • platform/win/editing/execCommand/5190926-expected.txt:
  • platform/win/editing/execCommand/5481523-expected.txt:
  • platform/win/editing/execCommand/create-list-with-hr-expected.txt:
  • platform/win/editing/execCommand/indent-selection-expected.txt:
  • platform/win/editing/execCommand/insert-list-and-stitch-expected.txt:
  • platform/win/editing/execCommand/nsresponder-indent-expected.txt:
  • platform/win/editing/inserting/insert-br-quoted-004-expected.txt:
  • platform/win/editing/inserting/insert-br-quoted-006-expected.txt:
  • platform/win/editing/style/4916887-expected.txt:
  • platform/win/editing/style/5046875-1-expected.txt:
  • platform/win/editing/style/5046875-2-expected.txt:
  • platform/win/editing/style/5279521-expected.txt:
  • platform/win/editing/style/create-block-for-style-003-expected.txt:
  • platform/win/editing/style/create-block-for-style-004-expected.txt:
  • platform/win/editing/style/create-block-for-style-007-expected.txt:
  • platform/win/editing/style/create-block-for-style-009-expected.txt:
  • platform/win/editing/style/create-block-for-style-010-expected.txt:
  • platform/win/editing/style/create-block-for-style-011-expected.txt:
  • platform/win/editing/style/create-block-for-style-012-expected.txt:
  • platform/win/editing/style/create-block-for-style-013-expected.txt:
  • platform/win/editing/style/smoosh-styles-001-expected.txt:
  • platform/win/editing/style/style-boundary-005-expected.txt:
  • platform/win/editing/unsupported-content/list-delete-001-expected.txt:
  • platform/win/fast/forms/button-generated-content-expected.txt:
  • platform/win/fast/ruby/rubyDOM-remove-text2-expected.txt:
10:28 AM Changeset in webkit [224184] by Matt Lewis
  • 1 edit
    3 adds in trunk/LayoutTests

Rebaselined imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-within-sw-manual.https.html for iOS.

Unreviewed test gardening.

  • platform/ios-wk2/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-within-sw-manual.https-expected.txt: Added.
10:17 AM Changeset in webkit [224183] by jmarcell@apple.com
  • 1 edit in branches/safari-604-branch/Source/WebCore/platform/network/mac/WebCoreURLResponse.mm

Apply patch. rdar://problem/35244284

Only check if the scheme was upgraded due to dynamic HSTS if cookie partitioning is available. Downgrades and ignoring HSTS may only happen if a resource load is partitioned.

9:15 AM Changeset in webkit [224182] by commit-queue@webkit.org
  • 1 edit
    162 adds in trunk/LayoutTests

[Web Animations] Add Web Platform tests
https://bugs.webkit.org/show_bug.cgi?id=178999

Patch by Antoine Quint <Antoine Quint> on 2017-10-30
Reviewed by Sam Weinig.

The vast majority is failing, as expected due to the nascent status of our Web Animations implementation.

  • http/wpt/web-animations/OWNERS: Added.
  • http/wpt/web-animations/README.md: Added.
  • http/wpt/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt: Added.
  • http/wpt/web-animations/animation-model/animation-types/accumulation-per-property.html: Added.
  • http/wpt/web-animations/animation-model/animation-types/addition-per-property-expected.txt: Added.
  • http/wpt/web-animations/animation-model/animation-types/addition-per-property.html: Added.
  • http/wpt/web-animations/animation-model/animation-types/discrete-animation-expected.txt: Added.
  • http/wpt/web-animations/animation-model/animation-types/discrete-animation.html: Added.
  • http/wpt/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: Added.
  • http/wpt/web-animations/animation-model/animation-types/interpolation-per-property.html: Added.
  • http/wpt/web-animations/animation-model/animation-types/property-list.js: Added.

(testAnimationSamplesWithAnyOrder):
(isSupported):
(TestKeyframe.):
(TestKeyframe.get Object):
(TestKeyframe):
(get propertyToIDL):
(calcFromPercentage):

  • http/wpt/web-animations/animation-model/animation-types/property-types.js: Added.

(const.discreteType.):
(const.discreteType.testInterpolation):
(const.discreteType.testAdditionOrAccumulation):
(const.discreteType.testAddition):
(const.discreteType.testAccumulation):
(const.lengthType.testInterpolation):
(const.lengthType.testAdditionOrAccumulation):
(const.lengthType.testAddition):
(const.lengthType.testAccumulation):
(const.lengthPairType.testInterpolation):
(const.lengthPairType.testAdditionOrAccumulation):
(const.lengthPairType.testAddition):
(const.lengthPairType.testAccumulation):
(const.percentageType.testInterpolation):
(const.percentageType.testAdditionOrAccumulation):
(const.percentageType.testAddition):
(const.percentageType.testAccumulation):
(const.integerType.testInterpolation):
(const.integerType.testAdditionOrAccumulation):
(const.integerType.testAddition):
(const.integerType.testAccumulation):
(const.positiveIntegerType.testInterpolation):
(const.positiveIntegerType.testAdditionOrAccumulation):
(const.positiveIntegerType.testAddition):
(const.positiveIntegerType.testAccumulation):
(const.lengthPercentageOrCalcType.testInterpolation):
(const.lengthPercentageOrCalcType.testAdditionOrAccumulation):
(const.lengthPercentageOrCalcType.testAddition):
(const.lengthPercentageOrCalcType.testAccumulation):
(const.positiveNumberType.testInterpolation):
(const.positiveNumberType.testAdditionOrAccumulation):
(const.positiveNumberType.testAddition):
(const.positiveNumberType.testAccumulation):
(const.opacityType.testInterpolation):
(const.opacityType.testAdditionOrAccumulation):
(const.opacityType.testAddition):
(const.opacityType.testAccumulation):
(const.visibilityType.testInterpolation):
(const.visibilityType.testAdditionOrAccumulation):
(const.visibilityType.testAddition):
(const.visibilityType.testAccumulation):
(const.colorType.testInterpolation):
(const.colorType.testAdditionOrAccumulation):
(const.colorType.testAddition):
(const.colorType.testAccumulation):
(const.transformListType.testInterpolation):
(const.transformListType.testAddition):
(const.transformListType.testAccumulation):
(const.filterListType.testInterpolation):
(const.filterListType.testAddition):
(const.filterListType.testAccumulation):
(const.textShadowListType.testInterpolation):
(const.textShadowListType.testAddition):
(const.textShadowListType.testAccumulation):
(const.boxShadowListType.testInterpolation):
(const.boxShadowListType.testAddition):
(const.boxShadowListType.testAccumulation):
(const.positionType.testInterpolation):
(const.positionType.testAdditionOrAccumulation):
(const.positionType.testAddition):
(const.positionType.testAccumulation):
(const.rectType.testInterpolation):
(const.rectType.testAdditionOrAccumulation):
(const.rectType.testAddition):
(const.rectType.testAccumulation):
(const.dasharrayType.testInterpolation):
(const.dasharrayType.testAdditionOrAccumulation):
(const.dasharrayType.testAddition):
(const.dasharrayType.testAccumulation):
(const.fontStretchType.testInterpolation):
(const.fontStretchType.testAdditionOrAccumulation):
(const.fontStretchType.testAddition):
(const.fontStretchType.testAccumulation):
(const.fontVariationSettingsType.testInterpolation):
(const.fontVariationSettingsType.testAdditionOrAccumulation):
(const.fontVariationSettingsType.testAddition):
(const.fontVariationSettingsType.testAccumulation):

  • http/wpt/web-animations/animation-model/combining-effects/effect-composition-expected.txt: Added.
  • http/wpt/web-animations/animation-model/combining-effects/effect-composition.html: Added.
  • http/wpt/web-animations/animation-model/keyframe-effects/effect-value-context-expected.txt: Added.
  • http/wpt/web-animations/animation-model/keyframe-effects/effect-value-context.html: Added.
  • http/wpt/web-animations/animation-model/keyframe-effects/effect-value-overlapping-keyframes-expected.txt: Added.
  • http/wpt/web-animations/animation-model/keyframe-effects/effect-value-overlapping-keyframes.html: Added.
  • http/wpt/web-animations/animation-model/keyframe-effects/effect-value-transformed-distance-expected.txt: Added.
  • http/wpt/web-animations/animation-model/keyframe-effects/effect-value-transformed-distance.html: Added.
  • http/wpt/web-animations/animation-model/keyframe-effects/effect-value-visibility-expected.txt: Added.
  • http/wpt/web-animations/animation-model/keyframe-effects/effect-value-visibility.html: Added.
  • http/wpt/web-animations/interfaces/Animatable/animate-expected.txt: Added.
  • http/wpt/web-animations/interfaces/Animatable/animate-no-browsing-context-expected.txt: Added.
  • http/wpt/web-animations/interfaces/Animatable/animate-no-browsing-context.html: Added.
  • http/wpt/web-animations/interfaces/Animatable/animate.html: Added.
  • http/wpt/web-animations/interfaces/Animatable/getAnimations-expected.txt: Added.
  • http/wpt/web-animations/interfaces/Animatable/getAnimations.html: Added.
  • http/wpt/web-animations/interfaces/Animation/cancel-expected.txt: Added.
  • http/wpt/web-animations/interfaces/Animation/cancel.html: Added.
  • http/wpt/web-animations/interfaces/Animation/constructor-expected.txt: Added.
  • http/wpt/web-animations/interfaces/Animation/constructor.html: Added.
  • http/wpt/web-animations/interfaces/Animation/effect-expected.txt: Added.
  • http/wpt/web-animations/interfaces/Animation/effect.html: Added.
  • http/wpt/web-animations/interfaces/Animation/finish-expected.txt: Added.
  • http/wpt/web-animations/interfaces/Animation/finish.html: Added.
  • http/wpt/web-animations/interfaces/Animation/finished-expected.txt: Added.
  • http/wpt/web-animations/interfaces/Animation/finished.html: Added.
  • http/wpt/web-animations/interfaces/Animation/id-expected.txt: Added.
  • http/wpt/web-animations/interfaces/Animation/id.html: Added.
  • http/wpt/web-animations/interfaces/Animation/idlharness-expected.txt: Added.
  • http/wpt/web-animations/interfaces/Animation/idlharness.html: Added.
  • http/wpt/web-animations/interfaces/Animation/oncancel-expected.txt: Added.
  • http/wpt/web-animations/interfaces/Animation/oncancel.html: Added.
  • http/wpt/web-animations/interfaces/Animation/onfinish-expected.txt: Added.
  • http/wpt/web-animations/interfaces/Animation/onfinish.html: Added.
  • http/wpt/web-animations/interfaces/Animation/pause-expected.txt: Added.
  • http/wpt/web-animations/interfaces/Animation/pause.html: Added.
  • http/wpt/web-animations/interfaces/Animation/play-expected.txt: Added.
  • http/wpt/web-animations/interfaces/Animation/play.html: Added.
  • http/wpt/web-animations/interfaces/Animation/playState-expected.txt: Added.
  • http/wpt/web-animations/interfaces/Animation/playState.html: Added.
  • http/wpt/web-animations/interfaces/Animation/playbackRate-expected.txt: Added.
  • http/wpt/web-animations/interfaces/Animation/playbackRate.html: Added.
  • http/wpt/web-animations/interfaces/Animation/ready-expected.txt: Added.
  • http/wpt/web-animations/interfaces/Animation/ready.html: Added.
  • http/wpt/web-animations/interfaces/Animation/startTime-expected.txt: Added.
  • http/wpt/web-animations/interfaces/Animation/startTime.html: Added.
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/delay-expected.txt: Added.
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/delay.html: Added.
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/direction-expected.txt: Added.
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/direction.html: Added.
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/duration-expected.txt: Added.
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/duration.html: Added.
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/easing-expected.txt: Added.
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/easing.html: Added.
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/endDelay-expected.txt: Added.
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/endDelay.html: Added.
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/fill-expected.txt: Added.
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/fill.html: Added.
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/getAnimations-expected.txt: Added.
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/getAnimations.html: Added.
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/getComputedStyle-expected.txt: Added.
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/getComputedStyle.html: Added.
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/iterationStart-expected.txt: Added.
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/iterationStart.html: Added.
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/iterations-expected.txt: Added.
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/iterations.html: Added.
  • http/wpt/web-animations/interfaces/AnimationTimeline/document-timeline-expected.txt: Added.
  • http/wpt/web-animations/interfaces/AnimationTimeline/document-timeline.html: Added.
  • http/wpt/web-animations/interfaces/AnimationTimeline/idlharness-expected.txt: Added.
  • http/wpt/web-animations/interfaces/AnimationTimeline/idlharness.html: Added.
  • http/wpt/web-animations/interfaces/Document/getAnimations-expected.txt: Added.
  • http/wpt/web-animations/interfaces/Document/getAnimations.html: Added.
  • http/wpt/web-animations/interfaces/DocumentTimeline/constructor-expected.txt: Added.
  • http/wpt/web-animations/interfaces/DocumentTimeline/constructor.html: Added.
  • http/wpt/web-animations/interfaces/KeyframeEffect/composite-expected.txt: Added.
  • http/wpt/web-animations/interfaces/KeyframeEffect/composite.html: Added.
  • http/wpt/web-animations/interfaces/KeyframeEffect/constructor-expected.txt: Added.
  • http/wpt/web-animations/interfaces/KeyframeEffect/constructor.html: Added.
  • http/wpt/web-animations/interfaces/KeyframeEffect/copy-constructor-expected.txt: Added.
  • http/wpt/web-animations/interfaces/KeyframeEffect/copy-constructor.html: Added.
  • http/wpt/web-animations/interfaces/KeyframeEffect/getComputedTiming-expected.txt: Added.
  • http/wpt/web-animations/interfaces/KeyframeEffect/getComputedTiming.html: Added.
  • http/wpt/web-animations/interfaces/KeyframeEffect/iterationComposite-expected.txt: Added.
  • http/wpt/web-animations/interfaces/KeyframeEffect/iterationComposite.html: Added.
  • http/wpt/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001-expected.txt: Added.
  • http/wpt/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html: Added.
  • http/wpt/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-002-expected.txt: Added.
  • http/wpt/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-002.html: Added.
  • http/wpt/web-animations/interfaces/KeyframeEffect/setKeyframes-expected.txt: Added.
  • http/wpt/web-animations/interfaces/KeyframeEffect/setKeyframes.html: Added.
  • http/wpt/web-animations/interfaces/KeyframeEffect/setTarget-expected.txt: Added.
  • http/wpt/web-animations/interfaces/KeyframeEffect/setTarget.html: Added.
  • http/wpt/web-animations/interfaces/KeyframeEffectReadOnly/copy-constructor-expected.txt: Added.
  • http/wpt/web-animations/interfaces/KeyframeEffectReadOnly/copy-constructor.html: Added.
  • http/wpt/web-animations/resources/easing-tests.js: Added.

(easingFunction.stepStart):
(easingFunction.stepEnd):
(easingFunction.framesTiming):
(easingFunction.cubicBezier):

  • http/wpt/web-animations/resources/effect-tests.js: Added.

(assert_computed_timing_for_each_phase):

  • http/wpt/web-animations/resources/keyframe-utils.js: Added.

(assert_frame_lists_equal):
(assert_frames_equal):

  • http/wpt/web-animations/resources/xhr-doc.py: Added.

(main):

  • http/wpt/web-animations/testcommon.js: Added.

(window.assert_times_equal.window.assert_times_equal):
(createDiv):
(createElement):
(createStyle):
(createPseudo):
(xForT):
(yForT):
(tForX):
(return.bezierClosure):
(cubicBezier):
(stepEnd.return.stepEndClosure):
(stepEnd):
(stepStart.return.stepStartClosure):
(stepStart):
(framesTiming.return.framesClosure):
(framesTiming):
(waitForAnimationFrames):
(rotate3dToMatrix3d):
(rotate3dToMatrix):
(assert_matrix_equals):

  • http/wpt/web-animations/timing-model/animation-effects/active-time-expected.txt: Added.
  • http/wpt/web-animations/timing-model/animation-effects/active-time.html: Added.
  • http/wpt/web-animations/timing-model/animation-effects/current-iteration-expected.txt: Added.
  • http/wpt/web-animations/timing-model/animation-effects/current-iteration.html: Added.
  • http/wpt/web-animations/timing-model/animation-effects/local-time-expected.txt: Added.
  • http/wpt/web-animations/timing-model/animation-effects/local-time.html: Added.
  • http/wpt/web-animations/timing-model/animation-effects/phases-and-states-expected.txt: Added.
  • http/wpt/web-animations/timing-model/animation-effects/phases-and-states.html: Added.
  • http/wpt/web-animations/timing-model/animation-effects/simple-iteration-progress-expected.txt: Added.
  • http/wpt/web-animations/timing-model/animation-effects/simple-iteration-progress.html: Added.
  • http/wpt/web-animations/timing-model/animations/canceling-an-animation-expected.txt: Added.
  • http/wpt/web-animations/timing-model/animations/canceling-an-animation.html: Added.
  • http/wpt/web-animations/timing-model/animations/current-time-expected.txt: Added.
  • http/wpt/web-animations/timing-model/animations/current-time.html: Added.
  • http/wpt/web-animations/timing-model/animations/finishing-an-animation-expected.txt: Added.
  • http/wpt/web-animations/timing-model/animations/finishing-an-animation.html: Added.
  • http/wpt/web-animations/timing-model/animations/pausing-an-animation-expected.txt: Added.
  • http/wpt/web-animations/timing-model/animations/pausing-an-animation.html: Added.
  • http/wpt/web-animations/timing-model/animations/playing-an-animation-expected.txt: Added.
  • http/wpt/web-animations/timing-model/animations/playing-an-animation.html: Added.
  • http/wpt/web-animations/timing-model/animations/reversing-an-animation-expected.txt: Added.
  • http/wpt/web-animations/timing-model/animations/reversing-an-animation.html: Added.
  • http/wpt/web-animations/timing-model/animations/set-the-animation-start-time-expected.txt: Added.
  • http/wpt/web-animations/timing-model/animations/set-the-animation-start-time.html: Added.
  • http/wpt/web-animations/timing-model/animations/set-the-target-effect-of-an-animation-expected.txt: Added.
  • http/wpt/web-animations/timing-model/animations/set-the-target-effect-of-an-animation.html: Added.
  • http/wpt/web-animations/timing-model/animations/set-the-timeline-of-an-animation-expected.txt: Added.
  • http/wpt/web-animations/timing-model/animations/set-the-timeline-of-an-animation.html: Added.
  • http/wpt/web-animations/timing-model/animations/updating-the-finished-state-expected.txt: Added.
  • http/wpt/web-animations/timing-model/animations/updating-the-finished-state.html: Added.
  • http/wpt/web-animations/timing-model/time-transformations/transformed-progress-expected.txt: Added.
  • http/wpt/web-animations/timing-model/time-transformations/transformed-progress.html: Added.
8:09 AM Changeset in webkit [224181] by graouts@webkit.org
  • 5 edits
    4 adds in trunk

[Web Animations] Expose the playbackRate property on Animation
https://bugs.webkit.org/show_bug.cgi?id=178931

Reviewed by Sam Weinig.

Source/WebCore:

Account for the playback rate when computing and setting an animation's
current time, ensuring that we adjust the start time to preserve the
current time when setting a new playback rate.

Test: http/wpt/wk-web-animations/timing-model/animation-playback-rate.html

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::WebAnimation):
(WebCore::WebAnimation::currentTime const):
(WebCore::WebAnimation::setCurrentTime):
(WebCore::WebAnimation::setPlaybackRate):

  • animation/WebAnimation.h:
  • animation/WebAnimation.idl:

LayoutTests:

Add a new test, using WPT, to check that the playbackRate property is accounted
for when getting and setting the current time.

  • http/wpt/wk-web-animations/timing-model/animation-playback-rate-expected.txt: Added.
  • http/wpt/wk-web-animations/timing-model/animation-playback-rate.html: Added.
7:44 AM Changeset in webkit [224180] by fred.wang@free.fr
  • 2 edits in trunk/Tools

Remove support for running safari on the iOS simulator with Xcode < 9.0
https://bugs.webkit.org/show_bug.cgi?id=178203

Patch by Frederic Wang <fwang@igalia.com> on 2017-10-12
Reviewed by Alexey Proskuryakov.

This is a follow-up of r223234. We no longer support iOS WebKit development for Xcode < 9.0
and do not have any iOS simulator builders in our infrastructure. Hence we can remove the
special case to calculate the iOS simulator applications path for these old versions.

  • Scripts/webkitdirs.pm:

(iosSimulatorApplicationsPath): Remove special case for XCode < 9.0

7:43 AM WPE edited by clopez@igalia.com
(diff)
7:20 AM Changeset in webkit [224179] by Michael Catanzaro
  • 20 edits in trunk

[WPE][GTK] Expose availability of certain editing commands in WebKitEditorState
https://bugs.webkit.org/show_bug.cgi?id=168219

Reviewed by Ryosuke Niwa.

Source/WebCore:

Make Editor::canUndo and Editor::canRedo const.

Also, remove unused allowsCopy from HitTestResult.

  • editing/Editor.cpp:

(WebCore::Editor::canUndo const):
(WebCore::Editor::canRedo const):
(WebCore::Editor::canUndo): Deleted.
(WebCore::Editor::canRedo): Deleted.

  • editing/Editor.h:
  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::allowsCopy const): Deleted.

  • rendering/HitTestResult.h:
  • rendering/SelectionRangeData.cpp:

Source/WebKit:

Expose canCut, canCopy, canPaste, canUndo, and canRedo in EditorState::PostLayouData.

Add corresponding new WPE/GTK API.

Remove allowsCopy from WebKitTestResultData. It's unused, does not work correctly in all
circumstances, and irritates Ryosuke.

Also, remove a bunch of #ifs guarding post layout data, since it's now used on all ports.

  • Shared/EditorState.cpp:

(WebKit::EditorState::encode const):
(WebKit::EditorState::decode):
(WebKit::EditorState::PostLayoutData::encode const):
(WebKit::EditorState::PostLayoutData::decode):

  • Shared/EditorState.h:

(WebKit::EditorState::postLayoutData const const):

  • Shared/WebHitTestResultData.cpp:

(WebKit::WebHitTestResultData::WebHitTestResultData):
(WebKit::WebHitTestResultData::encode const):
(WebKit::WebHitTestResultData::decode):

  • Shared/WebHitTestResultData.h:
  • UIProcess/API/APIHitTestResult.h:

(API::HitTestResult::allowsCopy const): Deleted.

  • UIProcess/API/glib/WebKitEditorState.cpp:

(webkitEditorStateChanged):
(webkit_editor_state_is_cut_available):
(webkit_editor_state_is_copy_available):
(webkit_editor_state_is_paste_available):
(webkit_editor_state_is_undo_available):
(webkit_editor_state_is_redo_available):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_can_execute_editing_command):

  • UIProcess/API/gtk/WebKitEditorState.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/wpe/WebKitEditorState.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::editorState const):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performImmediateActionHitTestAtLocation):

Tools:

Test it.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebViewEditor.cpp:

(testWebViewEditorCutCopyPasteNonEditable):
(testWebViewEditorCutCopyPasteEditable):
(testWebViewEditorSelectAllNonEditable):
(testWebViewEditorSelectAllEditable):
(loadContentsAndTryToCutSelection):
(testWebViewEditorNonEditable):
(testWebViewEditorEditorStateTypingAttributes):
(testWebViewEditorInsertImage):
(testWebViewEditorCreateLink):

6:39 AM Changeset in webkit [224178] by clopez@igalia.com
  • 63 edits in trunk/LayoutTests

[GTK] Rebaseline affected tests after r224177
https://bugs.webkit.org/show_bug.cgi?id=178933

Unreviewed gardening.

  • platform/gtk/editing/deleting/4922367-expected.txt:
  • platform/gtk/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt:
  • platform/gtk/editing/deleting/delete-at-paragraph-boundaries-010-expected.txt:
  • platform/gtk/editing/deleting/delete-at-paragraph-boundaries-011-expected.txt:
  • platform/gtk/editing/deleting/delete-block-merge-contents-005-expected.txt:
  • platform/gtk/editing/deleting/delete-block-merge-contents-006-expected.txt:
  • platform/gtk/editing/deleting/delete-block-merge-contents-007-expected.txt:
  • platform/gtk/editing/deleting/delete-block-merge-contents-008-expected.txt:
  • platform/gtk/editing/deleting/delete-block-merge-contents-023-expected.txt:
  • platform/gtk/editing/deleting/delete-block-merge-contents-024-expected.txt:
  • platform/gtk/editing/deleting/delete-br-008-expected.txt:
  • platform/gtk/editing/deleting/delete-br-010-expected.txt:
  • platform/gtk/editing/deleting/delete-line-015-expected.txt:
  • platform/gtk/editing/deleting/delete-line-016-expected.txt:
  • platform/gtk/editing/deleting/delete-line-017-expected.txt:
  • platform/gtk/editing/deleting/merge-no-br-expected.txt:
  • platform/gtk/editing/deleting/type-delete-after-quote-expected.txt:
  • platform/gtk/editing/execCommand/4747450-expected.txt:
  • platform/gtk/editing/execCommand/4916402-expected.txt:
  • platform/gtk/editing/execCommand/4916541-expected.txt:
  • platform/gtk/editing/execCommand/4924441-expected.txt:
  • platform/gtk/editing/execCommand/5136770-expected.txt:
  • platform/gtk/editing/execCommand/5142012-2-expected.txt:
  • platform/gtk/editing/execCommand/5190926-expected.txt:
  • platform/gtk/editing/execCommand/5481523-expected.txt:
  • platform/gtk/editing/execCommand/create-list-with-hr-expected.txt:
  • platform/gtk/editing/execCommand/indent-selection-expected.txt:
  • platform/gtk/editing/execCommand/insert-list-and-stitch-expected.txt:
  • platform/gtk/editing/execCommand/nsresponder-indent-expected.txt:
  • platform/gtk/editing/inserting/insert-br-quoted-004-expected.txt:
  • platform/gtk/editing/inserting/insert-br-quoted-006-expected.txt:
  • platform/gtk/editing/pasteboard/5071074-2-expected.txt:
  • platform/gtk/editing/pasteboard/displaced-generic-placeholder-expected.txt:
  • platform/gtk/editing/pasteboard/displaced-placeholder-expected.txt:
  • platform/gtk/editing/pasteboard/merge-after-delete-2-expected.txt:
  • platform/gtk/editing/pasteboard/merge-after-delete-expected.txt:
  • platform/gtk/editing/pasteboard/merge-end-blockquote-expected.txt:
  • platform/gtk/editing/pasteboard/paste-blockquote-after-blockquote-expected.txt:
  • platform/gtk/editing/pasteboard/paste-line-endings-008-expected.txt:
  • platform/gtk/editing/pasteboard/paste-match-style-001-expected.txt:
  • platform/gtk/editing/pasteboard/paste-text-008-expected.txt:
  • platform/gtk/editing/pasteboard/paste-text-009-expected.txt:
  • platform/gtk/editing/pasteboard/smart-paste-007-expected.txt:
  • platform/gtk/editing/pasteboard/smart-paste-008-expected.txt:
  • platform/gtk/editing/pasteboard/undoable-fragment-removes-expected.txt:
  • platform/gtk/editing/pasteboard/unrendered-br-expected.txt:
  • platform/gtk/editing/selection/vertical-rl-ltr-extend-line-backward-wrap-expected.txt:
  • platform/gtk/editing/selection/vertical-rl-ltr-extend-line-forward-wrap-expected.txt:
  • platform/gtk/editing/style/4916887-expected.txt:
  • platform/gtk/editing/style/5046875-1-expected.txt:
  • platform/gtk/editing/style/5046875-2-expected.txt:
  • platform/gtk/editing/style/5279521-expected.txt:
  • platform/gtk/editing/style/create-block-for-style-003-expected.txt:
  • platform/gtk/editing/style/create-block-for-style-004-expected.txt:
  • platform/gtk/editing/style/create-block-for-style-007-expected.txt:
  • platform/gtk/editing/style/create-block-for-style-009-expected.txt:
  • platform/gtk/editing/style/create-block-for-style-010-expected.txt:
  • platform/gtk/editing/style/create-block-for-style-011-expected.txt:
  • platform/gtk/editing/style/create-block-for-style-012-expected.txt:
  • platform/gtk/editing/style/create-block-for-style-013-expected.txt:
  • platform/gtk/editing/unsupported-content/list-delete-001-expected.txt:
  • platform/gtk/fast/forms/button-generated-content-expected.txt:
4:13 AM Changeset in webkit [224177] by Antti Koivisto
  • 113 edits in trunk

Destroy all unneeded anonymous wrappers in RenderObject::removeFromParentAndDestroyCleaningUpAnonymousWrappers()
https://bugs.webkit.org/show_bug.cgi?id=178933

Reviewed by Zalan Bujtas.

Source/WebCore:

Currently it just cleans up table related wrappers.

  • rendering/RenderObject.cpp:

(WebCore::findDestroyRootIncludingAnonymous):

Continuations are left as future work.

LayoutTests:

Many leftover empty anonymous wrappers go away in render tree dumps. No visual impact.

  • editing/deleting/delete-br-009-expected.txt:
  • platform/ios-wk2/editing/execCommand/4747450-expected.txt:
  • platform/ios-wk2/editing/execCommand/4924441-expected.txt:
  • platform/ios-wk2/editing/inserting/insert-br-quoted-004-expected.txt:
  • platform/ios-wk2/editing/inserting/insert-br-quoted-006-expected.txt:
  • platform/ios-wk2/editing/pasteboard/merge-end-blockquote-expected.txt:
  • platform/ios-wk2/editing/pasteboard/paste-line-endings-008-expected.txt:
  • platform/ios-wk2/editing/pasteboard/paste-match-style-001-expected.txt:
  • platform/ios-wk2/editing/pasteboard/paste-text-008-expected.txt:
  • platform/ios-wk2/editing/pasteboard/paste-text-009-expected.txt:
  • platform/ios-wk2/editing/pasteboard/undoable-fragment-removes-expected.txt:
  • platform/ios-wk2/editing/pasteboard/unrendered-br-expected.txt:
  • platform/ios-wk2/editing/style/4916887-expected.txt:
  • platform/ios-wk2/editing/style/5046875-1-expected.txt:
  • platform/ios-wk2/editing/style/5046875-2-expected.txt:
  • platform/ios-wk2/editing/style/5279521-expected.txt:
  • platform/ios-wk2/editing/style/create-block-for-style-003-expected.txt:
  • platform/ios-wk2/editing/style/create-block-for-style-004-expected.txt:
  • platform/ios-wk2/editing/style/create-block-for-style-007-expected.txt:
  • platform/ios-wk2/editing/style/create-block-for-style-009-expected.txt:
  • platform/ios-wk2/editing/style/create-block-for-style-010-expected.txt:
  • platform/ios-wk2/editing/style/create-block-for-style-011-expected.txt:
  • platform/ios-wk2/editing/style/create-block-for-style-012-expected.txt:
  • platform/ios-wk2/editing/style/create-block-for-style-013-expected.txt:
  • platform/ios/editing/deleting/4922367-expected.txt:
  • platform/ios/editing/deleting/type-delete-after-quote-expected.txt:
  • platform/ios/editing/execCommand/4916402-expected.txt:
  • platform/ios/editing/execCommand/4916541-expected.txt:
  • platform/ios/editing/execCommand/5136770-expected.txt:
  • platform/ios/editing/execCommand/5142012-2-expected.txt:
  • platform/ios/editing/execCommand/5190926-expected.txt:
  • platform/ios/editing/execCommand/5481523-expected.txt:
  • platform/ios/editing/pasteboard/5071074-2-expected.txt:
  • platform/ios/editing/pasteboard/displaced-generic-placeholder-expected.txt:
  • platform/ios/editing/pasteboard/displaced-placeholder-expected.txt:
  • platform/ios/editing/pasteboard/merge-after-delete-2-expected.txt:
  • platform/ios/editing/pasteboard/merge-after-delete-expected.txt:
  • platform/ios/editing/pasteboard/paste-blockquote-after-blockquote-expected.txt:
  • platform/ios/editing/selection/vertical-rl-ltr-extend-line-backward-wrap-expected.txt:
  • platform/ios/editing/selection/vertical-rl-ltr-extend-line-forward-wrap-expected.txt:
  • platform/ios/fast/forms/button-generated-content-expected.txt:
  • platform/ios/fast/ruby/rubyDOM-remove-text2-expected.txt:
  • platform/mac-elcapitan/fast/forms/button-generated-content-expected.txt:
  • platform/mac/editing/deleting/4922367-expected.txt:
  • platform/mac/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt:
  • platform/mac/editing/deleting/delete-at-paragraph-boundaries-010-expected.txt:
  • platform/mac/editing/deleting/delete-at-paragraph-boundaries-011-expected.txt:
  • platform/mac/editing/deleting/delete-block-merge-contents-005-expected.txt:
  • platform/mac/editing/deleting/delete-block-merge-contents-006-expected.txt:
  • platform/mac/editing/deleting/delete-block-merge-contents-007-expected.txt:
  • platform/mac/editing/deleting/delete-block-merge-contents-008-expected.txt:
  • platform/mac/editing/deleting/delete-block-merge-contents-023-expected.txt:
  • platform/mac/editing/deleting/delete-block-merge-contents-024-expected.txt:
  • platform/mac/editing/deleting/delete-br-008-expected.txt:
  • platform/mac/editing/deleting/delete-br-010-expected.txt:
  • platform/mac/editing/deleting/delete-line-015-expected.txt:
  • platform/mac/editing/deleting/delete-line-016-expected.txt:
  • platform/mac/editing/deleting/delete-line-017-expected.txt:
  • platform/mac/editing/deleting/merge-no-br-expected.txt:
  • platform/mac/editing/deleting/type-delete-after-quote-expected.txt:
  • platform/mac/editing/execCommand/4747450-expected.txt:
  • platform/mac/editing/execCommand/4916402-expected.txt:
  • platform/mac/editing/execCommand/4916541-expected.txt:
  • platform/mac/editing/execCommand/4924441-expected.txt:
  • platform/mac/editing/execCommand/5136770-expected.txt:
  • platform/mac/editing/execCommand/5142012-2-expected.txt:
  • platform/mac/editing/execCommand/5190926-expected.txt:
  • platform/mac/editing/execCommand/5481523-expected.txt:
  • platform/mac/editing/execCommand/create-list-with-hr-expected.txt:
  • platform/mac/editing/execCommand/indent-selection-expected.txt:
  • platform/mac/editing/execCommand/insert-list-and-stitch-expected.txt:
  • platform/mac/editing/execCommand/nsresponder-indent-expected.txt:
  • platform/mac/editing/inserting/break-blockquote-after-delete-expected.txt:
  • platform/mac/editing/inserting/insert-br-quoted-004-expected.txt:
  • platform/mac/editing/inserting/insert-br-quoted-006-expected.txt:
  • platform/mac/editing/pasteboard/5071074-2-expected.txt:
  • platform/mac/editing/pasteboard/displaced-generic-placeholder-expected.txt:
  • platform/mac/editing/pasteboard/displaced-placeholder-expected.txt:
  • platform/mac/editing/pasteboard/merge-after-delete-2-expected.txt:
  • platform/mac/editing/pasteboard/merge-after-delete-expected.txt:
  • platform/mac/editing/pasteboard/merge-end-blockquote-expected.txt:
  • platform/mac/editing/pasteboard/paste-blockquote-after-blockquote-expected.txt:
  • platform/mac/editing/pasteboard/paste-line-endings-008-expected.txt:
  • platform/mac/editing/pasteboard/paste-match-style-001-expected.txt:
  • platform/mac/editing/pasteboard/paste-text-008-expected.txt:
  • platform/mac/editing/pasteboard/paste-text-009-expected.txt:
  • platform/mac/editing/pasteboard/smart-paste-007-expected.txt:
  • platform/mac/editing/pasteboard/smart-paste-008-expected.txt:
  • platform/mac/editing/pasteboard/undoable-fragment-removes-expected.txt:
  • platform/mac/editing/pasteboard/unrendered-br-expected.txt:
  • platform/mac/editing/selection/vertical-rl-ltr-extend-line-backward-wrap-expected.txt:
  • platform/mac/editing/selection/vertical-rl-ltr-extend-line-forward-wrap-expected.txt:
  • platform/mac/editing/style/4916887-expected.txt:
  • platform/mac/editing/style/5046875-1-expected.txt:
  • platform/mac/editing/style/5046875-2-expected.txt:
  • platform/mac/editing/style/5279521-expected.txt:
  • platform/mac/editing/style/create-block-for-style-003-expected.txt:
  • platform/mac/editing/style/create-block-for-style-004-expected.txt:
  • platform/mac/editing/style/create-block-for-style-007-expected.txt:
  • platform/mac/editing/style/create-block-for-style-009-expected.txt:
  • platform/mac/editing/style/create-block-for-style-010-expected.txt:
  • platform/mac/editing/style/create-block-for-style-011-expected.txt:
  • platform/mac/editing/style/create-block-for-style-012-expected.txt:
  • platform/mac/editing/style/create-block-for-style-013-expected.txt:
  • platform/mac/editing/style/smoosh-styles-001-expected.txt:
  • platform/mac/editing/style/style-boundary-005-expected.txt:
  • platform/mac/editing/style/unbold-in-bold-expected.txt:
  • platform/mac/editing/unsupported-content/list-delete-001-expected.txt:
  • platform/mac/fast/forms/button-generated-content-expected.txt:
  • platform/mac/fast/ruby/rubyDOM-remove-text2-expected.txt:
3:23 AM Changeset in webkit [224176] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Remove reference to RenderTreeInternalMutationScope
https://bugs.webkit.org/show_bug.cgi?id=178998
<rdar://problem/35246464>

Reviewed by Antti Koivisto.

We don't have such class anymore.

No change in functionality.

  • rendering/RenderView.h:
2:07 AM Changeset in webkit [224175] by commit-queue@webkit.org
  • 1 edit
    1 add in trunk/Source/WebInspectorUI

[GTK] Web Inspector: Add Path.svg
https://bugs.webkit.org/show_bug.cgi?id=178432

Patch by Fujii Hironori <Fujii Hironori> on 2017-10-30
Reviewed by Carlos Garcia Campos.

  • UserInterface/Images/gtk/Path.svg: Added.
1:43 AM Changeset in webkit [224174] by Nikita Vasilyev
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: [PARITY] Styles Redesign: clicking on the white space after the property should create a blank property
https://bugs.webkit.org/show_bug.cgi?id=178022
<rdar://problem/34861687>

Reviewed by Matt Baker.

  • Clicking on the whitespace on the right side of a property should insert a blank property after the clicked one.
  • Clicking on the whitespace at the end of a CSS rule should append a blank property.
  • Clicking on the whitespace before the first property should insert a blank property before the first one.
  • UserInterface/Models/CSSProperty.js:

(WI.CSSProperty.prototype.remove):
(WI.CSSProperty.prototype._updateOwnerStyleText):
Remove method previously didn't do anything for a newly added property.

  • UserInterface/Models/CSSStyleDeclaration.js:

(WI.CSSStyleDeclaration.prototype.newBlankProperty):
Update indices of all properties after the newly added property.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:

(WI.SpreadsheetCSSStyleDeclarationEditor):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingFirstProperty):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingLastProperty):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.isFocused):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.addBlankProperty):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetCSSStyleDeclarationEditorFocusMoved):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._addBlankProperty): Deleted.
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._isFocused): Deleted.
Re-layout SpreadsheetCSSStyleDeclarationEditor after adding a new property. Preserve edited property
so we can restore editing state after the re-layout.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleClick):
Clicking should add a new property only when we aren't editing an existing property.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty):
(WI.SpreadsheetStyleProperty.prototype.updateClassNames):
(WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidCommit):
Remove newlyAdded property of SpreadsheetStyleProperty. During layout SpreadsheetCSSStyleDeclarationEditor
recreates SpreadsheetStyleProperty views and newlyAdded property gets lost.

  • UserInterface/Views/SpreadsheetTextField.js:

(WI.SpreadsheetTextField.prototype.get valueBeforeEditing):
(WI.SpreadsheetTextField.prototype.startEditing):
(WI.SpreadsheetTextField.prototype.stopEditing):
(WI.SpreadsheetTextField.prototype._discardChange):

1:23 AM Changeset in webkit [224173] by zandobersek@gmail.com
  • 11 edits
    38 adds in trunk

[GCrypt] Add support for P-521 EC curves
https://bugs.webkit.org/show_bug.cgi?id=175199

Reviewed by Jiewen Tan.

Source/WebCore:

Add support for 521-bit elliptic curves in the libgcrypt-based
implementation of WebCrypto API.

In the CryptoAlgorithmECDH implementation, the bit-size of the key is now
rounded up to the next byte boundary and passed to the helper
gcryptDerive() function. There the size in bytes is used to zero-pad the
derived key data. This is done to properly handle derivation results for
the P-521 curves, where the leading zero bit could get clipped, resulting
in a derived key that is only 65 byes in length when it is expected to be
66 bytes. Further cleanups are done in gcryptDerive() to use the mpiData()
function where possible.

In the CryptoAlgorithmECDSA implementation, the bit-size of the key is
again rounded up to the nearest byte boundary before being passed to the
helper gcryptSign() and gcryptVerify() functions. This again properly
enforces the requirement of 66 bytes to handle P-521 elliptic curves.

In the CryptoKeyEC implementation, NamedCurve::P521 cases in helper
functions operating on NamedCurve values are now implemented to return
appropriate values. platformSupportedCurve() now returns true for the
NamedCurve::P521 value. Zero-padding of the private key data is used
wherever it is necessary to avoid clipping any leading zero bit in the
P-521 EC key.

No new tests -- affected tests have their baselines updated.

  • crypto/gcrypt/CryptoAlgorithmECDHGCrypt.cpp:

(WebCore::gcryptDerive):
(WebCore::CryptoAlgorithmECDH::platformDeriveBits):

  • crypto/gcrypt/CryptoAlgorithmECDSAGCrypt.cpp:

(WebCore::CryptoAlgorithmECDSA::platformSign):
(WebCore::CryptoAlgorithmECDSA::platformVerify):

  • crypto/gcrypt/CryptoKeyECGCrypt.cpp:

(WebCore::curveName):
(WebCore::curveIdentifier):
(WebCore::curveSize):
(WebCore::curveUncompressedFieldElementSize):
(WebCore::CryptoKeyEC::platformSupportedCurve):
(WebCore::curveForIdentifier):
(WebCore::CryptoKeyEC::platformImportPkcs8):
(WebCore::CryptoKeyEC::platformAddFieldElements const):
(WebCore::CryptoKeyEC::platformExportPkcs8 const):

LayoutTests:

Add or update Web Crypto test baselines for the GTK+ and WPE ports
to reflect the added EC P-521 support.

  • platform/gtk/crypto/subtle/ec-generate-key-malformed-parameters-expected.txt: Added.
  • platform/gtk/crypto/subtle/ecdh-derive-bits-length-limits-expected.txt: Added.
  • platform/gtk/crypto/subtle/ecdh-import-spki-key-ecdh-identifier-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_bits.https-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_keys.https-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures.worker-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.worker-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.worker-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes.worker-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.worker-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.worker-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures.https-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.https-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.https-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.https-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.https-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/ec_importKey.worker-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/test_ec_importKey.https-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/ecdsa.worker-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/test_ecdsa.https-expected.txt: Added.
  • platform/wpe/crypto/subtle/ec-generate-key-malformed-parameters-expected.txt: Added.
  • platform/wpe/crypto/subtle/ecdh-derive-bits-length-limits-expected.txt: Added.
  • platform/wpe/crypto/subtle/ecdh-import-spki-key-ecdh-identifier-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.worker-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.worker-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_bits.https-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_keys.https-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures.worker-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.worker-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.worker-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes.worker-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.worker-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.worker-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures.https-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.https-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.https-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.https-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.https-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/ec_importKey.worker-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/test_ec_importKey.https-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/ecdsa.worker-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/test_ecdsa.https-expected.txt: Added.
1:17 AM Changeset in webkit [224172] by zandobersek@gmail.com
  • 2 edits in trunk/Source/JavaScriptCore

[ARMv7] Fix initial start register support in YarrJIT
https://bugs.webkit.org/show_bug.cgi?id=178641

Reviewed by Saam Barati.

  • yarr/YarrJIT.cpp: On ARMv7, use r8 as the initialStart register in the

YarrGenerator class. r6 should be avoided since it's already used inside
MacroAssemblerARMv7 as addressTempRegister. r7 isn't picked because it
can be used as the frame pointer register when targetting ARM Thumb2.

1:16 AM Changeset in webkit [224171] by zandobersek@gmail.com
  • 4 edits in trunk/Source

[ARM64][Linux] Re-enable Gigacage
https://bugs.webkit.org/show_bug.cgi?id=178130

Reviewed by Michael Catanzaro.

Source/bmalloc:

  • bmalloc/Gigacage.h: Re-enable Gigacage on ARM64 Linux.

Source/JavaScriptCore:

Guard the current globaladdr opcode implementation for ARM64 with
OS(DARWIN) as it's only usable for Mach-O.

For OS(LINUX), ELF-supported :got: and :got_lo12: relocation specifiers
have to be used. The .loh directive can't be used as it's not supported
in GCC or the ld linker.

On every other OS target, a compilation error is thrown.

  • offlineasm/arm64.rb:
1:15 AM Changeset in webkit [224170] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed WPE gardening. Skip Service Workers tests again after r224132.

Service Workers tests were unskipped from main TestExpectations in r224132, but Service Workers are not enabled
in WPE port yet.

  • platform/wpe/TestExpectations:
1:13 AM Changeset in webkit [224169] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Skip Service Workers tests again after r224132.

Service Workers tests were unskipped from main TestExpectations in r224132, but Service Workers are not enabled
in GTk+ port yet.

  • platform/gtk/TestExpectations:

Oct 29, 2017:

8:40 PM Changeset in webkit [224168] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Use of uninitialized value $targetIdlFile in hash element at preprocess-idls.pl line 165.
https://bugs.webkit.org/show_bug.cgi?id=177743

Patch by Fujii Hironori <Fujii Hironori> on 2017-10-29
Reviewed by Darin Adler.

GamepadWebVR.idl supplements Gamepad.idl. But, Gamepad.idl is not
processed because ENABLE_GAMEPAD is OFF.

No new tests since there should be no behavioral change.

  • CMakeLists.txt: Include GamepadWebVR.idl only if ENABLE_GAMEPAD.
  • Sources.txt: Ditto.
  • bindings/scripts/preprocess-idls.pl: Die if a supplemented IDL file is not found.
7:23 PM Changeset in webkit [224167] by jmarcell@apple.com
  • 3 edits in branches/safari-604-branch/Source

Apply patch. rdar://problem/35058061

We should ignore HSTS for partitioned, cross-origin subresource requests since HSTS is being abused for cross-site tracking purposes.

5:04 PM Changeset in webkit [224166] by Chris Dumez
  • 6 edits
    2 adds in trunk/LayoutTests

LayoutTests/imported/w3c:
Unreviewed, revaseline a few tests after r224156.

  • web-platform-tests/service-workers/service-worker/import-scripts-redirect.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/mime-sniffing.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/ready.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/redirected-response.https-expected.txt:
  • web-platform-tests/streams/readable-byte-streams/detached-buffers.serviceworker.https-expected.txt:

LayoutTests:
Unreviewed, rebaseline a few tests after r224156.

4:07 PM Changeset in webkit [224165] by weinig@apple.com
  • 13 edits
    4 adds in trunk

[Conic Gradients] Add support for parsing conic gradients
https://bugs.webkit.org/show_bug.cgi?id=178987

Reviewed by Dean Jackson.

Source/WebCore:

Adds initial support, disabled by default, for parsing conic gradients as per
CSS 4 Images - https://www.w3.org/TR/css-images-4/#conic-gradients.

Test: fast/gradients/conic-gradient-parsing.html

  • css/CSSGradientValue.cpp:

(WebCore::clone):
(WebCore::CSSGradientValue::isCacheable const):
(WebCore::CSSConicGradientValue::customCSSText const):
(WebCore::CSSConicGradientValue::createGradient):
(WebCore::CSSConicGradientValue::equals const):

  • css/CSSGradientValue.h:


Add CSSConicGradientValue as a subclass of CSSGradientValue and implement
customCSSText() and equals(). Stub out createGradient() as painting is not
yet implemented.


  • css/CSSImageGeneratorValue.cpp:

(WebCore::CSSImageGeneratorValue::image):
(WebCore::CSSImageGeneratorValue::isFixedSize const):
(WebCore::CSSImageGeneratorValue::fixedSize):
(WebCore::CSSImageGeneratorValue::isPending const):
(WebCore::CSSImageGeneratorValue::knownToBeOpaque const):
(WebCore::CSSImageGeneratorValue::loadSubimages):

  • css/CSSValue.cpp:

(WebCore::CSSValue::equals const):
(WebCore::CSSValue::cssText const):
(WebCore::CSSValue::destroy):

Dispatch to CSSConicGradientValue as needed.


  • css/CSSValue.h:

(WebCore::CSSValue::isImageGeneratorValue const):
(WebCore::CSSValue::isGradientValue const):
(WebCore::CSSValue::isConicGradientValue const):

Add conic gradient predicate support and update isImageGeneratorValue and
isGradientValue to include conic gradient.


  • css/CSSValueKeywords.in:


Add conic-gradient and repeating-conic-gradient.


  • css/parser/CSSParser.cpp:

(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):

  • css/parser/CSSParserMode.h:

(WebCore::CSSParserContextHash::hash):

Add runtime flags to enable conic gradients.


  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeAngleOrPercent):

Helper, similar to consumeLengthOrPercent, for consumeGradientColorStops.
Corresponds to https://drafts.csswg.org/css-values-4/#typedef-angle-percentage


(WebCore::CSSPropertyParserHelpers::consumeGradientColorStops):

Convert to take CSSGradientValue by reference.


(WebCore::CSSPropertyParserHelpers::consumeAngularGradientColorStops):

Helper, similar to consumeGradientColorStops, but for angular color stops
used in conic gradients. Corresponds to https://www.w3.org/TR/css-images-4/#typedef-angular-color-stop-list
but does not yet support double position syntax.


(WebCore::CSSPropertyParserHelpers::consumeDeprecatedRadialGradient):
(WebCore::CSSPropertyParserHelpers::consumeRadialGradient):
(WebCore::CSSPropertyParserHelpers::consumeLinearGradient):

Pass CSSGradientValue by reference.


(WebCore::CSSPropertyParserHelpers::consumeConicGradient):

Parse conic gradient.


(WebCore::CSSPropertyParserHelpers::consumeGeneratedImage):

Dispatch to consumeConicGradient for repeating and non-repeating
conic gradients.


(WebCore::CSSPropertyParserHelpers::isGeneratedImage):

Put each value on its own line to make it more readable and add CSSValueConicGradient
and CSSValueRepeatingConicGradient.


  • page/Settings.yaml:


Add a setting to enable conic gradients. Disabled by default.

  • features.json:


Move conic gradients to "In Development".

LayoutTests:

  • http/wpt/css: Added.
  • http/wpt/css/css-images-4: Added.
  • http/wpt/css/css-images-4/conic-gradient-parsing-expected.txt: Added.
  • http/wpt/css/css-images-4/conic-gradient-parsing.html: Added.

Add tests for basic parsing of conic gradients.

2:08 PM Changeset in webkit [224164] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[Web Animations] Expose the currentTime property on Animation
https://bugs.webkit.org/show_bug.cgi?id=178988

Unreviewed.

Style fixes missed in previous patch.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::setCurrentTime):

1:22 PM Changeset in webkit [224163] by graouts@webkit.org
  • 5 edits
    2 adds in trunk

[Web Animations] Expose the currentTime property on Animation
https://bugs.webkit.org/show_bug.cgi?id=178988

Reviewed by Dean Jackson.

Source/WebCore:

We now expose the currentTime property on Animation objects, our first
step in implementing the Web Animations timing model, specifically section
3.5.4. "The current time of an animation" and section 3.5.5. "Setting the
current time of an animation". Setting the startTime has implications on
currentTime and vice-versa.

Test: webanimations/animation-current-time.html

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::setBindingsStartTime):
(WebCore::WebAnimation::startTime const):
(WebCore::WebAnimation::setStartTime):
(WebCore::WebAnimation::bindingsCurrentTime const):
(WebCore::WebAnimation::setBindingsCurrentTime):
(WebCore::WebAnimation::currentTime const):
(WebCore::WebAnimation::setCurrentTime):

  • animation/WebAnimation.h:
  • animation/WebAnimation.idl:

LayoutTests:

Add a new test that checks that the currentTime property is set
correctly based on the startTime value and the document timeline
currentTime, and that setting the property may raise an exception
and otherwise update the animation startTime.

  • webanimations/animation-current-time-expected.txt: Added.
  • webanimations/animation-current-time.html: Added.
11:24 AM WikiStart edited by l.gombos@samsung.com
(diff)
10:58 AM Changeset in webkit [224162] by jmarcell@apple.com
  • 2 edits in branches/safari-604-branch/LayoutTests

Cherry-pick r224139. rdar://problem/35143359

10:58 AM Changeset in webkit [224161] by jmarcell@apple.com
  • 2 edits in branches/safari-604-branch/Source/WebKit

Cherry-pick r224135. rdar://problem/35143359

10:58 AM Changeset in webkit [224160] by jmarcell@apple.com
  • 15 edits
    29 adds in branches/safari-604-branch

Cherry-pick r224134. rdar://problem/35143359

3:15 AM Changeset in webkit [224159] by rniwa@webkit.org
  • 5 edits in trunk/Source/WebCore

Assert that no script is executed during style recalc
https://bugs.webkit.org/show_bug.cgi?id=178845
<rdar://problem/35106129>

Reviewed by Antti Koivisto.

This patch adds NoEventDispatchAssertion to Document::updateStyle and Document::updateStyleIfNeeded
to make sure we don't start mutating DOM in the middle of a style update.

Added NoEventDispatchAssertion::EventAllowedScope for various places in SVGUseElement to update its
shadow tree since that happens while updating the style.

No new tests since there should be no behavioral change.

  • dom/Document.cpp:

(WebCore::Document::resolveStyle): Added NoEventDispatchAssertion while flushing pending stylesheets
and calling FrameView::willRecalcStyle, and while the style tree solver is in works. Also moved in
the code to update the selection and schedule to dispatch a fake mouse event into the same scope.
Also increment m_styleRecalcCount in the same code since post resolution callbacks could run author
scripts which in turn trigger another (recursive) style recalc.
(WebCore::Document::updateStyleIfNeeded): Put everything but the call to resolveStyle in a scope with
NoEventDispatchAssertion.

  • dom/Element.cpp:

(WebCore::Element::cloneElementWithChildren): Added NoEventDispatchAssertion::EventAllowedScope to the
newly cloned element for SVG use element's shadow tree.
(WebCore::Element::cloneElementWithoutChildren): Ditto.

  • dom/EventDispatcher.cpp:

(WebCore::EventDispatcher::dispatchEvent): Make the assertion more precise to workaround the fact SVG
use elements update its shadow tree in the middle of style updates. Also removed a redundant assertion
since the result of NoEventDispatchAssertion::isEventDispatchAllowedInSubtree cannot chance without
pushing or popoing the stack frame.

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::clearShadowTree):
(WebCore::SVGUseElement::updateShadowTree): Added NoEventDispatchAssertion to the user-agent shadow root
of a SVG use element. Since this is a newly created shadow tree which hasn't been exposed to author
scripts, it's safe to mutate them during the style recalc even though it's not the best design.
(WebCore::SVGUseElement::cloneTarget const): Ditto.
(WebCore::SVGUseElement::expandUseElementsInShadowTree const): Ditto.
(WebCore::SVGUseElement::expandSymbolElementsInShadowTree const): Ditto.
(WebCore::SVGUseElement::transferEventListenersToShadowTree const):

3:06 AM Changeset in webkit [224158] by dino@apple.com
  • 14 edits in trunk

createImageBitmap with HTMLCanvasElement
https://bugs.webkit.org/show_bug.cgi?id=178984
<rdar://problem/35238440>

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Update the expected results.

  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-sizeOverflow-expected.txt:
  • web-platform-tests/imagebitmap-renderingcontext/bitmaprenderer-as-imagesource-expected.txt:

Source/WebCore:

Implement createImageBitmap(HTMLCanvasElement).

While here, explicitly reject the promises for the
methods we haven't yet implemented. I was hoping this
would avoid a lengthy timeout in one of the imported
WPT tests but, alas, it doesn't. However, it's still
a good idea.

Extend internal WPT proposals to cover canvas creation.

  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::createPromise): Get the image from
the canvas and draw it into a new ImageBitmap buffer.

LayoutTests:

Exercise new creation method.

  • http/wpt/2dcontext/imagebitmap/common.js:

(create9x9CanvasWithTargetImage):

  • http/wpt/2dcontext/imagebitmap/createImageBitmap-expected.txt:
  • http/wpt/2dcontext/imagebitmap/createImageBitmap-sizing-expected.txt:
  • http/wpt/2dcontext/imagebitmap/createImageBitmap-sizing.html:
  • http/wpt/2dcontext/imagebitmap/createImageBitmap.html:
  • http/wpt/2dcontext/imagebitmap/drawImage-ImageBitmap-expected.txt:
  • http/wpt/2dcontext/imagebitmap/drawImage-ImageBitmap.html:

Oct 28, 2017:

10:31 PM Changeset in webkit [224157] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Make HTTPS WPT tests time out through testharness.js to get better error reports
https://bugs.webkit.org/show_bug.cgi?id=178982

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-28
Reviewed by Chris Dumez.

  • resources/testharnessreport.js: extending to tests run over HTTPS WPT port 9443.
8:02 PM Changeset in webkit [224156] by commit-queue@webkit.org
  • 74 edits
    1 copy
    4 moves
    287 adds
    26 deletes in trunk/LayoutTests

Rebase WPT tests up to a1c0107
https://bugs.webkit.org/show_bug.cgi?id=178589

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-28
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • resources/TestRepositories:
  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests: Updated.

LayoutTests:

  • TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-default-feature-policy.sub-expected.txt: Added.
7:45 PM Changeset in webkit [224155] by mmaxfield@apple.com
  • 6 edits
    3 deletes in trunk

[iOS] Unify Font::platformCharWidthInit() with macOS
https://bugs.webkit.org/show_bug.cgi?id=178951
<rdar://problem/7848198>

Reviewed by Zalan Bujtas.

Source/WebCore:

The only reason these codepaths are different is because historically this codepath
didn't work with GS fonts (which we don't use anymore).

Tests: fast/forms/search-styled.html

fast/forms/text-control-intrinsic-widths.html
fast/forms/textarea-width.html

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformCharWidthInit):

LayoutTests:

Updating expected results.

  • platform/ios-wk2/fast/forms/search-styled-expected.txt: Removed.
  • platform/ios-wk2/fast/forms/text-control-intrinsic-widths-expected.txt: Removed.
  • platform/ios-wk2/fast/forms/textarea-width-expected.txt: Removed.
  • platform/ios/fast/forms/search-styled-expected.txt:
  • platform/ios/fast/forms/text-control-intrinsic-widths-expected.txt:
  • platform/ios/fast/forms/textarea-width-expected.txt:
11:24 AM Changeset in webkit [224154] by weinig@apple.com
  • 9 edits
    1 move
    3 adds
    2 deletes in trunk/Source/WebKit

[Settings] Generate more of the WebKit preferences code
https://bugs.webkit.org/show_bug.cgi?id=178945

Reviewed by Chris Dumez.

Generate WebPreferencesKeys.{h,cpp} and WebPreferencesStoreDefaultsMap.cpp

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebKit.xcodeproj/project.pbxproj:
  • Scripts/GeneratePreferences.rb:


Generate new files.


  • Scripts/PreferencesTemplates/WebPreferencesDefinitions.h.erb:


Update include.


  • Scripts/PreferencesTemplates/WebPreferencesKeys.cpp.erb: Added.
  • Scripts/PreferencesTemplates/WebPreferencesKeys.h.erb: Added.
  • Scripts/PreferencesTemplates/WebPreferencesStoreDefaultsMap.cpp.erb: Added.

Add template files for new generated files.

  • Shared/WebPreferencesDefaultValues.h: Copied from Source/WebKit/Shared/WebPreferencesDefinitionsBase.h.
  • Shared/WebPreferencesDefinitionsBase.h:


Renamed WebPreferencesDefinitionsBase.h to WebPreferencesDefaultValues.h to better indicate what it is.


  • Shared/WebPreferencesKeys.cpp: Removed.
  • Shared/WebPreferencesKeys.h: Removed.


Replaced with generated versions.

  • Shared/WebPreferencesStore.cpp:

(WebKit::defaults): Deleted.

  • Shared/WebPreferencesStore.h:


Replace macro driven defaults map with generated WebPreferencesStoreDefaultsMap.cpp.

10:40 AM Changeset in webkit [224153] by Chris Dumez
  • 6 edits
    3 adds in trunk

self.ExtendableEvent / Client / Clients / WindowClient do not exist in a Service Worker
https://bugs.webkit.org/show_bug.cgi?id=178976

Reviewed by Sam Weinig.

Source/WebCore:

Test: http/tests/workers/service/ServiceWorkerGlobalScope-properties.html

  • workers/service/ExtendableEvent.idl:
  • workers/service/FetchEvent.idl:

Drop [Exposed=Worker] as there is already [Exposed=ServiceWorker] and
ServiceWorkerGlobalScope inherits from WorkerGlobalScope. This is redundant
and we would hit assertions and adding the global constructors at runtime
when the feature is enabled, because the property already exists.

Source/WebKit:

Actually enable the Service Worker RuntimeEnabledFeature in the Service Worker
WebProcess.

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::updatePreferences):

LayoutTests:

Add layout test coverage.

  • http/tests/workers/service/ServiceWorkerGlobalScope-properties-expected.txt: Added.
  • http/tests/workers/service/ServiceWorkerGlobalScope-properties.html: Added.
  • http/tests/workers/service/resources/ServiceWorkerGlobalScope-properties-worker.js: Added.
10:38 AM Changeset in webkit [224152] by Chris Dumez
  • 6 edits in trunk/LayoutTests

Update testharness.js to work around our lack of support for MessagePort in service workers
https://bugs.webkit.org/show_bug.cgi?id=178977

Reviewed by Sam Weinig.

Update testharness.js to work around our lack of support for MessagePort in service workers, similarly
to what was already done for Edge.

  • web-platform-tests/resources/testharness.js:
10:18 AM Changeset in webkit [224151] by Michael Catanzaro
  • 4 edits in trunk/Tools

[WPE] Build gst-plugins-base without pango support
https://bugs.webkit.org/show_bug.cgi?id=178918

Reviewed by Carlos Garcia Campos.

We need to build gst-plugins-base without pango support for WPE. Let's use JHBuild
conditions so we can make platform-specific changes in the shared GStreamer moduleset.

  • gstreamer/jhbuild.modules:
  • gtk/jhbuildrc:
  • wpe/jhbuildrc:
8:24 AM Changeset in webkit [224150] by Alan Bujtas
  • 34 edits
    2 adds in trunk/Source

[FrameView::layout cleanup] Move core layout logic to a separate class.
https://bugs.webkit.org/show_bug.cgi?id=178771
<rdar://problem/35166542>

Reviewed by Simon Fraser.

Move layout code out from FrameView to LayoutContext.

Source/WebCore:

LayoutContext holds all the layout related logic (scheduling, needsLayout, handling layout states),
while scrolling, view sizing methods stay in FrameView.
Having a dedicated LayoutContext allows to structure the code better.

Covered by existing tests.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AXObjectCache.cpp:

(WebCore::rendererNeedsDeferredUpdate):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::updateBackingStore):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::textUnderElement const):
(WebCore::AccessibilityRenderObject::layoutCount const):

  • dom/Document.cpp:

(WebCore::Document::setVisualUpdatesAllowed):
(WebCore::Document::resolveStyle):
(WebCore::Document::updateStyleIfNeeded):
(WebCore::Document::updateLayout):
(WebCore::Document::updateLayoutIfDimensionsOutOfDate):
(WebCore::Document::implicitClose):
(WebCore::Document::isLayoutTimerActive):

  • dom/Element.cpp:

(WebCore::Element::absoluteEventHandlerBounds):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setSelection):

  • html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::renderWidgetLoadingPlugin const):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::didAttachRenderers):

  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::update):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::stopForUserCancel):

  • page/Frame.cpp:

(WebCore::Frame::setView):
(WebCore::Frame::clearTimers):
(WebCore::Frame::setPageAndTextZoomFactors):
(WebCore::Frame::resumeActiveDOMObjectsAndAnimations):

  • page/FrameView.cpp:

(WebCore::FrameView::FrameView):
(WebCore::FrameView::~FrameView):
(WebCore::FrameView::reset):
(WebCore::FrameView::resetScrollbars):
(WebCore::FrameView::didFirstLayout const):
(WebCore::FrameView::willDestroyRenderTree):
(WebCore::FrameView::didDestroyRenderTree):
(WebCore::FrameView::setContentsSize):
(WebCore::FrameView::calculateScrollbarModesForLayout):
(WebCore::FrameView::updateCompositingLayersAfterStyleChange):
(WebCore::FrameView::topContentInsetDidChange):
(WebCore::FrameView::forceLayoutParentViewIfNeeded):
(WebCore::FrameView::adjustScrollbarsForLayout):
(WebCore::FrameView::willDoLayout): This takes care of the view related task right before entering render tree layout.
(WebCore::FrameView::didLayout): post layout tasks.
(WebCore::FrameView::shouldDeferScrollUpdateAfterContentSizeChange):
(WebCore::FrameView::updateLayoutViewport):
(WebCore::FrameView::maintainScrollPositionAtAnchor):
(WebCore::FrameView::updateLayerPositionsAfterScrolling):
(WebCore::FrameView::updateCompositingLayersAfterScrolling):
(WebCore::FrameView::availableContentSizeChanged):
(WebCore::FrameView::updateContentsSize):
(WebCore::FrameView::needsLayout const):
(WebCore::FrameView::setNeedsLayout):
(WebCore::FrameView::scheduleSelectionUpdate):
(WebCore::FrameView::updateEmbeddedObjects):
(WebCore::FrameView::flushAnyPendingPostLayoutTasks):
(WebCore::FrameView::flushPostLayoutTasksQueue):
(WebCore::FrameView::performPostLayoutTasks):
(WebCore::FrameView::sendResizeEventIfNeeded):
(WebCore::FrameView::autoSizeIfEnabled):
(WebCore::FrameView::paintControlTints):
(WebCore::FrameView::paintContents):
(WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):
(WebCore::FrameView::enableAutoSizeMode):
(WebCore::FrameView::forceLayout):
(WebCore::SubtreeLayoutStateMaintainer::SubtreeLayoutStateMaintainer): Deleted.
(WebCore::SubtreeLayoutStateMaintainer::~SubtreeLayoutStateMaintainer): Deleted.
(WebCore::SubtreeLayoutStateMaintainer::shouldDisableLayoutStateForSubtree): Deleted.
(): Deleted.
(WebCore::RenderTreeNeedsLayoutChecker::~RenderTreeNeedsLayoutChecker): Deleted.
(WebCore::applyTextSizingIfNeeded): Deleted.
(WebCore::FrameView::handleLayoutWithFrameFlatteningIfNeeded): Deleted.
(WebCore::FrameView::updateStyleForLayout): Deleted.
(WebCore::FrameView::canPerformLayout const): Deleted.
(WebCore::FrameView::layout): Deleted.
(WebCore::FrameView::runOrSchedulePostLayoutTasks): Deleted.
(WebCore::FrameView::convertSubtreeLayoutToFullLayout): Deleted.
(WebCore::FrameView::layoutTimerFired): Deleted.
(WebCore::FrameView::scheduleRelayout): Deleted.
(WebCore::isObjectAncestorContainerOf): Deleted.
(WebCore::FrameView::scheduleRelayoutOfSubtree): Deleted.
(WebCore::FrameView::layoutPending const): Deleted.
(WebCore::FrameView::unscheduleRelayout): Deleted.
(WebCore::FrameView::startLayoutAtMainFrameViewIfNeeded): Deleted.

  • page/FrameView.h:
  • page/LayoutContext.cpp: Added.

(WebCore::isObjectAncestorContainerOf):
(WebCore::SubtreeLayoutStateMaintainer::SubtreeLayoutStateMaintainer):
(WebCore::SubtreeLayoutStateMaintainer::~SubtreeLayoutStateMaintainer):
(WebCore::SubtreeLayoutStateMaintainer::shouldDisableLayoutStateForSubtree):
(WebCore::RenderTreeNeedsLayoutChecker::~RenderTreeNeedsLayoutChecker):
(WebCore::LayoutScope::LayoutScope):
(WebCore::LayoutScope::~LayoutScope):
(WebCore::LayoutContext::LayoutContext):
(WebCore::LayoutContext::layout):
(WebCore::LayoutContext::runOrScheduleAsynchronousTasks):
(WebCore::LayoutContext::runAsynchronousTasks):
(WebCore::LayoutContext::flushAsynchronousTasks):
(WebCore::LayoutContext::reset):
(WebCore::LayoutContext::needsLayout const):
(WebCore::LayoutContext::setNeedsLayout):
(WebCore::LayoutContext::enableSetNeedsLayout):
(WebCore::LayoutContext::disableSetNeedsLayout):
(WebCore::LayoutContext::scheduleLayout):
(WebCore::LayoutContext::unscheduleLayout):
(WebCore::LayoutContext::scheduleSubtreeLayout):
(WebCore::LayoutContext::layoutTimerFired):
(WebCore::LayoutContext::convertSubtreeLayoutToFullLayout):
(WebCore::LayoutContext::setSubtreeLayoutRoot):
(WebCore::LayoutContext::canPerformLayout const):
(WebCore::LayoutContext::applyTextSizingIfNeeded):
(WebCore::LayoutContext::updateStyleForLayout):
(WebCore::LayoutContext::handleLayoutWithFrameFlatteningIfNeeded):
(WebCore::LayoutContext::startLayoutAtMainFrameViewIfNeeded):
(WebCore::LayoutContext::frame const):
(WebCore::LayoutContext::view const):
(WebCore::LayoutContext::renderView const):
(WebCore::LayoutContext::document const):

  • page/LayoutContext.h: Added.

(WebCore::LayoutContext::startDisallowingLayout):
(WebCore::LayoutContext::endDisallowingLayout):
(WebCore::LayoutContext::layoutPhase const):
(WebCore::LayoutContext::isLayoutNested const):
(WebCore::LayoutContext::layoutCount const):
(WebCore::LayoutContext::isLayoutPending const):
(WebCore::LayoutContext::isInLayout const):
(WebCore::LayoutContext::isInRenderTreeLayout const):
(WebCore::LayoutContext::inPaintableState const):
(WebCore::LayoutContext::subtreeLayoutRoot const):
(WebCore::LayoutContext::clearSubtreeLayoutRoot):
(WebCore::LayoutContext::resetFirstLayoutFlag):
(WebCore::LayoutContext::didFirstLayout const):
(WebCore::LayoutContext::setNeedsFullRepaint):
(WebCore::LayoutContext::needsFullRepaint const):
(WebCore::LayoutContext::layoutDisallowed const):
(WebCore::LayoutContext::isLayoutSchedulingEnabled const):
(WebCore::LayoutContext::inAsynchronousTasks const):

  • page/Page.cpp:

(WebCore::Page::setPageScaleFactor):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::insertPositionedObject):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::imageChanged):
(WebCore::RenderBox::computeLogicalWidthInFragment const):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::clearSubtreeLayoutRootIfNeeded const):
(WebCore::RenderElement::checkForRepaintDuringLayout const):

  • rendering/RenderFrameBase.cpp:

(WebCore::RenderFrameBase::performLayoutWithFlattening):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollTo):

  • rendering/RenderObject.cpp:

(WebCore::scheduleRelayoutForSubtree):

  • rendering/RenderTreeAsText.cpp:

(WebCore::write):

  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::updatePlayer):

  • rendering/RenderView.h:
  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::updateWidgetPosition):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::draw):

  • testing/Internals.cpp:

(WebCore::Internals::layoutCount const):

Source/WebKitLegacy/mac:

  • WebView/WebClipView.mm:

(-[WebClipView _immediateScrollToPoint:]):

  • WebView/WebFrame.mm:

(-[WebFrame layoutCount]):

Source/WebKitLegacy/win:

  • WebFrame.cpp:

(WebFrame::layout):

7:51 AM Changeset in webkit [224149] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Make postprocess-framework-headers.sh a little easier to read
https://bugs.webkit.org/show_bug.cgi?id=178971

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-10-28
Reviewed by Sam Weinig.

  • mac/postprocess-framework-headers.sh:
7:36 AM Changeset in webkit [224148] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Cleanup PageDebuggable
https://bugs.webkit.org/show_bug.cgi?id=178972

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-10-28
Reviewed by Sam Weinig.

  • page/PageDebuggable.cpp:

(WebCore::PageDebuggable::PageDebuggable):

  • page/PageDebuggable.h:
7:35 AM Changeset in webkit [224147] by commit-queue@webkit.org
  • 13 edits
    1 copy in trunk/Source/WebCore

Extract a WorkerDebuggerProxy interface out of WorkerReportingProxy
https://bugs.webkit.org/show_bug.cgi?id=178975

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-10-28
Reviewed by Sam Weinig.

No new tests, just refactoring.

  • workers/WorkerDebuggerProxy.h:
  • workers/WorkerReportingProxy.h:
  • WebCore.xcodeproj/project.pbxproj:

Extract a method from WorkerReportingProxy to WorkerDebuggerProxy and
rename it to be more general.

  • inspector/WorkerToPageFrontendChannel.h:

(WebCore::WorkerToPageFrontendChannel::sendMessageToFrontend):

  • workers/DedicatedWorkerThread.cpp:

(WebCore::DedicatedWorkerThread::DedicatedWorkerThread):

  • workers/DedicatedWorkerThread.h:
  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
(WebCore::WorkerMessagingProxy::postMessageToDebugger):
(WebCore::WorkerMessagingProxy::postMessageToPageInspector): Deleted.

  • workers/WorkerMessagingProxy.h:
  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::WorkerThread):

  • workers/WorkerThread.h:

(WebCore::WorkerThread::workerDebuggerProxy const):

  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::ServiceWorkerThread):

  • workers/service/context/ServiceWorkerThread.h:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::create):
(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):
Include a WorkerDebuggerProxy alongside the other proxies.
Use the renamed debugger proxy method.

2:17 AM Changeset in webkit [224146] by rniwa@webkit.org
  • 7 edits in trunk/Source/WebCore

Style::Scope::flushPendingUpdate() can replace the entire document in XSLTProcessor::createDocumentFromSource
https://bugs.webkit.org/show_bug.cgi?id=178715
<rdar://problem/35144665>

Reviewed by Brent Fulgham.

Apply XLS tranforms when a 0s timer fires or the document finishes parsing or loading whichever comes first
instead of in the middle of collecting a list of stylesheets.

  • dom/Document.cpp:

(WebCore::Document::Document): Initialize the newly added timer.
(WebCore::Document::implicitClose): Apply any pending XSLT before we fire load events since some of the event
handlers may be expecting to see the document after XSLT had been applied.
(WebCore::Document::scheduleToApplyXSLTransforms): Added.
(WebCore::Document::applyPendingXSLTransformsNowIfScheduled): Added.
(WebCore::Document::applyPendingXSLTransformsTimerFired): Added. Moved the logic to apply XSL transforms from
Style::Scope::collectActiveStyleSheets, and merged applyXSLTransform into this function.
(WebCore::Document::applyXSLTransform): Deleted.
(WebCore::Document::finishedParsing): Apply XSLT right before updating the style. This is where used to apply
inline XSLT and it happens much earlier than implicitClose.
(WebCore::Document::suspendScheduledTasks): Suspend the XSLT timer.
(WebCore::Document::resumeScheduledTasks): Reschedule the XSLT timer if m_hasPendingXSLTransforms is set.

  • dom/Document.h:
  • dom/ProcessingInstruction.cpp:

(WebCore::ProcessingInstruction::checkStyleSheet): Schedule XSLT in the document instead of flushing pending
stylesheets, which would have synchronously applied XSLT. We can't apply XSLT synchronously here because this
function can be called from a non-script-resilient call stack.
(WebCore::ProcessingInstruction::sheetLoaded): Ditto.

  • style/StyleScope.cpp:

(WebCore::Style::Scope::collectXSLTransforms): Added.
(WebCore::Style::Scope::collectActiveStyleSheets): Removed the code to apply XSLT. Skip ProcessingInstructions
that applies XSLT. Also use RefPtr<StyleSheet> instead of a raw pointer to store StyleSheet.

  • style/StyleScope.h:
  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::XMLDocumentParser::doEnd): Apply any pending XSLTs synchronously here as the comment suggests.

Oct 27, 2017:

9:17 PM Changeset in webkit [224145] by jmarcell@apple.com
  • 2 edits in branches/safari-604-branch/Source/WebKit

Cherry-pick r222004. rdar://problem/35225406

9:17 PM Changeset in webkit [224144] by jmarcell@apple.com
  • 12 edits
    1 add in branches/safari-604-branch

Cherry-pick r221233. rdar://problem/35228663

8:49 PM Changeset in webkit [224143] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk/Tools

[Win] Detect Visual Studio 2017 location
https://bugs.webkit.org/show_bug.cgi?id=175275

Patch by Stephan Szabo <stephan.szabo@sony.com> on 2017-10-27
Reviewed by Per Arne Vollan.

  • Scripts/build-jsc:
  • Scripts/build-webkit:
  • Scripts/update-vswhere.py: Added.
  • Scripts/webkitdirs.pm:

(pickCurrentVisualStudioInstallation):
(pickLegacyVisualStudioInstallation):
(visualStudioInstallDir):
(visualStudioInstallDirVSWhere):
(visualStudioInstallDirLegacy):
(visualStudioInstallDirFallback):
(msBuildInstallDir):
(visualStudioVersion):
(visualStudioVersionFromInstallDir):
(generateBuildSystemFromCMakeProject):

6:58 PM Changeset in webkit [224142] by webkit@devinrousso.com
  • 18 edits in trunk

Web Inspector: Canvas Tab: no way to see backtrace of where a canvas context was created
https://bugs.webkit.org/show_bug.cgi?id=178799
<rdar://problem/35175805>

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/protocol/Canvas.json:

Add optional backtrace to Canvas type that is an array of Console.CallFrame.

Source/WebCore:

No new tests, updated existing tests.

  • inspector/InspectorCanvas.h:
  • inspector/InspectorCanvas.cpp:

(iterateCallFrames):
(WebCore::InspectorCanvas::buildObjectForCanvas):
(WebCore::InspectorCanvas::buildAction):

  • inspector/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::didCreateCanvasRenderingContext):
If the Canvas agent is enabled, generate a backtrace and send it to the frontend with the canvas.
We do not do this for canvases created before the agent is enabled for performance reasons.

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Models/Canvas.js:

(WI.Canvas.fromPayload):
(WI.Canvas.prototype.get backtrace):

  • UserInterface/Views/CanvasDetailsSidebarPanel.css:

(.sidebar > .panel.details.canvas .details-section.canvas-backtrace .call-frame):

  • UserInterface/Views/CanvasDetailsSidebarPanel.js:

(WI.CanvasDetailsSidebarPanel.prototype.initialLayout):
(WI.CanvasDetailsSidebarPanel.prototype.layout):
(WI.CanvasDetailsSidebarPanel.prototype._refreshBacktraceSection):

  • UserInterface/Views/ResourceIcons.css:

(.canvas > .icon):
(.canvas .icon): Deleted.

LayoutTests:

  • inspector/canvas/create-context-2d-expected.txt:
  • inspector/canvas/create-context-webgl-expected.txt:
  • inspector/canvas/create-context-webgl2-expected.txt:
  • inspector/canvas/create-context-webgpu-expected.txt:
  • inspector/canvas/resources/create-context-utilities.js:

(TestPage.registerInitializer.sanitizeURL):
(TestPage.registerInitializer.awaitCanvasAdded):
Pretty-print backtrace when canvases are added to the page.

6:48 PM Changeset in webkit [224141] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Tweak ES6 generator function to allow inlining
https://bugs.webkit.org/show_bug.cgi?id=178935

Reviewed by Saam Barati.

We optimize builtins' generator helper functions to allow them inlined in the caller side.
This patch adjust the layer between @generatorResume, next(), throw(), and return() to allow
them inlined in DFG.

baseline patched

spread-generator.es6 301.2637+-11.1011 260.5905+-14.2258 definitely 1.1561x faster
generator.es6 269.6030+-13.2435 148.8840+-6.7614 definitely 1.8108x faster

  • builtins/GeneratorPrototype.js:

(globalPrivate.generatorResume):
(next):
(return):
(throw):

6:39 PM Changeset in webkit [224140] by webkit@devinrousso.com
  • 2 edits in trunk/Tools

Create watchlist for files related WebInspector Recording
https://bugs.webkit.org/show_bug.cgi?id=178965

Reviewed by Joseph Pecoraro.

  • Scripts/webkitpy/common/config/watchlist:
6:05 PM Changeset in webkit [224139] by dbates@webkit.org
  • 2 edits in trunk/LayoutTests

Skip test http/tests/security/mixedContent/insecure-download-redirects-to-basic-auth-secure-download.https.html on OS X El Capitan

For now skip this test that was added in r224134 on OS X El Capitan. OS X El Capitan uses the
legacy NSURLDownload code path for downloads. This code path is not happy with the self-signed
certificate we use when running HTTPS tests. See <https://bugs.webkit.org/show_bug.cgi?id=155132>
for more details.

  • platform/mac-elcapitan/TestExpectations:
6:03 PM Changeset in webkit [224138] by sbarati@apple.com
  • 15 edits in trunk/Source/JavaScriptCore

Bytecode liveness should live on UnlinkedCodeBlock so it can be shared amongst CodeBlocks
https://bugs.webkit.org/show_bug.cgi?id=178949

Reviewed by Keith Miller.

This patch stores BytecodeLiveness on UnlinkedCodeBlock instead of CodeBlock
so that we don't need to recompute liveness for the same UnlinkedCodeBlock
more than once. To do this, this patch solidifies the invariant that CodeBlock
linking can't do anything that would change the result of liveness. For example,
it can't introduce new locals. This invariant was met my JSC before, because we
didn't do anything in bytecode linking that would change liveness. However, it is
now a correctness requirement that we don't do anything that would change the
result of running liveness. To support this change, I've refactored BytecodeGraph
to not be tied to a CodeBlockType*. Things that perform liveness will pass in
CodeBlockType* and the instruction stream as needed. This means that we may
compute liveness with one CodeBlock*'s instruction stream, and then perform
queries on that analysis with a different CodeBlock*'s instruction stream.

This seems to be a 2% JSBench progression.

  • bytecode/BytecodeGeneratorification.cpp:

(JSC::BytecodeGeneratorification::BytecodeGeneratorification):
(JSC::BytecodeGeneratorification::graph):
(JSC::BytecodeGeneratorification::storageForGeneratorLocal):
(JSC::GeneratorLivenessAnalysis::run):
(JSC::BytecodeGeneratorification::run):

  • bytecode/BytecodeGraph.h:

(JSC::BytecodeGraph::BytecodeGraph):
(JSC::BytecodeGraph::codeBlock const): Deleted.
(JSC::BytecodeGraph::instructions): Deleted.
(JSC::BytecodeGraph<Block>::BytecodeGraph): Deleted.

  • bytecode/BytecodeLivenessAnalysis.cpp:

(JSC::BytecodeLivenessAnalysis::BytecodeLivenessAnalysis):
(JSC::BytecodeLivenessAnalysis::getLivenessInfoAtBytecodeOffset):
(JSC::BytecodeLivenessAnalysis::computeFullLiveness):
(JSC::BytecodeLivenessAnalysis::computeKills):
(JSC::BytecodeLivenessAnalysis::dumpResults):
(JSC::BytecodeLivenessAnalysis::operandIsLiveAtBytecodeOffset): Deleted.
(JSC::BytecodeLivenessAnalysis::compute): Deleted.

  • bytecode/BytecodeLivenessAnalysis.h:
  • bytecode/BytecodeLivenessAnalysisInlines.h:

(JSC::BytecodeLivenessPropagation::stepOverInstruction):
(JSC::BytecodeLivenessPropagation::computeLocalLivenessForBytecodeOffset):
(JSC::BytecodeLivenessPropagation::computeLocalLivenessForBlock):
(JSC::BytecodeLivenessPropagation::getLivenessInfoAtBytecodeOffset):
(JSC::BytecodeLivenessPropagation::runLivenessFixpoint):

  • bytecode/BytecodeRewriter.cpp:

(JSC::BytecodeRewriter::applyModification):
(JSC::BytecodeRewriter::execute):
(JSC::BytecodeRewriter::adjustJumpTargetsInFragment):

  • bytecode/BytecodeRewriter.h:

(JSC::BytecodeRewriter::BytecodeRewriter):
(JSC::BytecodeRewriter::removeBytecode):
(JSC::BytecodeRewriter::graph):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::ensureCatchLivenessIsComputedForBytecodeOffsetSlow):
(JSC::CodeBlock::validate):
(JSC::CodeBlock::livenessAnalysisSlow): Deleted.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::livenessAnalysis):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::applyModification):
(JSC::UnlinkedCodeBlock::livenessAnalysisSlow):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::livenessAnalysis):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::livenessFor):
(JSC::DFG::Graph::killsFor):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::cleanMustHandleValuesIfNecessary):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

5:09 PM Changeset in webkit [224137] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk/Source/WTF

[WinCairo] Add WTF files for wincairo webkit
https://bugs.webkit.org/show_bug.cgi?id=176894

Patch by Yousuke Kimoto <yousuke.kimoto@sony.com> on 2017-10-27
Reviewed by Alex Christensen.

  • wtf/PlatformWin.cmake:
  • wtf/WorkQueue.cpp:
  • wtf/WorkQueue.h:
  • wtf/win/Win32Handle.h:
  • wtf/win/WorkItemContext.cpp: Added.

(WTF::WorkItemContext::WorkItemContext):
(WTF::WorkItemContext::create):
(WTF::WorkItemContext::~WorkItemContext):

  • wtf/win/WorkItemContext.h: Added.

(WTF::WorkItemContext::handle):
(WTF::WorkItemContext::waitHandle):
(WTF::WorkItemContext::Function<void):
(WTF::WorkItemContext::queue const):

  • wtf/win/WorkQueueWin.cpp:

(WTF::WorkQueue::handleCallback):
(WTF::WorkQueue::registerHandle):
(WTF::WorkQueue::unregisterAndCloseHandle):
(WTF::WorkQueue::unregisterWaitAndDestroyItemSoon):
(WTF::WorkQueue::unregisterWaitAndDestroyItemCallback):

4:45 PM Changeset in webkit [224136] by keith_miller@apple.com
  • 7 edits
    1 move in trunk/Source

Add unified source list files and build scripts to Xcode project navigator
https://bugs.webkit.org/show_bug.cgi?id=178959

Reviewed by Andy Estes.

Source/JavaScriptCore:

Also, Add some extra source files for so new .cpp/.mm files don't cause the build
to fail right away. We already do this in WebCore.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • PlatformMac.cmake:
  • SourcesCocoa.txt: Renamed from Source/JavaScriptCore/SourcesMac.txt.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
4:40 PM Changeset in webkit [224135] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

Attempt to fix the Apple El Capitan build following <https://trac.webkit.org/changeset/224134>
(https://bugs.webkit.org/show_bug.cgi?id=178919)

Move definition of NetworkLoad::isAllowedToAskUserForCredentials() outside of USE(NETWORK_SESSION)-guarded section.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::isAllowedToAskUserForCredentials const):

3:31 PM Changeset in webkit [224134] by dbates@webkit.org
  • 16 edits
    29 adds in trunk

Only allow non-mixed content protected subresources to ask for credentials
https://bugs.webkit.org/show_bug.cgi?id=178919
<rdar://problem/35015245>

Reviewed by Alex Christensen.

Source/WebCore:

Only allow non-mixed content protected subresources to ask for credentials. It is not meaningful
to allow protected mixed-content subresources to ask for credentials.

Tests: http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image.html

http/tests/security/mixedContent/insecure-script-redirects-to-basic-auth-secure-script.html
http/tests/security/mixedContent/insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet.html
http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image.https.html
http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image.https.html
http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https.html

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::ResourceLoader): Initialize m_canAskClientForCredentials based on the
specified resource loader options.
(WebCore::ResourceLoader::init): Update m_canAskClientForCredentials based on the URL of the initial
request.
(WebCore::ResourceLoader::isMixedContent const): Helper function to check if the specified URL
represents a mixed content resource.
(WebCore::ResourceLoader::willSendRequestInternal): If the original request or the redirect request
is mixed content then update state such that we will disallow asking for credentials.
(WebCore::ResourceLoader::isAllowedToAskUserForCredentials const): Modified to use m_canAskClientForCredentials
when determining whether the request is allowed to ask for credentials.

  • loader/ResourceLoader.h:

Source/WebKit:

Only allow non-mixed content protected subresources to ask for credentials. It is not meaningful
to allow protected mixed-content subresources to ask for credentials.

  • NetworkProcess/Downloads/PendingDownload.cpp:

(WebKit::PendingDownload::PendingDownload): Initialize m_isAllowedToAskUserForCredentials based on
the specified resource load parameters or NetworkLoad object.

  • NetworkProcess/Downloads/PendingDownload.h: Add override for NetworkLoadClient::isAllowedToAskUserForCredentials().
  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::isAllowedToAskUserForCredentials const): Added.
(WebKit::NetworkLoad::completeAuthenticationChallenge): Ask NetworkLoadClient whether the load is
allowed to prompt for credentials.
(WebKit::NetworkLoad::didReceiveAuthenticationChallenge): Ditto.

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkLoadClient.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::NetworkResourceLoader): Initialize m_isAllowedToAskUserForCredentials
based on the specified resource load parameters.
(WebKit::NetworkResourceLoader::willSendRedirectedRequest): We do not support prompting for credentials
for synchronous loads.
(WebKit::NetworkResourceLoader::continueWillSendRequest): Modified to take an argument as to whether the
load is allowed to ask the user for credentials and updates state.

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/NetworkResourceLoader.messages.in: Modified message ContinueWillSendRequest to take a

boolean as to whether the load is allowed to ask the user for credentials.

  • NetworkProcess/PreconnectTask.h: Override NetworkLoadClient::isAllowedToAskUserForCredentials()

such that we never ask for credentials. This matches our current behavior.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h: Ditto.
  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::willSendRequest): Query ResourceLoader as to whether the load is allowed to
ask the user for credentials and pass this state to NetworkResourceLoader.

LayoutTests:

  • http/tests/security/mixedContent/insecure-download-redirects-to-basic-auth-secure-download.https-expected.txt: Added.
  • http/tests/security/mixedContent/insecure-download-redirects-to-basic-auth-secure-download.https.html: Added.
  • http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-expected.txt: Added.
  • http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image.html: Added.
  • http/tests/security/mixedContent/insecure-script-redirects-to-basic-auth-secure-script-expected.https.txt: Added.
  • http/tests/security/mixedContent/insecure-script-redirects-to-basic-auth-secure-script-expected.txt: Added.
  • http/tests/security/mixedContent/insecure-script-redirects-to-basic-auth-secure-script.html: Added.
  • http/tests/security/mixedContent/insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet-expected.txt: Added.
  • http/tests/security/mixedContent/insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet.html: Added.
  • http/tests/security/mixedContent/resources/frame-with-insecure-image-redirects-to-basic-auth-secure-image.html: Added.
  • http/tests/security/mixedContent/resources/frame-with-insecure-script-redirects-to-basic-auth-secure-script.html: Added.
  • http/tests/security/mixedContent/resources/frame-with-insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet.html: Added.
  • http/tests/security/mixedContent/resources/frame-with-programmatically-added-insecure-image-redirects-to-basic-auth-secure-image.html: Added.
  • http/tests/security/mixedContent/resources/subresource/protected-image.php: Added.
  • http/tests/security/mixedContent/resources/subresource/protected-pdf.php: Added.
  • http/tests/security/mixedContent/resources/subresource/protected-script.php: Added.
  • http/tests/security/mixedContent/resources/subresource/protected-stylesheet.php: Added.
  • http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image.https-expected.txt: Added.
  • http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image.https.html: Added.
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image.https-expected.txt: Added.
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image.https.html: Added.
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https-expected.txt: Added.
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https.html: Added.
  • platform/ios-wk1/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https-expected.txt: Added.
  • platform/mac-wk1/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https-expected.txt: Added.
  • platform/win/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https-expected.txt: Added.
3:28 PM Changeset in webkit [224133] by dbates@webkit.org
  • 5 edits
    13 adds in trunk/LayoutTests

Add tests for automatic decompression of gzip-compressed subresources
https://bugs.webkit.org/show_bug.cgi?id=178941
<rdar://problem/35230090>

Reviewed by Alex Christensen.

Although automatic decompression of gzip-compressed subresources is handled by CFNetwork
(<rdar://problem/5418646>) we should add tests to ensure that WebKit does not inadvertently
opt out of such functionality and to catch a regression in CFNetwork.

  • TestExpectations: Skip the tests on all platforms. We will unskip on Cocoa platforms and Apple Windows.
  • http/tests/gzip-content-encoding/gzip-encoded-script-expected.txt: Added.
  • http/tests/gzip-content-encoding/gzip-encoded-script.html: Added.
  • http/tests/gzip-content-encoding/gzip-encoded-script2-expected.txt: Added.
  • http/tests/gzip-content-encoding/gzip-encoded-script2.html: Added.
  • http/tests/gzip-content-encoding/gzip-encoded-stylesheet-expected.html: Added.
  • http/tests/gzip-content-encoding/gzip-encoded-stylesheet.html: Added.
  • http/tests/gzip-content-encoding/gzip-encoded-stylesheet2-expected.html: Added.
  • http/tests/gzip-content-encoding/gzip-encoded-stylesheet2.html: Added.
  • http/tests/gzip-content-encoding/resources/echo-data-encoding-with-gzip.php: Added.
  • http/tests/gzip-content-encoding/resources/script.js.gz: Added.
  • http/tests/gzip-content-encoding/resources/stylesheet.css.gz: Added.
  • platform/ios/TestExpectations: Unskip tests.
  • platform/mac/TestExpectations: Ditto.
  • platform/win/TestExpectations: Ditto.
2:43 PM Changeset in webkit [224132] by Chris Dumez
  • 12 edits
    189 adds in trunk

Unskip more Service Workers tests
https://bugs.webkit.org/show_bug.cgi?id=178944

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Land expected results for tests that have been unskipped.

  • web-platform-tests/service-workers/cache-storage/serviceworker/credentials.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/extendable-message-event.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/postmessage.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/registration-attribute.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/service-worker-error-event.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/unregister.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/update.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/activate-event-after-install-state-change.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/activation-after-registration.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/activation.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/active.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/appcache-ordering-main.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/claim-affect-other-registration.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/claim-fetch.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/claim-not-using-registration.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/claim-using-registration.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/claim-with-redirect.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/claim-worker-fetch.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/client-id.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/client-navigate.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/clients-get-client-types.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/clients-get-cross-origin.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/clients-get.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/clients-matchall-exact-controller.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/clients-matchall-include-uncontrolled.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/clients-matchall-order.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/clients-matchall.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/controller-on-disconnect.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/controller-on-load.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/controller-on-reload.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/extendable-event-async-waituntil.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/extendable-event-waituntil.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-csp.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-event-after-navigation-within-page.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-event-network-error.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-event-redirect.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-event-referrer-policy.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-event-respond-with-argument.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-event-respond-with-readable-stream.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-event-respond-with-response-body-with-invalid-chunk.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-event-respond-with-stops-propagation.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-event-throws-after-respond-with.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-event-within-sw-manual.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-event-within-sw.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-frame-resource.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-header-visibility.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-request-css-base-url.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-request-css-cross-origin-mime-check.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-request-css-images.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-request-fallback.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-request-html-imports.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-request-no-freshness-headers.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-request-redirect.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-request-resources.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-request-xhr-sync.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-request-xhr.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-response-xhr.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-waits-for-activate.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/foreign-fetch-cors.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/getregistration.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/getregistrations.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/immutable-prototype-serviceworker.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/import-scripts-resource-map.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/import-scripts-updated-flag.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/indexeddb.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/install-event-type.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/installing.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/interfaces-window.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/invalid-blobtype.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/invalid-header.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/iso-latin1-header.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/multi-globals/url-parsing.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/multiple-register.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/multiple-update.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/navigate-window.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/navigation-preload/broken-chunked-encoding.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/navigation-preload/chunked-encoding.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/navigation-preload/empty-preload-response-body.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/navigation-preload/get-state.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/navigation-preload/redirect.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/navigation-preload/request-headers.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/navigation-preload/resource-timing.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/navigation-redirect-body.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/navigation-redirect.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/onactivate-script-error.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/oninstall-script-error.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/opaque-response-preloaded.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/postmessage-blob-url.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/postmessage-from-waiting-serviceworker.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/postmessage-msgport-to-client.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/postmessage-to-client.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/postmessage.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/ready.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/redirected-response.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/referer.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/referrer-policy-header.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/register-closed-window.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/register-default-scope.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/register-link-header.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/register-wait-forever-in-install-worker.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/registration-basic.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/registration-end-to-end.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/registration-events.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/registration-iframe.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/registration-mime-types.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/registration-scope.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/registration-script-url.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/registration-script.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/registration-security-error.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/registration-service-worker-attributes.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/registration-updateviacache.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/rejections.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/request-body-blob.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/request-end-to-end.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/resource-timing.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/serviceworker-message-event-historical.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/serviceworkerobject-scripturl.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/shared-worker-controlled.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/skip-waiting-installed.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/skip-waiting-using-registration.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/skip-waiting-without-using-registration.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/skip-waiting.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/state.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/synced-state.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/uncontrolled-page.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/unregister-controller.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/unregister-then-register-new-script.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/unregister-then-register.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/unregister.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/update-after-navigation-fetch-event.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/update-after-oneday.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/update-recovery.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/update.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/websocket.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/windowclient-navigate.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/worker-interception.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/xhr.https-expected.txt: Added.
  • web-platform-tests/service-workers/stub-3.1-service-worker-obj-expected.txt: Added.
  • web-platform-tests/service-workers/stub-3.1.1-service-worker-scope-expected.txt: Added.
  • web-platform-tests/service-workers/stub-3.1.2-service-worker-url-expected.txt: Added.
  • web-platform-tests/service-workers/stub-3.1.3-service-worker-state-expected.txt: Added.
  • web-platform-tests/service-workers/stub-3.1.4-service-worker-on-state-change-expected.txt: Added.
  • web-platform-tests/service-workers/stub-3.2-navigator-service-worker-expected.txt: Added.
  • web-platform-tests/service-workers/stub-3.2.1-navigator-service-worker-installing-expected.txt: Added.
  • web-platform-tests/service-workers/stub-3.2.10-navigator-service-worker-oncontrollerchange-expected.txt: Added.
  • web-platform-tests/service-workers/stub-3.2.11-navigator-service-worker-onreloadpage-expected.txt: Added.
  • web-platform-tests/service-workers/stub-3.2.12-navigator-service-worker-onerror-expected.txt: Added.
  • web-platform-tests/service-workers/stub-3.2.2-navigator-service-worker-waiting-expected.txt: Added.
  • web-platform-tests/service-workers/stub-3.2.3-navigator-service-worker-active-expected.txt: Added.
  • web-platform-tests/service-workers/stub-3.2.4-navigator-service-worker-controller-expected.txt: Added.
  • web-platform-tests/service-workers/stub-3.2.5-navigator-service-worker-ready-expected.txt: Added.
  • web-platform-tests/service-workers/stub-3.2.6-navigator-service-worker-getAll-expected.txt: Added.
  • web-platform-tests/service-workers/stub-3.2.7-navigator-service-worker-register-expected.txt: Added.
  • web-platform-tests/service-workers/stub-3.2.8-navigator-service-worker-unregister-expected.txt: Added.
  • web-platform-tests/service-workers/stub-3.2.9-navigator-service-worker-onupdatefound-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.1-service-worker-global-scope-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.1.1-service-worker-global-scope-caches-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.1.2-service-worker-global-scope-clients-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.1.3-service-worker-global-scope-scope-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.1.4-service-worker-global-scope-fetch-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.1.5-service-worker-global-scope-update-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.1.6-service-worker-global-scope-unregister-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.1.7-service-worker-global-scope-onmessage-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.2-client-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.3-service-worker-clients-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.3.1-get-serviced-method-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.3.2-reloadall-method-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.4-request-objects-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.5-response-objects-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.5.2-response-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.5.4-opaque-response-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.6-cache-objects-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.6.1-cache-lifetimes-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.7.1-install-phase-event-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.7.1.1-wait-until-method-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.7.2-install-event-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.7.2.1-install-event-section-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.7.2.2-replace-method-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.7.3-activate-event-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.7.4.1-fetch-event-section-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.7.4.2-respond-with-method-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.7.4.3-default-method-expected.txt: Added.
  • web-platform-tests/service-workers/stub-4.7.4.4-is-reload-attribute-expected.txt: Added.
  • web-platform-tests/service-workers/stub-5.1-origin-relativity-expected.txt: Added.
  • web-platform-tests/service-workers/stub-5.2-cross-origin-resources-expected.txt: Added.

Source/WebCore:

Drop bad assertion that was causing the Service Worker WebProcess to crash and causing
tests to fail as a result.

  • workers/service/ServiceWorkerGlobalScope.cpp:

(WebCore::ServiceWorkerGlobalScope::registration):

  • workers/service/ServiceWorkerGlobalScope.h:

LayoutTests:

Unskip all Service Workers tests except for the 39 that are timing out.

2:35 PM Changeset in webkit [224131] by Ryan Haddad
  • 5 edits in trunk/Source/WebCore

Unreviewed, rolling out r224011.

xsl LayoutTests hit an assertion added with this change since
r223999 was rolled out.

Reverted changeset:

"Assert that no script is executed during style recalc"
https://bugs.webkit.org/show_bug.cgi?id=178845
https://trac.webkit.org/changeset/224011

2:30 PM Changeset in webkit [224130] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Adjusted expectations for fast/scrolling/arrow-key-scroll-in-rtl-document.html.
https://bugs.webkit.org/show_bug.cgi?id=173779

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:48 PM Changeset in webkit [224129] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Adjusted expectations for multiple media/ Layout Tests.
https://bugs.webkit.org/show_bug.cgi?id=176054

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:29 PM Changeset in webkit [224128] by graouts@webkit.org
  • 8 edits
    2 adds in trunk

[Web Animations] Expose the currentTime property on AnimationTimeline
https://bugs.webkit.org/show_bug.cgi?id=178928

Reviewed by Dean Jackson.

Source/WebCore:

We add the currentTime property on AnimationTimeline and add an internals method
to set it in a test which will allow us to validate the timing model state for
a given time.

Test: webanimations/timeline-current-time.html

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::bindingsCurrentTime const):
(WebCore::AnimationTimeline::setCurrentTime):

  • animation/AnimationTimeline.h:

(WebCore::AnimationTimeline::currentTime const):

  • animation/AnimationTimeline.idl:
  • testing/Internals.cpp:

(WebCore::Internals::setTimelineCurrentTime):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

Add a new test that checks we can read the document's timeline currentTime
property and set it via the internals method.

  • webanimations/timeline-current-time-expected.txt: Added.
  • webanimations/timeline-current-time.html: Added.
1:17 PM Changeset in webkit [224127] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

[Web Animations] Use Seconds vs. MonotonicTime to represent times
https://bugs.webkit.org/show_bug.cgi?id=178950

Reviewed by Dean Jackson.

Animation start times, all expressed in seconds, in the Web Animations API are relative to the timeline
originTime, itself relative to the page's nagigation time (Performance.navigationTime), so it makes more
sense to use Seconds to represent them as opposed to a MonotonicTime.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::bindingsStartTime const):
(WebCore::WebAnimation::setBindingsStartTime):

  • animation/WebAnimation.h:
1:09 PM Changeset in webkit [224126] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip two tests that are flaky crashes.
https://bugs.webkit.org/show_bug.cgi?id=177828

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
12:56 PM Changeset in webkit [224125] by Chris Dumez
  • 4 edits
    2 adds in trunk

DOMWindow::dispatchEvent() does not reset the event's dispatch flag
https://bugs.webkit.org/show_bug.cgi?id=178897

Reviewed by Darin Adler.

Source/WebCore:

Make sure we reset the currentTarget, dispatch flag, phase and propagation flags
after dispatching an event on a Window, as per:

This behavior is consistent with Firefox.

Test: fast/events/window-load-initEvent.html

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::dispatchEvent):

LayoutTests:

Add layout test coverage. I have verified that this test is passing in Firefox.

  • fast/events/window-load-initEvent-expected.txt: Added.
  • fast/events/window-load-initEvent.html: Added.
12:10 PM Changeset in webkit [224124] by Jonathan Bedard
  • 2 edits in trunk/Tools

Windows and WebViews are retained after re-configure
https://bugs.webkit.org/show_bug.cgi?id=178902
<rdar://problem/35211518>

Reviewed by Alexey Proskuryakov.

The test runner effectively leaks windows every time a test changes configuration.
We give each test it's own AutoreleasePool to fix this problem.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::runTest): Add an AutoRelease pool scoping a test run
so that when a configuration changes, the old window and WebView are released.

11:56 AM Changeset in webkit [224123] by keith_miller@apple.com
  • 7 edits in trunk/Source/WebCore

Move iOS specific sources to unified sources
https://bugs.webkit.org/show_bug.cgi?id=178915

Rubber-stamped by Tim Horton.

Source/WebCore:

  • SourcesCocoa.txt:
  • SourcesIOS.txt:
  • SourcesMac.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebCore/PAL:

  • pal/spi/cocoa/QuartzCoreSPI.h: Add missing pragma once.
11:42 AM Changeset in webkit [224122] by jfbastien@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

WebAssembly: update arbitrary limits to what browsers use
https://bugs.webkit.org/show_bug.cgi?id=178946
<rdar://problem/34257412>
<rdar://problem/34501154>

Reviewed by Saam Barati.

https://github.com/WebAssembly/design/issues/1138 discusses the
arbitrary function size limit, which it turns out Chrome and
Firefox didn't enforce. We didn't use it because it was
ridiculously low and actual programs ran into that limit (bummer
for Edge which just shipped it...). Now that we agree on a high
arbitrary program limit, let's update it! While I'm doing this
there are a few other spots that I polished to use Checked or
better check limits overall.

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addLocal):

  • wasm/WasmFormat.cpp:

(JSC::Wasm::Segment::create):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parse):

  • wasm/WasmInstance.cpp:
  • wasm/WasmLimits.h:
  • wasm/WasmModuleParser.cpp:

(JSC::Wasm::ModuleParser::parseGlobal):
(JSC::Wasm::ModuleParser::parseCode):
(JSC::Wasm::ModuleParser::parseData):

  • wasm/WasmSignature.h:

(JSC::Wasm::Signature::allocatedSize):

  • wasm/WasmTable.cpp:

(JSC::Wasm::Table::Table):

  • wasm/js/JSWebAssemblyTable.cpp:

(JSC::JSWebAssemblyTable::JSWebAssemblyTable):
(JSC::JSWebAssemblyTable::grow):

11:38 AM Changeset in webkit [224121] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

NowPlayingInfo should contain a unique identifier
https://bugs.webkit.org/show_bug.cgi?id=178872
<rdar://problem/34924012>

Unreviewed, build fix.

  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::updateNowPlayingInfo): Call string.impl().hash() instead of
string.existingHash() because the later will assert in a debug build if the hash hasn't
been calculated yet.

  • platform/audio/mac/MediaSessionManagerMac.mm:

(WebCore::MediaSessionManagerMac::updateNowPlayingInfo): Ditto.

10:48 AM Changeset in webkit [224120] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Move TestExpectation for imported/w3c/web-platform-tests/XMLHttpRequest/open-url-worker-origin.htm.
https://bugs.webkit.org/show_bug.cgi?id=178190

Unreviewed test gardening.

10:39 AM Changeset in webkit [224119] by achristensen@apple.com
  • 3 edits in trunk/Source/WebCore

Fix accessibility/mac/aria-label-on-label-element.html after r224074
https://bugs.webkit.org/show_bug.cgi?id=178892

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::titleElementText const):
(WebCore::AccessibilityNodeObject::ariaLabeledByText const):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityText::AccessibilityText):
Turns out my null checks changed behavior. This undoes them.

10:33 AM Changeset in webkit [224118] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[GTK][CMake] Incorrect conditional check when adding build dir to GIR runtime library path
https://bugs.webkit.org/show_bug.cgi?id=178936

Reviewed by Michael Catanzaro.

  • PlatformGTK.cmake: Fix spelling of variable used in conditional.
10:16 AM Changeset in webkit [224117] by eric.carlson@apple.com
  • 2 edits in trunk/Tools

NowPlayingInfo should contain a unique identifier
https://bugs.webkit.org/show_bug.cgi?id=178872
<rdar://problem/34924012>

Unreviewed, fix a flakey test.

  • TestWebKitAPI/Tests/WebKitCocoa/NowPlayingControlsTests.mm:

(-[NowPlayingTestWebView hasActiveNowPlayingSession]): Update _lastUpdatedElapsedTime.
(-[NowPlayingTestWebView _handleActiveNowPlayingSessionInfoResponse:title:duration:elapsedTime:]): Deleted.

10:06 AM Changeset in webkit [224116] by Ryan Haddad
  • 7 edits in trunk/Source/WebCore

Unreviewed, rolling out r223999.

Caused xsl LayoutTest flakiness.

Reverted changeset:

"Style::Scope::flushPendingUpdate() can replace the entire
document in XSLTProcessor::createDocumentFromSource"
https://bugs.webkit.org/show_bug.cgi?id=178715
https://trac.webkit.org/changeset/223999

9:49 AM Changeset in webkit [224115] by Chris Dumez
  • 8 edits in trunk/Source/WebCore

Audit init*Event() method to make sure they reset internal data members
https://bugs.webkit.org/show_bug.cgi?id=178886

Reviewed by Ryosuke Niwa.

Audit init*Event() method to make sure they reset internal data members.

  • dom/Event.cpp:

(WebCore::Event::initEvent):

  • dom/KeyboardEvent.cpp:

(WebCore::KeyboardEvent::initKeyboardEvent):

  • dom/MessageEvent.cpp:

(WebCore::MessageEvent::initMessageEvent):

  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::initMouseEvent):

  • dom/MouseRelatedEvent.h:

(WebCore::MouseRelatedEvent::setIsSimulated):

  • dom/TextEvent.cpp:

(WebCore::TextEvent::initTextEvent):

  • dom/WheelEvent.cpp:

(WebCore::WheelEvent::initWheelEvent):

9:38 AM Changeset in webkit [224114] by Ryan Haddad
  • 2 edits in trunk/Tools

autoinstall can't download from http://pypi.python.org
https://bugs.webkit.org/show_bug.cgi?id=178925

Patch by Fujii Hironori <Fujii Hironori> on 2017-10-27
Reviewed by Ryosuke Niwa.

The web server pypi.python.org rejects non secure http.

  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook._install_mechanize): Use https instead of http.
(AutoinstallImportHook._install_pep8): Ditto.
(AutoinstallImportHook._install_pylint): Ditto.
(AutoinstallImportHook._install_buildbot): Ditto.
(AutoinstallImportHook._install_coverage): Ditto.

9:35 AM Changeset in webkit [224113] by Chris Dumez
  • 38 edits
    1 copy in trunk

Add initial support for serviceWorkerClient.postMessage()
https://bugs.webkit.org/show_bug.cgi?id=178794

Reviewed by Youenn Fablet.

Source/WebCore:

Add initial support for serviceWorkerClient.postMessage():

It is now possible to do bi-directional communication with a service worker
via postMessage().

No new tests, updated existing test.

  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::generateDocumentIdentifier):
(WebCore::Document::allDocumentsMap):
(WebCore::Document::allDocuments):
(WebCore::m_identifier):
(WebCore::Document::~Document):

  • dom/Document.h:

(WebCore::Document::identifier const):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::serviceWorkerContainer):

  • dom/ScriptExecutionContext.h:
  • workers/service/ServiceWorker.cpp:

(WebCore::ServiceWorker::postMessage):

  • workers/service/ServiceWorkerClient.cpp:

(WebCore::ServiceWorkerClient::ServiceWorkerClient):
(WebCore::ServiceWorkerClient::~ServiceWorkerClient):
(WebCore::ServiceWorkerClient::id const):
(WebCore::ServiceWorkerClient::postMessage):

  • workers/service/ServiceWorkerClient.h:

(WebCore::ServiceWorkerClient::create):

  • workers/service/ServiceWorkerClient.idl:
  • workers/service/ServiceWorkerClientIdentifier.h: Copied from Source/WebCore/workers/service/ServiceWorkerClient.idl.

(WebCore::ServiceWorkerClientIdentifier::toString const):

  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::unregister):

  • workers/service/ServiceWorkerWindowClient.cpp:

(WebCore::ServiceWorkerWindowClient::ServiceWorkerWindowClient):

  • workers/service/ServiceWorkerWindowClient.h:
  • workers/service/context/SWContextManager.cpp:

(WebCore::SWContextManager::postMessageToServiceWorkerGlobalScope):

  • workers/service/context/SWContextManager.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::postMessageToServiceWorkerGlobalScope):

  • workers/service/context/ServiceWorkerThread.h:
  • workers/service/server/SWClientConnection.cpp:

(WebCore::SWClientConnection::postMessageToServiceWorkerClient):

  • workers/service/server/SWClientConnection.h:

Source/WebKit:

Add initial support for serviceWorkerClient.postMessage():

It is now possible to do bi-directional communication with a service worker
via postMessage().

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<ServiceWorkerClientIdentifier>::encode):
(IPC::ArgumentCoder<ServiceWorkerClientIdentifier>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::postMessageToServiceWorkerGlobalScope):
(WebKit::WebSWServerConnection::postMessageToServiceWorkerClient):

  • StorageProcess/ServiceWorker/WebSWServerConnection.h:
  • StorageProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • StorageProcess/StorageProcess.cpp:

(WebKit::StorageProcess::postMessageToServiceWorkerClient):

  • StorageProcess/StorageProcess.h:
  • StorageProcess/StorageProcess.messages.in:
  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::postMessageToServiceWorkerGlobalScope):
(WebKit::WebSWClientConnection::postMessageToServiceWorkerClient):

  • WebProcess/Storage/WebSWClientConnection.h:
  • WebProcess/Storage/WebSWClientConnection.messages.in:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerGlobalScope):
(WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerClient):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.messages.in:

LayoutTests:

Add layout test coverage.

  • http/tests/workers/service/basic-ServiceWorker-postMessage.https-expected.txt:
  • http/tests/workers/service/resources/basic-ServiceWorker-postMessage-worker.js:
  • http/tests/workers/service/resources/basic-ServiceWorker-postMessage.js:

(then):

9:09 AM Changeset in webkit [224112] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip failing service worker tests that were missed in r224066.
https://trac.webkit.org/changeset/224066/webkit

Unreviewed test gardening.

8:35 AM Changeset in webkit [224111] by jmarcell@apple.com
  • 4 edits in branches/safari-604-branch/Source/WebKit

Cherry-pick r223993. rdar://problem/34771415

7:38 AM Changeset in webkit [224110] by fred.wang@free.fr
  • 3 edits in trunk/Source/WebCore

Use auto for some variables in RenderLayerCompositor/Backing
https://bugs.webkit.org/show_bug.cgi?id=178570

Patch by Frederic Wang <fwang@igalia.com> on 2017-10-27
Reviewed by Darin Adler.

No new tests, behavior unchanged.

  • rendering/RenderLayerBacking.cpp:

(WebCore::canvasCompositingStrategy):
(WebCore::RenderLayerBacking::RenderLayerBacking):
(WebCore::computePageTiledBackingCoverage):
(WebCore::RenderLayerBacking::layerWillBeDestroyed):
(WebCore::RenderLayerBacking::updateBackdropFiltersGeometry):
(WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling):
(WebCore::RenderLayerBacking::updateCompositedBounds):
(WebCore::RenderLayerBacking::updateAfterWidgetResize):
(WebCore::RenderLayerBacking::updateAfterLayout):
(WebCore::RenderLayerBacking::updateConfiguration):
(WebCore::ComputedOffsets::fromAncestorGraphicsLayer):
(WebCore::RenderLayerBacking::updateGeometry):
(WebCore::RenderLayerBacking::updateInternalHierarchy):
(WebCore::RenderLayerBacking::positionOverflowControlsLayers):
(WebCore::RenderLayerBacking::hasUnpositionedOverflowControlsLayers const):
(WebCore::RenderLayerBacking::compositingOpacity const):
(WebCore::isRestartedPlugin):
(WebCore::RenderLayerBacking::isDirectlyCompositedImage const):
(WebCore::RenderLayerBacking::updateImageContents):
(WebCore::RenderLayerBacking::setContentsNeedDisplay):
(WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
(WebCore::RenderLayerBacking::getCurrentTransform const):
(WebCore::RenderLayerBacking::logFilledVisibleFreshTile):
(WebCore::RenderLayerBacking::startAnimation):
(WebCore::RenderLayerBacking::compositedBoundsIncludingMargin const):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayersAfterFlushIncludingSubframes):
(WebCore::updateScrollingLayerWithClient):
(WebCore::RenderLayerCompositor::didFlushChangesForLayer):
(WebCore::RenderLayerCompositor::didPaintBacking):
(WebCore::RenderLayerCompositor::didChangeVisibleRect):
(WebCore::RenderLayerCompositor::enclosingCompositorFlushingLayers const):
(WebCore::RenderLayerCompositor::updateCompositingLayers):
(WebCore::RenderLayerCompositor::appendDocumentOverlayLayers):
(WebCore::RenderLayerCompositor::logLayerInfo):
(WebCore::checkIfDescendantClippingContextNeedsUpdate):
(WebCore::styleChangeRequiresLayerRebuild):
(WebCore::RenderLayerCompositor::canCompositeClipPath):
(WebCore::rendererForCompositingTests):
(WebCore::RenderLayerCompositor::updateBacking):
(WebCore::RenderLayerCompositor::repaintOnCompositingChange):
(WebCore::RenderLayerCompositor::repaintInCompositedAncestor):
(WebCore::RenderLayerCompositor::enclosingNonStackingClippingLayer const):
(WebCore::RenderLayerCompositor::setCompositingParent):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
(WebCore::RenderLayerCompositor::hasCoordinatedScrolling const):
(WebCore::RenderLayerCompositor::updateScrollLayerPosition):
(WebCore::RenderLayerCompositor::positionForClipLayer const):
(WebCore::RenderLayerCompositor::frameViewDidLayout):
(WebCore::RenderLayerCompositor::rootFixedBackgroundsChanged):
(WebCore::RenderLayerCompositor::scrollingLayerDidChange):
(WebCore::RenderLayerCompositor::frameContentsCompositor):
(WebCore::RenderLayerCompositor::parentFrameContentLayers):
(WebCore::RenderLayerCompositor::updateLayerTreeGeometry):
(WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry):
(WebCore::RenderLayerCompositor::setIsInWindow):
(WebCore::RenderLayerCompositor::clearBackingForLayerIncludingDescendants):
(WebCore::RenderLayerCompositor::clippedByAncestor const):
(WebCore::RenderLayerCompositor::requiresCompositingForBackfaceVisibility const):
(WebCore::RenderLayerCompositor::requiresCompositingForCanvas const):
(WebCore::RenderLayerCompositor::requiresCompositingForPlugin const):
(WebCore::RenderLayerCompositor::requiresCompositingForAnimation const):
(WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason const):
(WebCore::RenderLayerCompositor::isAsyncScrollableStickyLayer const):
(WebCore::RenderLayerCompositor::isViewportConstrainedFixedOrStickyLayer const):
(WebCore::RenderLayerCompositor::requiresScrollLayer const):
(WebCore::RenderLayerCompositor::supportsFixedRootBackgroundCompositing const):
(WebCore::RenderLayerCompositor::fixedRootBackgroundLayer const):
(WebCore::RenderLayerCompositor::resetTrackedRepaintRects):
(WebCore::RenderLayerCompositor::contentsScaleMultiplierForNewTiles const):
(WebCore::RenderLayerCompositor::documentUsesTiledBacking const):
(WebCore::RenderLayerCompositor::shouldCompositeOverflowControls const):
(WebCore::RenderLayerCompositor::updateLayerForHeader):
(WebCore::RenderLayerCompositor::updateLayerForFooter):
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
(WebCore::RenderLayerCompositor::ensureRootLayer):
(WebCore::RenderLayerCompositor::destroyRootLayer):
(WebCore::RenderLayerCompositor::attachRootLayer):
(WebCore::RenderLayerCompositor::detachRootLayer):
(WebCore::RenderLayerCompositor::rootLayerAttachmentChanged):
(WebCore::RenderLayerCompositor::notifyIFramesOfCompositingChange):
(WebCore::RenderLayerCompositor::deviceOrPageScaleFactorChanged):
(WebCore::RenderLayerCompositor::computeFixedViewportConstraints const):
(WebCore::RenderLayerCompositor::computeStickyViewportConstraints const):
(WebCore::enclosingScrollingNodeID):
(WebCore::scrollCoordinatedAncestorInParentOfFrame):
(WebCore::RenderLayerCompositor::reattachSubframeScrollLayers):
(WebCore::RenderLayerCompositor::attachScrollingNode):
(WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer):
(WebCore::RenderLayerCompositor::updateScrollCoordinationForThisFrame):
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
(WebCore::RenderLayerCompositor::unregisterAllScrollingLayers):
(WebCore::RenderLayerCompositor::willRemoveScrollingLayerWithBacking):
(WebCore::RenderLayerCompositor::didAddScrollingLayer):
(WebCore::RenderLayerCompositor::updateScrollSnapPropertiesWithFrameView):

3:27 AM Changeset in webkit [224109] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.18.2

WebKitGTK+ 2.18.2

3:25 AM Changeset in webkit [224108] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.18

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.18.2 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.18.2.
2:35 AM Changeset in webkit [224107] by commit-queue@webkit.org
  • 6 edits in trunk

[GStreamer][MSE] Trim space between codecs
https://bugs.webkit.org/show_bug.cgi?id=178160

Patch by Alicia Boya García <aboya@igalia.com> on 2017-10-27
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Modify supportsCodecs() to accept a Vector<String> instead of
receiving a string and parsing itself.

This improves passrate for mediasource-is-type-supported as it
ensures that whitespace between codecs is now trimmed and codec
strings such as video/webm;codecs="opus, vp9" are matched as a valid
type, as required by the spec.

This patch also renames supportCodecs() to supportAllCodecs() and adds
a new variant, supportCodec(), that checks for support of an
individual codec.

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

(WebCore::AppendPipeline::parseDemuxerSrcPadCaps):

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

(WebCore::MediaPlayerPrivateGStreamerMSE::supportsCodec):
(WebCore::MediaPlayerPrivateGStreamerMSE::supportsAllCodecs):
(WebCore::MediaPlayerPrivateGStreamerMSE::supportsType):

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

LayoutTests:

Update expected test output.

  • platform/gtk/imported/w3c/web-platform-tests/media-source/mediasource-is-type-supported-expected.txt:
2:34 AM WebKitGTK/2.18.x edited by Carlos Garcia Campos
(diff)
2:31 AM Changeset in webkit [224106] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.18/Source/WebDriver

Merge r224090 - WebDriver: unknown capabilities should produce an InvalidArgument error when validating capabilities
https://bugs.webkit.org/show_bug.cgi?id=178868

Reviewed by Brian Burg.

7.2 Processing Capabilities
https://w3c.github.io/webdriver/webdriver-spec.html#dfn-validate-capabilities

Fixes: imported/w3c/webdriver/tests/sessions/new_session/invalid_capabilities.py::test_invalid_extensions

  • WebDriverService.cpp:

(WebDriver::WebDriverService::validatedCapabilities const):

2:31 AM Changeset in webkit [224105] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.18/Source/WebDriver

Merge r224089 - WebDriver: deserializeTimeouts should fail if the value is not integer
https://bugs.webkit.org/show_bug.cgi?id=178866

Reviewed by Brian Burg.

If value is not an integer, or it is less than 0 or greater than 264 – 1, return error with error code invalid
argument.
https://w3c.github.io/webdriver/webdriver-spec.html#dfn-deserialize-as-a-timeout

Fixes: imported/w3c/webdriver/tests/sessions/new_session/invalid_capabilities.py::test_invalid_values[timeouts-value59-body0]

imported/w3c/webdriver/tests/sessions/new_session/invalid_capabilities.py::test_invalid_values[timeouts-value59-body1]

  • WebDriverService.cpp:

(WebDriver::deserializeTimeouts):

2:31 AM Changeset in webkit [224104] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.18/Source/WebDriver

Merge r224088 - WebDriver: failing to process capabilities should produce InvalidArgument error not SessionNotCreated
https://bugs.webkit.org/show_bug.cgi?id=178864

Reviewed by Brian Burg.

Fixes most of the tests in imported/w3c/webdriver/tests/sessions/new_session/invalid_capabilities.py.

7.2 Processing Capabilities
https://w3c.github.io/webdriver/webdriver-spec.html#processing-capabilities

  • WebDriverService.cpp:

(WebDriver::WebDriverService::processCapabilities const):

2:27 AM Changeset in webkit [224103] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.18

Merge r224047 - [WPE] Use proper shared object versioning for libWPEWebKit.so
https://bugs.webkit.org/show_bug.cgi?id=178878

Reviewed by Michael Catanzaro.

Move the CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE() to a new CMake include file,
and use it both for the GTK+ and WPE ports. Also add a SET_PROJECT_VERSION() macro to
unify setting the PROJECT_VERSION* family of variables.

  • Source/cmake/OptionsGTK.cmake: Use the common macros imported from VersioningUtils.cmake.
  • Source/cmake/OptionsWPE.cmake: Properly assign a shared object version to libWPEWebKit.so,

using the common macros from VersioningUtils.cmake.

  • Source/cmake/VersioningUtils.cmake: Added.
2:20 AM Changeset in webkit [224102] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.18/Source/WebCore

Merge r223999 - Style::Scope::flushPendingUpdate() can replace the entire document in XSLTProcessor::createDocumentFromSource
https://bugs.webkit.org/show_bug.cgi?id=178715
<rdar://problem/35144665>

Reviewed by Brent Fulgham.

Apply XLS tranforms when a 0s timer fires or the document finishes parsing or loading whichever comes first
instead of in the middle of collecting a list of stylesheets.

  • dom/Document.cpp:

(WebCore::Document::Document): Initialize the newly added timer.
(WebCore::Document::implicitClose): Apply any pending XSLT before we fire load events since some of the event
handlers may be expecting to see the document after XSLT had been applied.
(WebCore::Document::scheduleToApplyXSLTransforms): Added.
(WebCore::Document::applyPendingXSLTransformsNowIfScheduled): Added.
(WebCore::Document::applyPendingXSLTransformsTimerFired): Added. Moved the logic to apply XSL transforms from
Style::Scope::collectActiveStyleSheets, and merged applyXSLTransform into this function.
(WebCore::Document::applyXSLTransform): Deleted.
(WebCore::Document::finishedParsing): Apply XSLT right before updating the style. This is where used to apply
inline XSLT and it happens much earlier than implicitClose.

  • dom/Document.h:
  • dom/ProcessingInstruction.cpp:

(WebCore::ProcessingInstruction::checkStyleSheet): Schedule XSLT in the document instead of flushing pending
stylesheets, which would have synchronously applied XSLT. We can't apply XSLT synchronously here because this
function can be called from a non-script-resilient call stack.
(WebCore::ProcessingInstruction::sheetLoaded): Ditto.

  • style/StyleScope.cpp:

(WebCore::Style::Scope::collectXSLTransforms): Added.
(WebCore::Style::Scope::collectActiveStyleSheets): Removed the code to apply XSLT. Skip ProcessingInstructions
that applies XSLT. Also use RefPtr<StyleSheet> instead of a raw pointer to store StyleSheet.

  • style/StyleScope.h:
  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::XMLDocumentParser::doEnd): Apply any pending XSLTs synchronously here as the comment suggests.

2:02 AM Changeset in webkit [224101] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.18/Source

Merge r223965 - Unreviewed, rolling out r222945.
https://bugs.webkit.org/show_bug.cgi?id=178818

"It made WasmBench crash" (Requested by saamyjoon on #webkit).

Reverted changeset:

"bmalloc mutex should be adaptive"
https://bugs.webkit.org/show_bug.cgi?id=177839
https://trac.webkit.org/changeset/222945

2:00 AM Changeset in webkit [224100] by Carlos Garcia Campos
  • 15 edits in releases/WebKitGTK/webkit-2.18

Merge r223953 - [WPE] Remove GLib API functions which use Cairo
https://bugs.webkit.org/show_bug.cgi?id=178205

Reviewed by Michael Catanzaro.

Source/WebKit:

Add PLATFORM(GTK) guards for the parts of of the GLib API which use cairo_surface_t (web
page snapshots and favicons), and remove the affected function prototypes from public API
headers. This way, the WPE version of the API is not tied to Cairo.

  • PlatformWPE.cmake:
  • UIProcess/API/glib/WebKitFaviconDatabase.cpp:
  • UIProcess/API/glib/WebKitFaviconDatabasePrivate.h:
  • UIProcess/API/glib/WebKitInjectedBundleClient.cpp:
  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewConstructed):
(webkitWebViewGetProperty):
(webkitWebViewDispose):
(webkit_web_view_class_init):
(webkitWebViewLoadChanged):

  • UIProcess/API/glib/WebKitWebViewPrivate.h:
  • UIProcess/API/wpe/WebKitFaviconDatabase.h:
  • UIProcess/API/wpe/WebKitWebView.h:
  • WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp:

(webkitWebPageDidReceiveMessage):

Tools:

Add PLATFORM(GTK) guards for the API tests (or parts of them) which use cairo_surface_t (web
page snapshots and favicons) which are not available in the WPE version of the GLib API.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitFaviconDatabase.cpp:

(testNotInitialized):
(testPrivateBrowsing):
(testFaviconDatabase):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitFindController.cpp:

(testFindControllerHide):
(beforeAll):

  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:
  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.h:
1:57 AM Changeset in webkit [224099] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.18/Source/JavaScriptCore

Merge r223916 - [mips] fix offsets of branches that have to go over a jump
https://bugs.webkit.org/show_bug.cgi?id=153464

The jump() function creates 8 instructions, but the offsets of branches
meant to go over them only account for 6. In most cases, this is not an
issue as the last two instructions of jump() would be nops, but in the
rarer case where the jump destination is in a different 256 MB segment,
MIPSAssembler::linkWithOffset() will rewrite the code in a way in which
the last 4 instructions would be a 2 instruction load (lui/ori) into
$t9, a "j $t9" and then a nop. The wrong offset will mean that the
previous branches meant to go over the whole jump will branch to the
"j $t9" instruction, which would jump to whatever is currently in $t9
(since lui/ori would not be executed).

Reviewed by Michael Catanzaro.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::branchAdd32):
(JSC::MacroAssemblerMIPS::branchMul32):
(JSC::MacroAssemblerMIPS::branchSub32):
Fix the offsets of branches meant to go over code generated by jump().

1:55 AM Changeset in webkit [224098] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.18/Source/WebCore

Merge r223887 - [GTK][X11] Windy.com shows always straight wind lines
https://bugs.webkit.org/show_bug.cgi?id=176718

Reviewed by Carlos Garcia Campos.

WebGL's GL_LUMINANCE_ALPHA format is not available in OpenGL when using a version >= 3.2
and a core profile. In that case, we need to replace it with GL_RG and swizzle the color
components appropriately.

No new behavior.

  • platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:

(WebCore::GraphicsContext3D::texImage2D):

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::texSubImage2D):

1:47 AM Changeset in webkit [224097] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.18/Source/bmalloc

Merge r223844 - bmalloc::api::tryLargeMemalignVirtual() shouldn't assert on a failed allocation
https://bugs.webkit.org/show_bug.cgi?id=178654

Reviewed by Geoffrey Garen.

  • bmalloc/bmalloc.h:

(bmalloc::api::tryLargeMemalignVirtual): Call Heap::tryAllocateLarge()
instead of Heap::allocateLarge(). The former will return a null pointer
upon a failed allocation, allowing the caller to fail gracefully just as
the API entrypoint implies, while the latter currently provokes a crash
in these circumstances.

1:45 AM Changeset in webkit [224096] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.18/Source/WebCore

Merge r223835 - Call FrameView::scheduleSelectionUpdate when selection needs repainting after layout instead of setting the RenderView dirty.
https://bugs.webkit.org/show_bug.cgi?id=178651
<rdar://problem/35117448>

Reviewed by Antti Koivisto.

Calling setNeedsLayout() on the RenderView to trigger selection update is problematic in 2 different ways:

  1. marking the root renderer dirty does not trigger layout (this is very specific to the root,

other renderers do trigger layout). It means that it works as long as someone else schedules a layout.

  1. when a subtree layout is already scheduled and we mark the root renderer dirty, the root gets stuck with

the dirty flag (since the entry point for the subsequent layout is a descendant of the root and not the root itself).

This patch addresses these issues by scheduling/converting subtree layout when needed.

Covered by fast/dynamic/remove-invisible-node-inside-selection.html/remove-node-inside-selection.html

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::respondToNodeModification):

  • page/FrameView.cpp:

(WebCore::FrameView::scheduleSelectionUpdate):

  • page/FrameView.h:
1:36 AM Changeset in webkit [224095] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r224077): DeprecatedGlobalSettings::setAVKitEnabled() not protected by HAVE(AVKIT)

Unreviewed build fix.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences): Fix build.

1:28 AM Changeset in webkit [224094] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.18/Source/WebCore

Merge r223789 - When destroying a resource, register "only" the clients who are losing their resource as having pending resources
https://bugs.webkit.org/show_bug.cgi?id=178567
<rdar://problem/35064781>

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-10-20
Reviewed by Simon Fraser.

SVGResources::resourceDestroyed() will return a bool indicating whether
it had a reference to the destroyed resource or not. If it returns true
SVGResourcesCache::resourceDestroyed() will register the client Element
as having pending resources.

  • rendering/svg/SVGResources.cpp:

(WebCore::paintingResourceFromSVGPaint):
(WebCore::SVGResources::removeClientFromCache const):
(WebCore::SVGResources::resourceDestroyed):
(WebCore::SVGResources::buildSetOfResources):
(WebCore::SVGResources::resetClipper):
(WebCore::SVGResources::resetFilter):
(WebCore::SVGResources::resetMarkerStart):
(WebCore::SVGResources::resetMarkerMid):
(WebCore::SVGResources::resetMarkerEnd):
(WebCore::SVGResources::resetMasker):
(WebCore::SVGResources::resetFill):
(WebCore::SVGResources::resetStroke):
(WebCore::SVGResources::resetLinkedResource):

  • rendering/svg/SVGResources.h:

(WebCore::SVGResources::isEmpty const):
(WebCore::SVGResources::ClipperFilterMaskerData::ClipperFilterMaskerData): Deleted.
(WebCore::SVGResources::MarkerData::MarkerData): Deleted.
(WebCore::SVGResources::FillStrokeData::FillStrokeData): Deleted.

  • rendering/svg/SVGResourcesCache.cpp:

(WebCore::SVGResourcesCache::resourceDestroyed):

1:26 AM Changeset in webkit [224093] by Carlos Garcia Campos
  • 7 edits
    4 adds in releases/WebKitGTK/webkit-2.18

Merge r223766 - AX: [ATK] Events missing and state incorrect for aria-activedescendant
https://bugs.webkit.org/show_bug.cgi?id=178523

Reviewed by Chris Fleizach.

Source/WebCore:

When the aria-activedescendant of an element changes, emit object:state-changed:focused.
When a focused element has a valid active descendant, do not expose the focused state on
the element, but rather on the active descendant. Also expose the focusable state on the
active descendant.

Tests: accessibility/gtk/aria-activedescendant-changed-notification.html

accessibility/gtk/aria-activedescendant.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isActiveDescendantOfFocusedContainer const):
(WebCore::AccessibilityObject::ariaActiveDescendantReferencingElements const):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::shouldNotifyActiveDescendant const):

  • accessibility/atk/AXObjectCacheAtk.cpp:

(WebCore::AXObjectCache::postPlatformNotification):

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(setAtkStateSetFromCoreObject):

LayoutTests:

  • accessibility/gtk/aria-activedescendant-changed-notification-expected.txt: Added.
  • accessibility/gtk/aria-activedescendant-changed-notification.html: Added.
  • accessibility/gtk/aria-activedescendant-expected.txt: Added.
  • accessibility/gtk/aria-activedescendant.html: Added.
1:12 AM Changeset in webkit [224092] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.18

Merge r223688 - Overlapping text on all CSS fonts specs
https://bugs.webkit.org/show_bug.cgi?id=177585
<rdar://problem/34704078>

Reviewed by Daniel Bates.

Source/WebCore:

We were resetting StyleResolver::overrideDocumentElementStyle too early when resolving slot elements.
This resulted in 'rem' units being miscomputed.

Reduction by Zalan.

Test: fast/html/details-line-height-overlap.html

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::Scope::Scope):
(WebCore::Style::TreeResolver::Scope::~Scope):

Only reset overrideDocumentElementStyle when destroying the scope.

(WebCore::Style::TreeResolver::pushScope):
(WebCore::Style::TreeResolver::pushEnclosingScope):
(WebCore::Style::TreeResolver::popScope):

A scope can show up multiple times in scope stack.

  • style/StyleTreeResolver.h:

LayoutTests:

  • fast/html/details-line-height-overlap-expected.html: Added.
  • fast/html/details-line-height-overlap.html: Added.
  • platform/ios/fast/shadow-dom/copy-shadow-tree-expected.txt:
1:02 AM WebKitGTK/2.18.x edited by Adrian Perez de Castro
(diff)
12:41 AM Changeset in webkit [224091] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

Skip some copy & paste tests I wrote on GTK since they're are known to timeout/slow.

  • platform/gtk/TestExpectations:
12:13 AM Changeset in webkit [224090] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebDriver

WebDriver: unknown capabilities should produce an InvalidArgument error when validating capabilities
https://bugs.webkit.org/show_bug.cgi?id=178868

Reviewed by Brian Burg.

7.2 Processing Capabilities
https://w3c.github.io/webdriver/webdriver-spec.html#dfn-validate-capabilities

Fixes: imported/w3c/webdriver/tests/sessions/new_session/invalid_capabilities.py::test_invalid_extensions

  • WebDriverService.cpp:

(WebDriver::WebDriverService::validatedCapabilities const):

12:11 AM Changeset in webkit [224089] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebDriver

WebDriver: deserializeTimeouts should fail if the value is not integer
https://bugs.webkit.org/show_bug.cgi?id=178866

Reviewed by Brian Burg.

If value is not an integer, or it is less than 0 or greater than 264 – 1, return error with error code invalid
argument.
https://w3c.github.io/webdriver/webdriver-spec.html#dfn-deserialize-as-a-timeout

Fixes: imported/w3c/webdriver/tests/sessions/new_session/invalid_capabilities.py::test_invalid_values[timeouts-value59-body0]

imported/w3c/webdriver/tests/sessions/new_session/invalid_capabilities.py::test_invalid_values[timeouts-value59-body1]

  • WebDriverService.cpp:

(WebDriver::deserializeTimeouts):

12:10 AM Changeset in webkit [224088] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebDriver

WebDriver: failing to process capabilities should produce InvalidArgument error not SessionNotCreated
https://bugs.webkit.org/show_bug.cgi?id=178864

Reviewed by Brian Burg.

Fixes most of the tests in imported/w3c/webdriver/tests/sessions/new_session/invalid_capabilities.py.

7.2 Processing Capabilities
https://w3c.github.io/webdriver/webdriver-spec.html#processing-capabilities

  • WebDriverService.cpp:

(WebDriver::WebDriverService::processCapabilities const):

12:04 AM Changeset in webkit [224087] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

[GTK] Crash in WebCore::SelectionRangeData::apply
https://bugs.webkit.org/show_bug.cgi?id=177808

Reviewed by Carlos Garcia Campos.

The problem appears to be a name collision between WebCore::SelectionData and
WebCore::SelectionData. Yes, those are the same names. It seems the destructor for a
Source/WebCore/platform/gtk/SelectionData.h SelectionData is being called on a
Source/WebCore/rendering/SelectionRangeData.cpp SelectionData. Yikes. Can you forgive the
poor linker for not being magic?

This fixes crashes in approximately one bajillion tests.

  • rendering/SelectionRangeData.cpp: Move SelectionData into an anonymous namespace.

Oct 26, 2017:

11:18 PM Changeset in webkit [224086] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WinCairo] Fix build after WebCore moves to unified source.
https://bugs.webkit.org/show_bug.cgi?id=178920

Added empty implementations to fix link error.

Patch by Basuke Suzuki <Basuke Suzuki> on 2017-10-26
Reviewed by Ryosuke Niwa.

  • platform/network/curl/DNSCurl.cpp:

(WebCore::DNSResolveQueue::updateIsUsingProxy):
(WebCore::DNSResolveQueue::platformResolve):

11:06 PM Changeset in webkit [224085] by commit-queue@webkit.org
  • 14 edits in trunk/Source

Implement seek tolerance methods in WebAVPlayerController.
https://bugs.webkit.org/show_bug.cgi?id=178838
rdar://problem/33781777

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-10-26
Reviewed by Eric Carlson.

Source/WebCore:

No new tests because this doesn't change any behavior in the page, but exposes seek tolerance to fullscreen platform UI.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setCurrentTimeWithTolerance):

  • html/HTMLMediaElement.h:
  • platform/cocoa/PlaybackSessionModel.h:
  • platform/cocoa/PlaybackSessionModelMediaElement.h:
  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::seekToTime):

  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController seekToTime:]):
(-[WebAVPlayerController seekToTime:toleranceBefore:toleranceAfter:]):
(-[WebAVPlayerController seekByTimeInterval:]):
(-[WebAVPlayerController seekByTimeInterval:toleranceBefore:toleranceAfter:]):
(-[WebAVPlayerController seekToBeginning:]):
(-[WebAVPlayerController seekToEnd:]):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::seekToTime):

Source/WebKit:

This implementes additional methods on WebAVPlayerController that allows AVKit more control over seeking.

  • UIProcess/Cocoa/PlaybackSessionManagerProxy.h:
  • UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:

(WebKit::PlaybackSessionModelContext::seekToTime):
(WebKit::PlaybackSessionManagerProxy::seekToTime):

  • WebProcess/cocoa/PlaybackSessionManager.h:
  • WebProcess/cocoa/PlaybackSessionManager.messages.in:
  • WebProcess/cocoa/PlaybackSessionManager.mm:

(WebKit::PlaybackSessionManager::seekToTime):

9:04 PM Changeset in webkit [224084] by commit-queue@webkit.org
  • 5 edits
    2 moves
    1 delete in trunk

[GTK][WPE] install-dependencies can't find libapache2-mod-php7.0 on Ubuntu 17.10
https://bugs.webkit.org/show_bug.cgi?id=178854

Patch by Fujii Hironori <Fujii Hironori> on 2017-10-26
Reviewed by Michael Catanzaro.

Tools:

  • Scripts/webkitpy/port/base.py:

(Port._debian_php_version): Return "-php7.1" if libphp7.1.so found.
(Port._is_debian_php_version_7): Deleted.

  • gtk/install-dependencies: Install libapache2-mod-php instead of libapache2-mod-php7.0.
  • wpe/install-dependencies: Ditto.

LayoutTests:

  • http/conf/debian-httpd-2.2.conf: Removed.
  • http/conf/debian-httpd-2.4-php7.0.conf: Renamed from LayoutTests/http/conf/debian-httpd-2.4-php7.conf.
  • http/conf/debian-httpd-2.4-php7.1.conf: Copied from LayoutTests/http/conf/debian-httpd-2.4-php7.conf.
7:44 PM Changeset in webkit [224083] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/win

Fix Windows build
https://bugs.webkit.org/show_bug.cgi?id=178892

  • AccessibleBase.cpp:

(MSAARole):

7:32 PM Changeset in webkit [224082] by Brian Burg
  • 2 edits in trunk/Source/WebKit

Web Automation: denying user permission for getUserMedia doesn't work
https://bugs.webkit.org/show_bug.cgi?id=178895

Reviewed by Youenn Fablet.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
The ordering of special cases is incorrect. Safari configures its automation views to
allow mock devices and never prompt for them. These checks were before the check for
the automation session's getUserMedia permission. Switch these checks.

Also change the deny reason so that subsequent requests are also denied. This matches
behavior when a user denies a permission request on a real dialog. With this change,
the DOM error changes from SecurityError to NotAllowedError, which makes more sense.

7:20 PM Changeset in webkit [224081] by webkit@devinrousso.com
  • 8 edits in trunk

Web Inspector: Canvas Tab: canvas path components from old page stick around when page is reloaded
https://bugs.webkit.org/show_bug.cgi?id=178806
<rdar://problem/35176360>

Reviewed by Brian Burg.

Source/WebInspectorUI:

Before this change, the CanvasCollection was regenerated each time the Canvas tab was
attached. This also caused the invisible TreeOutline, used for the path components and to
manage selection, to be reset as well. Whenever the page refreshed, however, the old
canvases, and associated recordings, were not removed. This patch reworks all of this logic
to create the CanvasCollection on construction of the tab and add/remove canvases as needed.

  • UserInterface/Controllers/CanvasManager.js:

(WI.CanvasManager.prototype.canvasAdded):
(WI.CanvasManager.prototype.canvasRemoved):
(WI.CanvasManager.prototype._removeCanvas):
(WI.CanvasManager.prototype._mainResourceDidChange):
Replaced the "Cleared" event by instead firing "CanvasRemoved" for every tracked canvas. This
massively simplifies the logic for when the page navigates, as everything goes through a
single event listener.
Drive-by: changed existing event names to remove unnecessary words.

  • UserInterface/Views/CanvasTabContentView.js:

(WI.CanvasTabContentView):
(WI.CanvasTabContentView.prototype.attached):
(WI.CanvasTabContentView.prototype.detached):
(WI.CanvasTabContentView.prototype._addCanvas):
(WI.CanvasTabContentView.prototype._removeCanvas):
(WI.CanvasTabContentView.prototype._handleCanvasAdded):
(WI.CanvasTabContentView.prototype._handleCanvasRemoved):
(WI.CanvasTabContentView.prototype._canvasAdded): Deleted.
(WI.CanvasTabContentView.prototype._canvasRemoved): Deleted.
(WI.CanvasTabContentView.prototype._mainResourceDidChange): Deleted.
Rework logic for the way that the CanvasCollection is maintained. It is no longer
created/destroyed each time the view is attached/detached, and instead a diff is calculated
for the added/existing/removed canvases and the content views are added/removed as such.

  • UserInterface/Views/CanvasOverviewContentView.js:

(WI.CanvasOverviewContentView.prototype._selectionPathComponentsChanged):
Drive-by: if an imported recording is selected on the Canvas Overview view, we should show it.

LayoutTests:

  • inspector/canvas/context-attributes.html:
  • inspector/canvas/resources/create-context-utilities.js:

(destroyCanvases):
(TestPage.registerInitializer.awaitCanvasAdded):
(TestPage.registerInitializer):

  • inspector/canvas/resources/shaderProgram-utilities.js:

(deleteContext):
(TestPage.registerInitializer.window.addParentCanvasRemovedTestCase):
(TestPage.registerInitializer):

7:19 PM Changeset in webkit [224080] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix GCC warning spam after r224077
https://bugs.webkit.org/show_bug.cgi?id=178823

Need to leave a blank line at the bottom of the file.

  • Scripts/PreferencesTemplates/WebPreferencesDefinitions.h.erb:
7:02 PM Changeset in webkit [224079] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix WPE build after r224074
https://bugs.webkit.org/show_bug.cgi?id=178892

  • accessibility/wpe/AccessibilityObjectWPE.cpp:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):

6:57 PM Changeset in webkit [224078] by Simon Fraser
  • 17 edits
    1 move
    3 adds in trunk

When navigating back to a page, compositing layers may not use accelerated drawing
https://bugs.webkit.org/show_bug.cgi?id=178749
rdar://problem/35158946

Reviewed by Dean Jackson.
Source/WebCore:

There were two issues with setting GraphicsLayerCA's "acceleratesDrawing" state which
occurred on back navigation, related to the ordering of style recalcs and layout.

First, at style recalc time, we created a RenderLayerCompositor but hadn't yet called
its cacheAcceleratedCompositingFlags(), so any layers created during style update
didn't get accelerated drawing. Fix by making cacheAcceleratedCompositingFlags() internal
to RenderLayerCompositor and calling it from willRecalcStyle() and updateCompositingLayers().

Secondly, GraphicsLayerCA::commitLayerChangesBeforeSublayers() needs to updateAcceleratesDrawing()
before updating tiles, so that new tiles fetch the right acceleratesDrawing state from
the TileController.

Test: compositing/accelerated-layers-after-back.html

  • page/FrameView.cpp:

(WebCore::FrameView::updateCompositingLayersAfterLayout):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::willRecalcStyle):
(WebCore::RenderLayerCompositor::didRecalcStyleWithNoPendingLayout):
(WebCore::RenderLayerCompositor::updateCompositingLayers):

  • rendering/RenderLayerCompositor.h:

Source/WebKit:

Avoid assertions when a test enables accelerated drawing (which we can't support
in the iOS simulator).

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::ensureBackingStore):

Tools:

Fix WTR and DRT to parse "useAcceleratedDrawing" out of "webkit-test-runner" options
and use it to set the state of the web view.

  • DumpRenderTree/TestOptions.h:
  • DumpRenderTree/TestOptions.mm:

(TestOptions::TestOptions):

  • DumpRenderTree/mac/DumpRenderTree.mm:

(setWebPreferencesForTestOptions):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

LayoutTests:

Moved iframes/resources/page-cache-helper.html up to compositing/resources/go-back.html.

  • compositing/accelerated-layers-after-back-expected.txt: Added.
  • compositing/accelerated-layers-after-back.html: Added.
  • compositing/iframes/page-cache-layer-tree.html:
  • compositing/page-cache-back-crash.html:
  • compositing/resources/go-back.html: Renamed from LayoutTests/compositing/iframes/resources/page-cache-helper.html.
  • platform/ios/compositing/accelerated-layers-after-back-expected.txt: Added.
6:45 PM Changeset in webkit [224077] by commit-queue@webkit.org
  • 14 edits
    1 copy in trunk/Source/WebKit

[Settings] Generate the bulk of WebPage::updatePreferences(...)
https://bugs.webkit.org/show_bug.cgi?id=178823

Patch by Sam Weinig <sam@webkit.org> on 2017-10-26
Reviewed by Tim Horton.

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebKit.xcodeproj/project.pbxproj:

Add new file generation.

  • Scripts/GeneratePreferences.rb:

Replace 'webkitOnly' boolean option with a new 'webcoreBinding' option.
'webcoreBinding' supports the following values:

  • none (same as webkit only)
  • custom (means that you do bind to a webcore concept, but currently it must be done in a custom manner)
  • DeprecatedGlobalSettings (binds to a DeprecatedGlobalSettings setting)
  • RuntimeEnabledFeatures (binds to a RuntimeEnabledFeatures setting)

If 'webcoreBinding' is not provided, the preference binds to WebCore Setting
of either the same name or the override name provided by the new 'webcoreName'
option (we should try to remove the need for 'webcoreName' by unifying with
WebCore on preference/setting naming).

A 'condition' option was also added to indicate that the preference is only available
when that macro condition is true.

Since we are generating most of WebPage::updatePreferences, we can simplify the
macros in WebPreferencesDefinitions.h to only have normal/debug/experimental variants
and remove the need for per-type macros, which were only used in WebPage::updatePreferences.

  • Scripts/PreferencesTemplates/WebPageUpdatePreferences.cpp.erb: Added.

Generates bindings from WebPreferences to WebCore::Settings/DeprecatedGlobalSettings/RuntimeEnabledFeatures.
Does not generate a binding if the 'webcoreBinding' option is set to either 'none' or 'custom'.

  • Scripts/PreferencesTemplates/WebPreferencesDefinitions.h.erb:

Simplify down to just normal/debug/experimental macros.

  • Shared/WebPreferences.yaml:

Annotate perferences with new optional 'webcoreBinding', 'webcoreName', and 'condition'
options.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Replace a ton of hand written preference to settings bindings with a call to updatePreferencesGenerated().

  • WebProcess/WebPage/WebPage.h:

Add declaration of updatePreferencesGenerated, remove platformPreferencesDidChange.

  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::platformPreferencesDidChange): Deleted.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformPreferencesDidChange): Deleted.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::platformPreferencesDidChange): Deleted.

  • WebProcess/WebPage/win/WebPageWin.cpp:

(WebKit::WebPage::platformPreferencesDidChange): Deleted.

  • WebProcess/WebPage/wpe/WebPageWPE.cpp:

(WebKit::WebPage::platformPreferencesDidChange): Deleted.

Remove all the empty platformPreferencesDidChange functions.

6:14 PM Changeset in webkit [224076] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/win

Fix Windows build
https://bugs.webkit.org/show_bug.cgi?id=178892

  • AccessibleBase.cpp:

(AccessibleBase::state const):
(MSAARole):

5:54 PM Changeset in webkit [224075] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix Windows build
https://bugs.webkit.org/show_bug.cgi?id=178892

  • accessibility/win/AccessibilityObjectWin.cpp:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):

5:37 PM Changeset in webkit [224074] by achristensen@apple.com
  • 57 edits in trunk/Source/WebCore

Modernize AccessibilityObject.h
https://bugs.webkit.org/show_bug.cgi?id=178892

Reviewed by Tim Horton.

The enums in AccessibilityObject.h are causing naming collisions with unified builds.
This is what enum classes are for.
HashMaps of enum classes still need a few casts to/from int.

I also made some RefPtr's Ref's, use some initializer lists instead of values in the constructor implementation, and indentation fixing.

No change in behavior.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXComputedObjectAttributeCache::getIgnored const):
(WebCore::AXObjectCache::~AXObjectCache):
(WebCore::AXObjectCache::getOrCreate):
(WebCore::AXObjectCache::remove):
(WebCore::AXObjectCache::notificationPostTimerFired):

  • accessibility/AXObjectCache.h:

(WebCore::AXComputedObjectAttributeCache::CachedAXObjectAttributes::CachedAXObjectAttributes):
(WebCore::AXComputedObjectAttributeCache::getIgnored const):

  • accessibility/AccessibilityARIAGrid.cpp:

(WebCore::AccessibilityARIAGrid::addChildren):

  • accessibility/AccessibilityARIAGridCell.cpp:

(WebCore::AccessibilityARIAGridCell::parentRowGroup const):

  • accessibility/AccessibilityARIAGridRow.cpp:

(WebCore::AccessibilityARIAGridRow::headerObject):

  • accessibility/AccessibilityAttachment.cpp:

(WebCore::AccessibilityAttachment::accessibilityText):

  • accessibility/AccessibilityAttachment.h:
  • accessibility/AccessibilityImageMapLink.cpp:

(WebCore::AccessibilityImageMapLink::roleValue const):
(WebCore::AccessibilityImageMapLink::accessibilityText):

  • accessibility/AccessibilityLabel.cpp:

(WebCore::childrenContainOnlyStaticText):

  • accessibility/AccessibilityLabel.h:
  • accessibility/AccessibilityList.cpp:

(WebCore::AccessibilityList::isUnorderedList const):
(WebCore::AccessibilityList::isOrderedList const):
(WebCore::AccessibilityList::determineAccessibilityRole):
(WebCore::AccessibilityList::roleValue const):

  • accessibility/AccessibilityListBox.cpp:

(WebCore::AccessibilityListBox::setSelectedChildren):
(WebCore::AccessibilityListBox::listBoxOptionAccessibilityObject const):

  • accessibility/AccessibilityListBox.h:
  • accessibility/AccessibilityListBoxOption.h:
  • accessibility/AccessibilityMathMLElement.cpp:

(WebCore::AccessibilityMathMLElement::determineAccessibilityRole):
(WebCore::AccessibilityMathMLElement::isMathScriptObject const):
(WebCore::AccessibilityMathMLElement::isMathMultiscriptObject const):

  • accessibility/AccessibilityMediaControls.cpp:

(WebCore::AccessibilityMediaControl::accessibilityText):
(WebCore::AccessibilityMediaControl::roleValue const):

  • accessibility/AccessibilityMediaControls.h:
  • accessibility/AccessibilityMenuList.cpp:

(WebCore::AccessibilityMenuList::addChildren):

  • accessibility/AccessibilityMenuList.h:
  • accessibility/AccessibilityMenuListOption.h:
  • accessibility/AccessibilityMenuListPopup.cpp:

(WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject const):

  • accessibility/AccessibilityMenuListPopup.h:
  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::AccessibilityNodeObject):
(WebCore::AccessibilityNodeObject::determineAccessibilityRole):
(WebCore::AccessibilityNodeObject::canHaveChildren const):
(WebCore::AccessibilityNodeObject::computeAccessibilityIsIgnored const):
(WebCore::AccessibilityNodeObject::isSearchField const):
(WebCore::AccessibilityNodeObject::isImage const):
(WebCore::AccessibilityNodeObject::isPasswordField const):
(WebCore::AccessibilityNodeObject::isInputImage const):
(WebCore::AccessibilityNodeObject::isProgressIndicator const):
(WebCore::AccessibilityNodeObject::isSlider const):
(WebCore::AccessibilityNodeObject::isMenuRelated const):
(WebCore::AccessibilityNodeObject::isMenu const):
(WebCore::AccessibilityNodeObject::isMenuBar const):
(WebCore::AccessibilityNodeObject::isMenuButton const):
(WebCore::AccessibilityNodeObject::isMenuItem const):
(WebCore::AccessibilityNodeObject::isEnabled const):
(WebCore::AccessibilityNodeObject::isChecked const):
(WebCore::AccessibilityNodeObject::supportsRequiredAttribute const):
(WebCore::AccessibilityNodeObject::headingLevel const):
(WebCore::AccessibilityNodeObject::isHeading const):
(WebCore::AccessibilityNodeObject::isLink const):
(WebCore::AccessibilityNodeObject::isGroup const):
(WebCore::AccessibilityNodeObject::selectedRadioButton):
(WebCore::AccessibilityNodeObject::checkboxOrRadioValue const):
(WebCore::AccessibilityNodeObject::actionElement const):
(WebCore::AccessibilityNodeObject::alterSliderValue):
(WebCore::AccessibilityNodeObject::isGenericFocusableElement const):
(WebCore::AccessibilityNodeObject::menuElementForMenuButton const):
(WebCore::AccessibilityNodeObject::menuItemElementForMenu const):
(WebCore::AccessibilityNodeObject::titleElementText const):
(WebCore::AccessibilityNodeObject::alternativeText const):
(WebCore::AccessibilityNodeObject::visibleText const):
(WebCore::AccessibilityNodeObject::helpText const):
(WebCore::AccessibilityNodeObject::accessibilityText):
(WebCore::AccessibilityNodeObject::ariaLabeledByText const):
(WebCore::AccessibilityNodeObject::accessibilityDescription const):
(WebCore::AccessibilityNodeObject::roleIgnoresTitle const):
(WebCore::AccessibilityNodeObject::hierarchicalLevel const):
(WebCore::AccessibilityNodeObject::title const):
(WebCore::AccessibilityNodeObject::text const):
(WebCore::AccessibilityNodeObject::stringValue const):
(WebCore::AccessibilityNodeObject::determineAriaRoleAttribute const):
(WebCore::AccessibilityNodeObject::remapAriaRoleDueToParent const):
(WebCore::AccessibilityNodeObject::canSetSelectedAttribute const):

  • accessibility/AccessibilityNodeObject.h:
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::detach):
(WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex):
(WebCore::AccessibilityObject::accessibleNameDerivesFromContent const):
(WebCore::AccessibilityObject::isBlockquote const):
(WebCore::AccessibilityObject::isTextControl const):
(WebCore::AccessibilityObject::isARIATextControl const):
(WebCore::AccessibilityObject::isLandmark const):
(WebCore::AccessibilityObject::findMatchingObjects):
(WebCore::AccessibilityObject::rangeOfStringClosestToRangeInDirection const):
(WebCore::AccessibilityObject::selectText):
(WebCore::AccessibilityObject::isARIAInput):
(WebCore::AccessibilityObject::isARIAControl):
(WebCore::AccessibilityObject::isRangeControl const):
(WebCore::AccessibilityObject::visiblePositionForBounds const):
(WebCore::AccessibilityObject::supportsARIAReadOnly const):
(WebCore::AccessibilityObject::ariaReadOnlyValue const):
(WebCore::AccessibilityObject::headingElementForNode):
(WebCore::AccessibilityObject::ariaTreeRows):
(WebCore::AccessibilityObject::ariaTreeItemContent):
(WebCore::AccessibilityObject::ariaTreeItemDisclosedRows):
(WebCore::AccessibilityObject::defaultLiveRegionStatusForRole):
(WebCore::AccessibilityObject::actionVerb const):
(WebCore::AccessibilityObject::ariaCurrentState const):
(WebCore::AccessibilityObject::ariaCurrentValue const):
(WebCore::AccessibilityObject::orientation const):
(WebCore::initializeRoleMap):
(WebCore::AccessibilityObject::ariaRoleToWebCoreRole):
(WebCore::AccessibilityObject::computedRoleString const):
(WebCore::AccessibilityObject::supportsPressAction const):
(WebCore::AccessibilityObject::sortDirection const):
(WebCore::AccessibilityObject::supportsExpanded const):
(WebCore::AccessibilityObject::isExpanded const):
(WebCore::AccessibilityObject::supportsChecked const):
(WebCore::AccessibilityObject::checkboxOrRadioValue const):
(WebCore::AccessibilityObject::scrollByPage const):
(WebCore::AccessibilityObject::lastKnownIsIgnoredValue):
(WebCore::AccessibilityObject::setLastKnownIsIgnoredValue):
(WebCore::AccessibilityObject::buttonRoleType const):
(WebCore::AccessibilityObject::isButton const):
(WebCore::AccessibilityObject::accessibilityIsIgnoredByDefault const):
(WebCore::AccessibilityObject::defaultObjectInclusion const):
(WebCore::AccessibilityObject::accessibilityIsIgnored const):
(WebCore::AccessibilityObject::isContainedByPasswordField const):
(WebCore::AccessibilityObject::AccessibilityObject): Deleted.

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityText::AccessibilityText):
(WebCore::AccessibilityIsIgnoredFromParentData::AccessibilityIsIgnoredFromParentData):
(WebCore::AccessibilityObject::isImageMap const):
(WebCore::AccessibilityObject::isWebArea const):
(WebCore::AccessibilityObject::isCheckbox const):
(WebCore::AccessibilityObject::isRadioButton const):
(WebCore::AccessibilityObject::isListBox const):
(WebCore::AccessibilityObject::isSpinButton const):
(WebCore::AccessibilityObject::isSwitch const):
(WebCore::AccessibilityObject::isToggleButton const):
(WebCore::AccessibilityObject::isTabList const):
(WebCore::AccessibilityObject::isTabItem const):
(WebCore::AccessibilityObject::isRadioGroup const):
(WebCore::AccessibilityObject::isComboBox const):
(WebCore::AccessibilityObject::isTree const):
(WebCore::AccessibilityObject::isTreeGrid const):
(WebCore::AccessibilityObject::isTreeItem const):
(WebCore::AccessibilityObject::isScrollbar const):
(WebCore::AccessibilityObject::isListItem const):
(WebCore::AccessibilityObject::isScrollView const):
(WebCore::AccessibilityObject::isCanvas const):
(WebCore::AccessibilityObject::isPopUpButton const):
(WebCore::AccessibilityObject::isColorWell const):
(WebCore::AccessibilityObject::isSplitter const):
(WebCore::AccessibilityObject::isToolbar const):
(WebCore::AccessibilityObject::isSummary const):
(WebCore::AccessibilityObject::isStaticText const):
(WebCore::AccessibilityObject::ariaRoleAttribute const):
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):

  • accessibility/AccessibilityProgressIndicator.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::parentObject const):
(WebCore::AccessibilityRenderObject::isAttachment const):
(WebCore::AccessibilityRenderObject::helpText const):
(WebCore::AccessibilityRenderObject::stringValue const):
(WebCore::AccessibilityRenderObject::addRadioButtonGroupChildren const):
(WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers const):
(WebCore::AccessibilityRenderObject::linkedUIElements const):
(WebCore::AccessibilityRenderObject::isAllowedChildOfTree const):
(WebCore::objectInclusionFromAltText):
(WebCore::AccessibilityRenderObject::defaultObjectInclusion const):
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):
(WebCore::AccessibilityRenderObject::selectedTextRange const):
(WebCore::AccessibilityRenderObject::isTabItemSelected const):
(WebCore::AccessibilityRenderObject::isFocused const):
(WebCore::AccessibilityRenderObject::setSelectedRows):
(WebCore::AccessibilityRenderObject::getDocumentLinks):
(WebCore::AccessibilityRenderObject::shouldFocusActiveDescendant const):
(WebCore::AccessibilityRenderObject::handleAriaExpandedChanged):
(WebCore::AccessibilityRenderObject::supportsExpandedTextValue const):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
(WebCore::AccessibilityRenderObject::orientation const):
(WebCore::AccessibilityRenderObject::inheritsPresentationalRole const):
(WebCore::AccessibilityRenderObject::ariaRoleHasPresentationalChildren const):
(WebCore::AccessibilityRenderObject::canSetExpandedAttribute const):
(WebCore::AccessibilityRenderObject::addImageMapChildren):
(WebCore::AccessibilityRenderObject::addTextFieldChildren):
(WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation):
(WebCore::AccessibilityRenderObject::ariaLiveRegionAtomic const):
(WebCore::AccessibilityRenderObject::canHaveSelectedChildren const):
(WebCore::AccessibilityRenderObject::ariaListboxSelectedChildren):
(WebCore::AccessibilityRenderObject::selectedChildren):
(WebCore::AccessibilityRenderObject::visibleChildren):
(WebCore::AccessibilityRenderObject::tabChildren):
(WebCore::AccessibilityRenderObject::actionVerb const):
(WebCore::msaaRoleForRenderer):
(WebCore::AccessibilityRenderObject::roleValueForMSAA const):

  • accessibility/AccessibilitySVGElement.cpp:

(WebCore::AccessibilitySVGElement::accessibilityText):
(WebCore::AccessibilitySVGElement::computeAccessibilityIsIgnored const):
(WebCore::AccessibilitySVGElement::inheritsPresentationalRole const):
(WebCore::AccessibilitySVGElement::determineAriaRoleAttribute const):
(WebCore::AccessibilitySVGElement::determineAccessibilityRole):

  • accessibility/AccessibilitySVGRoot.h:
  • accessibility/AccessibilityScrollView.cpp:

(WebCore::AccessibilityScrollView::scrollBar):

  • accessibility/AccessibilityScrollView.h:
  • accessibility/AccessibilityScrollbar.cpp:

(WebCore::AccessibilityScrollbar::orientation const):

  • accessibility/AccessibilityScrollbar.h:
  • accessibility/AccessibilitySlider.cpp:

(WebCore::AccessibilitySlider::orientation const):
(WebCore::AccessibilitySlider::addChildren):

  • accessibility/AccessibilitySlider.h:
  • accessibility/AccessibilitySpinButton.cpp:

(WebCore::AccessibilitySpinButton::addChildren):

  • accessibility/AccessibilitySpinButton.h:
  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::hasARIARole const):
(WebCore::AccessibilityTable::addChildren):
(WebCore::AccessibilityTable::headerContainer):
(WebCore::AccessibilityTable::roleValue const):
(WebCore::AccessibilityTable::computeAccessibilityIsIgnored const):
(WebCore::AccessibilityTable::titleElementText const):

  • accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::computeAccessibilityIsIgnored const):
(WebCore::AccessibilityTableCell::determineAccessibilityRole):

  • accessibility/AccessibilityTableColumn.cpp:

(WebCore::AccessibilityTableColumn::headerObject):

  • accessibility/AccessibilityTableColumn.h:
  • accessibility/AccessibilityTableHeaderContainer.h:
  • accessibility/AccessibilityTableRow.cpp:

(WebCore::AccessibilityTableRow::determineAccessibilityRole):
(WebCore::AccessibilityTableRow::computeAccessibilityIsIgnored const):

  • accessibility/AccessibilityTree.cpp:

(WebCore::AccessibilityTree::determineAccessibilityRole):

  • accessibility/ios/AccessibilityObjectIOS.mm:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):
(WebCore::AccessibilityObject::isInputTypePopupButton const):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
(-[WebAccessibilityObjectWrapper _accessibilityIsLandmarkRole:]):
(-[WebAccessibilityObjectWrapper _accessibilityTreeAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityListAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityArticleAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]):
(-[WebAccessibilityObjectWrapper _accessibilityTextEntryTraits]):
(-[WebAccessibilityObjectWrapper accessibilityTraits]):
(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
(-[WebAccessibilityObjectWrapper stringValueShouldBeUsedInLabel]):
(-[WebAccessibilityObjectWrapper accessibilityLabel]):
(-[WebAccessibilityObjectWrapper accessibilityValue]):
(-[WebAccessibilityObjectWrapper accessibilityIsComboBox]):
(-[WebAccessibilityObjectWrapper containsUnnaturallySegmentedChildren]):
(-[WebAccessibilityObjectWrapper accessibilityLinkedElement]):
(-[WebAccessibilityObjectWrapper treeItemParentForObject:]):
(-[WebAccessibilityObjectWrapper accessibilityElementDidBecomeFocused]):
(-[WebAccessibilityObjectWrapper accessibilitySortDirection]):

  • accessibility/mac/AccessibilityObjectMac.mm:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(-[WebAccessibilityObjectWrapperBase baseAccessibilityTitle]):
(-[WebAccessibilityObjectWrapperBase baseAccessibilityDescription]):
(-[WebAccessibilityObjectWrapperBase baseAccessibilityHelpText]):
(-[WebAccessibilityObjectWrapperBase ariaLandmarkRoleDescription]):
(createAccessibilitySearchKeyMap):
(accessibilitySearchKeyForString):
(accessibilitySearchCriteriaForSearchPredicateParameterizedAttribute):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(accessibilitySelectTextCriteriaForCriteriaParameterizedAttribute):
(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
(createAccessibilityRoleMap):
(roleValueToNSString):
(-[WebAccessibilityObjectWrapper role]):
(-[WebAccessibilityObjectWrapper subrole]):
(-[WebAccessibilityObjectWrapper roleDescription]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper accessibilityPerformShowMenuAction]):
(-[WebAccessibilityObjectWrapper _accessibilitySetValue:forAttribute:]):

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):

5:34 PM Changeset in webkit [224073] by mmaxfield@apple.com
  • 10 edits in trunk/LayoutTests

[iOS] Update expected results for writing-mode tests
https://bugs.webkit.org/show_bug.cgi?id=178916
<rdar://problem/33250084>

Unreviewed.

  • platform/ios/TestExpectations:
  • platform/ios/fast/writing-mode/border-vertical-lr-expected.txt:
  • platform/ios/fast/writing-mode/japanese-lr-text-expected.txt:
  • platform/ios/fast/writing-mode/japanese-rl-text-expected.txt:
  • platform/ios/fast/writing-mode/japanese-ruby-horizontal-bt-expected.txt:
  • platform/ios/fast/writing-mode/japanese-ruby-vertical-lr-expected.txt:
  • platform/ios/fast/writing-mode/japanese-ruby-vertical-rl-expected.txt:
  • platform/ios/fast/writing-mode/vertical-align-table-baseline-expected.txt:
  • platform/ios/fast/writing-mode/vertical-baseline-alignment-expected.txt:
5:31 PM Changeset in webkit [224072] by msaboff@apple.com
  • 3 edits
    1 add in trunk

REGRESSION(r222601): We fail to properly backtrack into a sub pattern of a parenthesis with non-zero minimum
https://bugs.webkit.org/show_bug.cgi?id=178890

Reviewed by Keith Miller.

JSTests:

New regression test.

  • stress/regress-178890.js: Added.

Source/JavaScriptCore:

We need to let a contained subpattern backtrack before declaring that the containing
parenthesis doesn't match. If the subpattern fails to match backtracking, then we
can check to see if we trying to backtrack below the minimum match count.

  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::Interpreter::backtrackParentheses):

4:59 PM Changeset in webkit [224071] by achristensen@apple.com
  • 6 edits
    1 add in trunk

Move WKWebViewConfiguration validation to WKWebView construction
https://bugs.webkit.org/show_bug.cgi?id=178840

Reviewed by Tim Horton.
Source/WebKit:


I'm trying to remove WKWebViewConfigurationInternal methods so I can make WKWebViewConfiguration
a wrapper around an APIObject like all the other API objects. A small step towards making this easier
is to remove the unnecessary method _validate and move its logic to its one callsite. I added an API test
that ensures no change in behavior.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration _validate]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewConfigurationInternal.h:

Tools:

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

(TEST):

4:50 PM Changeset in webkit [224070] by commit-queue@webkit.org
  • 3 edits
    4 adds in trunk

importScripts in service worker should use ServiceWorkersMode::None
https://bugs.webkit.org/show_bug.cgi?id=178888

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-26
Reviewed by Chris Dumez.

Source/WebCore:

Test: http/tests/workers/service/service-worker-importScript.html

Made sure ServiceWorkersMode::None is used for loading scripts in service workers as we do not support foreign fetch.

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously):

LayoutTests:

  • http/tests/workers/service/resources/service-worker-importScript-worker.js: Added.
  • http/tests/workers/service/resources/service-worker-importScript.js: Added.
  • http/tests/workers/service/service-worker-importScript-expected.txt: Added.
  • http/tests/workers/service/service-worker-importScript.html: Added.
4:44 PM Changeset in webkit [224069] by keith_miller@apple.com
  • 1 edit in trunk/Source/WebCore/ChangeLog

Unreviewed, cleanup changelogs.

4:42 PM Changeset in webkit [224068] by Megan Gardner
  • 3 edits in trunk/Source/WebKit

Remove unneeded block selection calculation code
https://bugs.webkit.org/show_bug.cgi?id=178889

Reviewed by Tim Horton.

Removing more block selection code. Much of this should have been removed
before, as the only things that were using these functions were removed in the
last patch. Also remove the code decided if you should move to block mode or not,
as the answer now is always NO.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateSelectionWithTouches):
(WebKit::WebPage::rangeForBlockAtPoint): Deleted.
(WebKit::distanceBetweenRectsForPosition): Deleted.
(WebKit::rectsEssentiallyTheSame): Deleted.
(WebKit::unionDOMRanges): Deleted.
(WebKit::computeEdgeCenter): Deleted.
(WebKit::WebPage::expandedRangeFromHandle): Deleted.
(WebKit::WebPage::contractedRangeFromHandle): Deleted.
(WebKit::WebPage::computeExpandAndShrinkThresholdsForHandle): Deleted.
(WebKit::WebPage::switchToBlockSelectionAtPoint): Deleted.
(WebKit::WebPage::shouldSwitchToBlockModeForHandle): Deleted.

4:41 PM Changeset in webkit [224067] by webkit@devinrousso.com
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas Tab: canvases overview should support navigation via keyboard
https://bugs.webkit.org/show_bug.cgi?id=178800
<rdar://problem/35175856>

Reviewed by Brian Burg.

Create a KeyboardShorcut for each of the following:

  • Up: selects the previous canvas in the selected column
  • Down: selects the next canvas in the selected column
  • Right: selects the next canvas in the selected row
  • Left: selects the previous canvas in the selected row
  • Space: toggle recording of the selected canvas
  • Shift+Space: toggle single-frame recording of the selected canvas

The calculation for selected row/colum is based on the offsetWidth of the parent element
and the selected item's content view element. Since this view uses a flexbox, all of the
items are expected to have the same dimensions, meaning that this value is uniform. The
intended functionality is that of a spreadsheet, where pressing pressing left/right will
never change the selected row and up/down will never change the selected column.

  • UserInterface/Views/CanvasOverviewContentView.css:

(.content-view.canvas-overview):
(.content-view.canvas-overview .content-view.canvas):
Move margin value to a CSS variable so that it can be easily retrieved via JavaScript.

  • UserInterface/Views/CanvasOverviewContentView.js:

(WI.CanvasOverviewContentView):
(WI.CanvasOverviewContentView.prototype.contentViewAdded):
(WI.CanvasOverviewContentView.prototype.contentViewRemoved):
(WI.CanvasOverviewContentView.prototype.attached):
(WI.CanvasOverviewContentView.prototype.detached):
(WI.CanvasOverviewContentView.prototype.get _itemMargin):
(WI.CanvasOverviewContentView.prototype._changeSelectedItemVertically):
(WI.CanvasOverviewContentView.prototype._changeSelectedItemHorizontally):
(WI.CanvasOverviewContentView.prototype._updateNavigationItems):
(WI.CanvasOverviewContentView.prototype._handleUp):
(WI.CanvasOverviewContentView.prototype._handleRight):
(WI.CanvasOverviewContentView.prototype._handleDown):
(WI.CanvasOverviewContentView.prototype._handleLeft):
(WI.CanvasOverviewContentView.prototype._handleSpace):
(WI.CanvasOverviewContentView.prototype._supplementalRepresentedObjectsDidChange):
Drive-by: call _updateNavigationItems whenever an item is added/removed so that if there
are no items the navigation items cannot be clicked.

4:37 PM Changeset in webkit [224066] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Implement ServiceWorkerContainer getRegistration
https://bugs.webkit.org/show_bug.cgi?id=178882

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-26

  • TestExpectations: Skipping service worker tests until they can produce results.
4:32 PM Changeset in webkit [224065] by mmaxfield@apple.com
  • 2 edits
    47 adds in trunk/Tools

Demonstrate a possible structure of the WebGPU API
https://bugs.webkit.org/show_bug.cgi?id=178874

Reviewed by Dean Jackson.

Over the past few weeks, we've been putting together an example showing that a WebGPU API
which has implicit barriers can work on all three low-level graphics APIs. We've implemented
it on top of Vulkan first, because this is the API which has the strictest requirements and
is most difficult to use.

With this API, this is a valid WebGPU snippet:

auto device = WebGPU::Device::create(hInstance, hWnd);
auto& commandQueue = device->getCommandQueue();
auto& renderState = device->getRenderState(vertexShader, "main", fragmentShader, "main", { }, { }, { }, nullptr);

… later, in the draw() function …

auto renderPass = commandQueue->createRenderPass(nullptr);
renderPass->setRenderState(renderState);
renderPass->setViewport(0, 0, width, height);
renderPass->setScissorRect(0, 0, width, height);
renderPass->draw(3);
commandQueue->commitRenderPass(std::move(renderPass));
commandQueue->present();

This snippet doesn’t hook up any vertex attributes or resources, which means the vertex
shader has to say something like ({vec4(…), vec4(…), vec4(…)})[gl_VertexIndex]. It also
passes in “nullptr” when creating the render pass, which means “render to the screen, rather
than to a frame buffer.” You can also see that it doesn’t attach any resources to the draw
call.

In Direct3D 12 and Vulkan, resources are bound in sets, rather than individually. For
example, a set might contain two uniform buffers, a texture, and another uniform buffer. At
draw time, you swap in whole sets of resources with a single call. A shader invocation can
access a collection of sets. Because all shader resource accesses are indirected through
these sets, the shape of these sets needs to be supplied at the time you compile the render
state. Here is a snippet which bounds a single set which contains a uniform buffer and a
texture:

auto buffer = device->getBuffer(bufferInitialContents);
auto texture = device->getTexture(buffer width, height, WebGPU::PixelFormat::RGBA8, textureInitialContents);
One resource set, which holds a single uniform buffer object and a single texture
auto& renderState = device->getRenderState(vertexShader, "main", fragmentShader, "main", { }, { }, { { WebGPU::ResourceType::UniformBufferObject, WebGPU::ResourceType::Texture } }, nullptr);

… later, in the draw() function …

auto renderPass = commandQueue->createRenderPass(nullptr);
renderPass->setRenderState(renderState);
renderPass->setResources(0, { WebGPU::UniformBufferObjectReference(buffer.get()), WebGPU::TextureReference(texture.get()) });

renderPass->draw(3);
commandQueue->commitRenderPass(std::move(renderPass));
commandQueue->present();

The first argument to the setResources() call identifies which set to populate with the supplied resources.

One tenant of the low-level graphics APIs is that, if you’ve enabled double buffering (or
triple buffering), the GPU is executing one frame at the same time you are recording the
next frame. This often means that you need duplicate resources so the CPU and GPU don’t step
on each other’s toes. However, platforms have platform-specific requirements about whether
or not they can be double / triple buffered, and we don’t want to expose this to the Web for
fear of badly-authored programs.

To solve this, resources are reference counted, and the return type of getBuffer() is an
RAII type called BufferHolder which increments and decrements the reference count
automatically. The reference count is also incremented and decremented when the GPU is using
the resource in a Pass. When the reference count reaches 0, the resource isn’t destroyed;
instead, it’s simply moved to a “free list” which getBuffer() may pull from. Therefore,
applications don’t need to know whether the frame buffer is double buffered or triple
buffered; they can just getBuffer() each frame, and the correct number of buffers will be
created and recycled.

{

auto buffer = device->getBuffer(bufferSize); These get recycled
… populate the buffer …
auto renderPass = commandQueue->createRenderPass(nullptr);
renderPass->setRenderState(renderState);
renderPass->setResources(0, { WebGPU::UniformBufferObjectReference(buffer.get()) });

renderPass->draw(…);
commandQueue->commitRenderPass(std::move(renderPass));

}
commandQueue->present();

In Direct3D and Vulkan, vertex buffers and index buffers are not part of the resource sets
mentioned above. Instead, you tell the render state about the shape of the vertex and index
buffers, and you swap them out independently in the draw loop. Metal and Vulkan have almost
identical API to specify this shape of the vertex buffers, so I’ve mostly copied it. In this
example, we have two vertex attributes, a vec2 and a vec3, which both come from the same
buffer:

{ Attribute format, offset within stride, buffer to pull from }
std::vector<WebGPU::RenderState::VertexAttribute> vertexAttributes = { {WebGPU::RenderState::VertexFormat::Float2, 0, 0}, {WebGPU::RenderState::VertexFormat::Float3, sizeof(float) * 2, 0} };
A single vertex buffer, with a stride of 5 floats
auto& renderState = device->getRenderState(vertexShader, "main", fragmentShader, "main", { sizeof(float) * 5 }, vertexAttributes, resourceTypes, nullptr);

… later, in the draw() function …

auto renderPass = commandQueue->createRenderPass(nullptr);
renderPass->setRenderState(renderState);
renderPass->setVertexAttributeBuffers({ vertexBuffer.get() }); The one vertex buffer which both attributes pull from
renderPass->setResources(…);

renderPass->draw(…);
commandQueue->commitRenderPass(std::move(renderPass));
commandQueue->present();

You can also tell the RenderState about how many render targets you have and their formats,
and then when you create the RenderPass, you specify the specific textures you want to
render into.

std::vector<WebGPU::PixelFormat> colorPixelFormats = { WebGPU::PixelFormat::RGBA8, WebGPU::PixelFormat::RGBA8 }; Two render targets, with these formats
auto& renderState = device->getRenderState(vertexShader, "main", fragmentShader, "main", vertexBufferStrides, vertexAttributes, resourceTypes, &colorPixelFormats);

… later, in the draw() function …

std::vector<std::reference_wrapper<WebGPU::Texture>> destinationTextures = { texture1->get(), texture2->get() };
auto renderPass = commandQueue->createRenderPass(&destinationTextures);
renderPass->setRenderState(renderState);

renderPass->draw(…);
commandQueue->commitRenderPass(std::move(renderPass));

Now, draw one of the textures to the screen. Note that no synchronization is necessary here!
auto renderPass = commandQueue->createRenderPass(nullptr);
renderPass->setRenderState(renderState2);
renderPass->setResources(0, { WebGPU:: TextureReference(texture1.get()) });

renderPass->draw(…);
commandQueue->commitRenderPass(std::move(renderPass));
commandQueue->present();

Just like how in Metal has Render Encoders and Compute Encoders, WebGPU has RenderPasses
and ComputePasses.

auto& computeState = device->getComputeState(computeShader, "main", resourceTypes);

auto computePass = commandQueue->createComputePass();
computePass->setComputeState(computeState);
computePass->setResources(0, resources);
computePass->dispatch(width, height, depth);
commandQueue->commitComputePass(std::move(computePass));

Now, draw the resources we just computed. Note that no synchronization is necessary here!
auto renderPass = commandQueue->createRenderPass(nullptr);
renderPass->setRenderState(renderState);
renderPass->setResources(0, resources });

renderPass->draw(…);
commandQueue->commitRenderPass(std::move(renderPass));
commandQueue->present();

There are also two other types of passes: one that corresponds to a Metal blit encoder, and
one that allows the CPU to change the contents of GPU buffers and textures. This last kind
of pass is a little interesting: you can’t just change the contents of a buffer at any time
you feel like it, because that resource might be in use by the GPU. Therefore, we need to do
the same kind of synchronization that we already do at render pass boundaries.

In addition, both Vulkan and Direct3D have a concept of a memory heap. A resource might
exist inside a heap which is fast, but invisible from the CPU, or in a heap which is slow,
but visible by the CPU. Certain operations are not possible from some types of images (e.g.
non-tiled textures may not be able to be sampled from). The usual way to get around this
problem is to have two resources: a slow staging resource which the CPU can see, and a fast
resource which the CPU can’t see. Uploading data is a two-pass algorithm, where the CPU
memcpy()s into the slow staging resource, and then a blit command is enqueued on the GPU to
copy the contents of the staging resource to the real resource. This requires that the
upload have access to the commandQueue so it can possibly enqueue a blit between the staging
and real resources. Therefore, a pass is the right level of abstraction for these facilities.

std::queue<boost::unique_future<std::vector<uint8_t>>> futureQueue; Promises for data downloads from the GPU

… later, in the draw() function …

See if any of the previously-enqueued downloads are finished
while (!futureQueue.empty() && futureQueue.front(). has_value()) {

std::vector<uint8_t>& data = futureQueue.front().get();
Use the downloaded data
futureQueue.pop();

}

auto hostAccessPass = commandQueue->createHostAccessPass();
hostAccessPass->overwriteBuffer(buffer->get(), bufferContents); Upload data to a resource

futureQueue.emplace(hostAccessPass->getBufferContents(buffer->get()));
commandQueue->commitHostAccessPass(std::move(hostAccessPass));

You can also issue copy commands between resources entirely on the GPU:

auto blitPass = commandQueue->createBlitPass();
blitPass->copyTexture(source->get(), destination->get(), sourceX, sourceY, destinationX, destinationY, width, height);
commandQueue->commitBlitPass(std::move(blitPass));

  • Scripts/webkitpy/style/checker.py:
  • WebGPUAPIStructure/Example/Example.cpp: Added.

(readFile):
(drawWebGPU):
(wWinMain):
(MyRegisterClass):
(InitInstance):
(WndProc):

  • WebGPUAPIStructure/Example/Example.h: Added.
  • WebGPUAPIStructure/Example/Example.ico: Added.
  • WebGPUAPIStructure/Example/Example.rc: Added.
  • WebGPUAPIStructure/Example/Example.vcxproj: Added.
  • WebGPUAPIStructure/Example/Example.vcxproj.filters: Added.
  • WebGPUAPIStructure/Example/Example.vcxproj.user: Added.
  • WebGPUAPIStructure/Example/resource.h: Added.
  • WebGPUAPIStructure/Example/small.ico: Added.
  • WebGPUAPIStructure/Example/stdafx.cpp: Added.
  • WebGPUAPIStructure/Example/stdafx.h: Added.
  • WebGPUAPIStructure/Example/targetver.h: Added.
  • WebGPUAPIStructure/WebGPU-Common/WebGPU-Common.vcxproj: Added.
  • WebGPUAPIStructure/WebGPU-Common/WebGPU-Common.vcxproj.filters: Added.
  • WebGPUAPIStructure/WebGPU-Common/WebGPU.cpp: Added.

(WebGPU::BufferHolder::BufferHolder):
(WebGPU::BufferHolder::~BufferHolder):
(WebGPU::TextureHolder::TextureHolder):
(WebGPU::TextureHolder::~TextureHolder):
(WebGPU::SamplerHolder::SamplerHolder):
(WebGPU::SamplerHolder::~SamplerHolder):

  • WebGPUAPIStructure/WebGPU-Common/WebGPU.h: Added.

(WebGPU::Queue::~Queue):
(WebGPU::RenderState::~RenderState):
(WebGPU::ComputeState::~ComputeState):
(WebGPU::Buffer::~Buffer):
(WebGPU::Texture::~Texture):
(WebGPU::Sampler::~Sampler):
(WebGPU::TextureReference::TextureReference):
(WebGPU::TextureReference::get const):
(WebGPU::SamplerReference::SamplerReference):
(WebGPU::SamplerReference::get const):
(WebGPU::UniformBufferObjectReference::UniformBufferObjectReference):
(WebGPU::UniformBufferObjectReference::get const):
(WebGPU::ShaderStorageBufferObjectReference::ShaderStorageBufferObjectReference):
(WebGPU::ShaderStorageBufferObjectReference::get const):
(WebGPU::RenderPass::~RenderPass):
(WebGPU::ComputePass::~ComputePass):
(WebGPU::BlitPass::~BlitPass):
(WebGPU::HostAccessPass::~HostAccessPass):
(WebGPU::BufferHolder::get):
(WebGPU::TextureHolder::get):
(WebGPU::SamplerHolder::get):
(WebGPU::Device::~Device):

  • WebGPUAPIStructure/WebGPU-Vulkan/BlitPassImpl.cpp: Added.

(WebGPU::BlitPassImpl::BlitPassImpl):
(WebGPU::BlitPassImpl::copyTexture):

  • WebGPUAPIStructure/WebGPU-Vulkan/BlitPassImpl.h: Added.
  • WebGPUAPIStructure/WebGPU-Vulkan/BufferImpl.cpp: Added.

(WebGPU::BufferImpl::BufferImpl):
(WebGPU::BufferImpl::decrementReferenceCount):

  • WebGPUAPIStructure/WebGPU-Vulkan/BufferImpl.h: Added.

(WebGPU::BufferImpl::getBuffer const):
(WebGPU::BufferImpl::getDeviceMemory const):
(WebGPU::BufferImpl::incrementReferenceCount):
(WebGPU::BufferImpl::getLength const):

  • WebGPUAPIStructure/WebGPU-Vulkan/ComputePassImpl.cpp: Added.

(WebGPU::ComputePassImpl::ComputePassImpl):
(WebGPU::ComputePassImpl::setComputeState):
(WebGPU::ComputePassImpl::setResources):
(WebGPU::ComputePassImpl::dispatch):

  • WebGPUAPIStructure/WebGPU-Vulkan/ComputePassImpl.h: Added.
  • WebGPUAPIStructure/WebGPU-Vulkan/ComputeStateImpl.cpp: Added.

(WebGPU::ComputeStateImpl::ComputeStateImpl):

  • WebGPUAPIStructure/WebGPU-Vulkan/ComputeStateImpl.h: Added.

(WebGPU::ComputeStateImpl::getPipeline const):
(WebGPU::ComputeStateImpl::getPipelineLayout const):
(WebGPU::ComputeStateImpl::getDescriptorSetLayouts const):

  • WebGPUAPIStructure/WebGPU-Vulkan/DeviceImpl.cpp: Added.

(WebGPU::Device::create):
(WebGPU::convertPixelFormat):
(WebGPU::convertFormat):
(WebGPU::debugReport):
(WebGPU::DeviceImpl::DeviceImpl):
(WebGPU::DeviceImpl::getCommandQueue):
(WebGPU::DeviceImpl::prepareShader):
(WebGPU::DeviceImpl::createPipelineLayout):
(WebGPU::DeviceImpl::createCompatibleRenderPass):
(WebGPU::convertVertexFormat):
(WebGPU::DeviceImpl::getRenderState):
(WebGPU::DeviceImpl::getComputeState):
(WebGPU::DeviceImpl::getBuffer):
(WebGPU::DeviceImpl::returnBuffer):
(WebGPU::DeviceImpl::getTexture):
(WebGPU::DeviceImpl::returnTexture):
(WebGPU::DeviceImpl::getSampler):
(WebGPU::DeviceImpl::returnSampler):
(WebGPU::DeviceImpl::~DeviceImpl):

  • WebGPUAPIStructure/WebGPU-Vulkan/DeviceImpl.h: Added.

(WebGPU::DeviceImpl::UniqueDebugReportCallbackEXT::UniqueDebugReportCallbackEXT):
(WebGPU::DeviceImpl::UniqueDebugReportCallbackEXT::operator=):
(WebGPU::DeviceImpl::UniqueDebugReportCallbackEXT::~UniqueDebugReportCallbackEXT):
(WebGPU::DeviceImpl::UniqueDebugReportCallbackEXT::destroy):
(WebGPU::DeviceImpl::TextureParameters::operator== const):
(WebGPU::DeviceImpl::TextureParametersHash::operator() const):

  • WebGPUAPIStructure/WebGPU-Vulkan/HostAccessPassImpl.cpp: Added.

(WebGPU::HostAccessPassImpl::HostAccessPassImpl):
(WebGPU::HostAccessPassImpl::overwriteBuffer):
(WebGPU::HostAccessPassImpl::getBufferContents):
(WebGPU::HostAccessPassImpl::execute):

  • WebGPUAPIStructure/WebGPU-Vulkan/HostAccessPassImpl.h: Added.

(WebGPU::HostAccessPassImpl::getFinishedEvent const):

  • WebGPUAPIStructure/WebGPU-Vulkan/PassImpl.cpp: Added.

(WebGPU::PassImpl::PassImpl):
(WebGPU::ResourceVisitor::operator()):
(WebGPU::ResourceVisitor::getBindings const):
(WebGPU::ResourceVisitor::releaseWriteDescriptorSets):
(WebGPU::ResourceVisitor::getDescriptorImageInfos const):
(WebGPU::ResourceVisitor::getDescriptorBufferInfos const):
(WebGPU::ResourceVisitor::getBuffers const):
(WebGPU::ResourceVisitor::getTextures const):
(WebGPU::ResourceVisitor::getSamplers const):
(WebGPU::ResourceVisitor::getImageCount const):
(WebGPU::ResourceVisitor::getSamplerCount const):
(WebGPU::ResourceVisitor::getUniformBufferCount const):
(WebGPU::ResourceVisitor::getStorageBufferCount const):
(WebGPU::PassImpl::setResources):
(WebGPU::PassImpl::insertBuffer):
(WebGPU::PassImpl::insertTexture):
(WebGPU::PassImpl::insertSampler):

  • WebGPUAPIStructure/WebGPU-Vulkan/PassImpl.h: Added.

(WebGPU::PassImpl::getCommandBuffer const):
(WebGPU::PassImpl::iterateBuffers):
(WebGPU::PassImpl::iterateTextures):
(WebGPU::PassImpl::ResourceReference::ResourceReference):
(WebGPU::PassImpl::ResourceReference::~ResourceReference):
(WebGPU::PassImpl::ResourceReference::operator=):
(WebGPU::PassImpl::ResourceReference::operator== const):
(WebGPU::PassImpl::ResourceReference::get const):
(WebGPU::PassImpl::ResourceReference::release):
(WebGPU::PassImpl::ResourceReferenceHash::operator() const):

  • WebGPUAPIStructure/WebGPU-Vulkan/QueueImpl.cpp: Added.

(WebGPU::QueueImpl::QueueImpl):
(WebGPU::QueueImpl::prepareCurrentFrame):
(WebGPU::QueueImpl::createSpecificRenderPass):
(WebGPU::QueueImpl::createFramebuffer):
(WebGPU::QueueImpl::createRenderPass):
(WebGPU::QueueImpl::commitRenderPass):
(WebGPU::QueueImpl::createComputePass):
(WebGPU::QueueImpl::commitComputePass):
(WebGPU::QueueImpl::createBlitPass):
(WebGPU::QueueImpl::commitBlitPass):
(WebGPU::QueueImpl::createHostAccessPass):
(WebGPU::QueueImpl::commitHostAccessPass):
(WebGPU::QueueImpl::present):
(WebGPU::QueueImpl::commitPass):
(WebGPU::QueueImpl::synchronizeResources):
(WebGPU::QueueImpl::~QueueImpl):

  • WebGPUAPIStructure/WebGPU-Vulkan/QueueImpl.h: Added.
  • WebGPUAPIStructure/WebGPU-Vulkan/RenderPassImpl.cpp: Added.

(WebGPU::RenderPassImpl::RenderPassImpl):
(WebGPU::RenderPassImpl::setRenderState):
(WebGPU::RenderPassImpl::setVertexAttributeBuffers):
(WebGPU::RenderPassImpl::setResources):
(WebGPU::RenderPassImpl::setViewport):
(WebGPU::RenderPassImpl::setScissorRect):
(WebGPU::RenderPassImpl::draw):

  • WebGPUAPIStructure/WebGPU-Vulkan/RenderPassImpl.h: Added.
  • WebGPUAPIStructure/WebGPU-Vulkan/RenderStateImpl.cpp: Added.

(WebGPU::RenderStateImpl::RenderStateImpl):

  • WebGPUAPIStructure/WebGPU-Vulkan/RenderStateImpl.h: Added.

(WebGPU::RenderStateImpl::getPipeline const):
(WebGPU::RenderStateImpl::getPipelineLayout const):
(WebGPU::RenderStateImpl::getDescriptorSetLayouts const):

  • WebGPUAPIStructure/WebGPU-Vulkan/SamplerImpl.cpp: Added.

(WebGPU::SamplerImpl::SamplerImpl):
(WebGPU::SamplerImpl::decrementReferenceCount):

  • WebGPUAPIStructure/WebGPU-Vulkan/SamplerImpl.h: Added.

(WebGPU::SamplerImpl::getSampler):
(WebGPU::SamplerImpl::incrementReferenceCount):
(WebGPU::SamplerImpl::getFilter):
(WebGPU::SamplerImpl::getMipmapMode):
(WebGPU::SamplerImpl::getAddressMode):

  • WebGPUAPIStructure/WebGPU-Vulkan/TextureImpl.cpp: Added.

(WebGPU::TextureImpl::TextureImpl):
(WebGPU::TextureImpl::decrementReferenceCount):

  • WebGPUAPIStructure/WebGPU-Vulkan/TextureImpl.h: Added.

(WebGPU::TextureImpl::getImage const):
(WebGPU::TextureImpl::getImageView const):
(WebGPU::TextureImpl::getFormat const):
(WebGPU::TextureImpl::incrementReferenceCount):
(WebGPU::TextureImpl::getWidth const):
(WebGPU::TextureImpl::getHeight const):
(WebGPU::TextureImpl::getTransferredToGPU const):
(WebGPU::TextureImpl::setTransferredToGPU):

  • WebGPUAPIStructure/WebGPU-Vulkan/WebGPU-Vulkan.vcxproj: Added.
  • WebGPUAPIStructure/WebGPU-Vulkan/WebGPU-Vulkan.vcxproj.filters: Added.
  • WebGPUAPIStructure/WebGPU.sln: Added.
4:32 PM Changeset in webkit [224064] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles Redesign: Make "Style Attribute" text darker and non-focusable
https://bugs.webkit.org/show_bug.cgi?id=178837

Reviewed by Brian Burg.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:

(.spreadsheet-css-declaration .selector.style-attribute):
Use the same shade of gray as in the "Inherited from" sections.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
Only editable selectors should be focusable.

4:30 PM Changeset in webkit [224063] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Call setFullscreenClient on iOS.
https://bugs.webkit.org/show_bug.cgi?id=178089

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-10-26
Reviewed by Simon Fraser.

This was only being set for MacOS.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _commonInitializationWithProcessPool:configuration:]):

4:28 PM Changeset in webkit [224062] by keith_miller@apple.com
  • 2 edits in trunk/Source/WebCore

[Payment Request] Restrict API use to secure, same-origin frames
https://bugs.webkit.org/show_bug.cgi?id=178887

Patch by Andy Estes <aestes@apple.com> on 2017-10-26
Reviewed by Tim Horton.

Reuse the access checks from Apple Pay to restrict PaymentRequest API usage to secure frames
in the same origin as the main frame.

Progresses active-document-cross-origin.https.sub.html and
active-document-same-origin.https.html from web-platform-tests. Regresses basic.https.html
since the allowpaymentrequest <iframe> attribute is not yet implemented.

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::ApplePaySession::create):
(WebCore::ApplePaySession::supportsVersion):
(WebCore::ApplePaySession::canMakePayments):
(WebCore::ApplePaySession::canMakePaymentsWithActiveCard):
(WebCore::ApplePaySession::openPaymentSetup):
(WebCore::isSecure): Deleted.
(WebCore::canCallApplePaySessionAPIs): Deleted.

  • Modules/applepay/PaymentSession.cpp: Added.

(WebCore::isSecure):
(WebCore::PaymentSession::canCreateSession):

  • Modules/applepay/PaymentSession.h:
  • Modules/paymentrequest/PaymentHandler.cpp:

(WebCore::PaymentHandler::canCreateSession):

  • Modules/paymentrequest/PaymentHandler.h:
  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::create):

  • WebCore.xcodeproj/project.pbxproj:
4:25 PM Changeset in webkit [224061] by aestes@apple.com
  • 11 edits
    1 add in trunk

[Payment Request] Restrict API use to secure, same-origin frames
https://bugs.webkit.org/show_bug.cgi?id=178887

Reviewed by Tim Horton.

LayoutTests/imported/w3c:

The allowpaymentrequest <iframe> attribute is not yet implemented, so the regression in basic.https.html is expected.

  • web-platform-tests/payment-request/allowpaymentrequest/active-document-cross-origin.https.sub-expected.txt:
  • web-platform-tests/payment-request/allowpaymentrequest/active-document-same-origin.https-expected.txt:
  • web-platform-tests/payment-request/allowpaymentrequest/basic.https-expected.txt:

Source/WebCore:

Reuse the access checks from Apple Pay to restrict PaymentRequest API usage to secure frames
in the same origin as the main frame.

Progresses active-document-cross-origin.https.sub.html and
active-document-same-origin.https.html from web-platform-tests. Regresses basic.https.html
since the allowpaymentrequest <iframe> attribute is not yet implemented.

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::ApplePaySession::create):
(WebCore::ApplePaySession::supportsVersion):
(WebCore::ApplePaySession::canMakePayments):
(WebCore::ApplePaySession::canMakePaymentsWithActiveCard):
(WebCore::ApplePaySession::openPaymentSetup):
(WebCore::isSecure): Deleted.
(WebCore::canCallApplePaySessionAPIs): Deleted.

  • Modules/applepay/PaymentSession.cpp: Added.

(WebCore::isSecure):
(WebCore::PaymentSession::canCreateSession):

  • Modules/applepay/PaymentSession.h:
  • Modules/paymentrequest/PaymentHandler.cpp:

(WebCore::PaymentHandler::canCreateSession):

  • Modules/paymentrequest/PaymentHandler.h:
  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::create):

  • WebCore.xcodeproj/project.pbxproj:
4:07 PM Changeset in webkit [224060] by jmarcell@apple.com
  • 7 edits in branches/safari-604-branch/Source

Versioning.

3:57 PM Changeset in webkit [224059] by commit-queue@webkit.org
  • 7 edits
    4 adds in trunk

Add service worker handle fetch support for all subresource requests
https://bugs.webkit.org/show_bug.cgi?id=178769

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-26
Reviewed by Chris Dumez.

Source/WebCore:

Test: http/tests/workers/service/image-fetch.html

Moving DocumentThreadableLoader logic to CachedResourceLoader to apply it for all resource loads.
Setting the selected service worker identifier for subresource only at the moment.

Testing is limited to images, future wpt tests should cover other subresource cases.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::prepareFetch):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::setSelectedServiceWorkerIdentifierIfNeeded):

  • loader/cache/CachedResourceRequest.h:

LayoutTests:

  • http/tests/workers/service/image-fetch-expected.txt: Added.
  • http/tests/workers/service/image-fetch.html: Added.
  • http/tests/workers/service/resources/image-fetch-worker.js: Added.

(event.event.request.url.indexOf):
(event.event.request.url.endsWith):

  • http/tests/workers/service/resources/image-fetch.js: Added.

(done):
(async.loadedImage):
(async.erroredImage):
(async.logStatus):
(async.test):

3:55 PM Changeset in webkit [224058] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.4.6

Tag Safari-604.4.6.

3:44 PM Changeset in webkit [224057] by eric.carlson@apple.com
  • 24 edits in trunk

NowPlayingInfo should contain a unique identifier
https://bugs.webkit.org/show_bug.cgi?id=178872

Reviewed by Jer Noble.

Source/WebCore:

Updated TestWebKitAPI/Tests/WebKitCocoa/NowPlayingControlsTests.mm.

  • platform/audio/PlatformMediaSessionManager.h:

(WebCore::PlatformMediaSessionManager::lastUpdatedNowPlayingInfoUniqueIdentifier const): New.

  • platform/audio/ios/MediaSessionManagerIOS.h:
  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::updateNowPlayingInfo): Ditto.

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

(WebCore::MediaSessionManagerMac::updateNowPlayingInfo): Ditto. Don't leak CFString.

  • platform/mac/MediaRemoteSoftLink.cpp: Softlink kMRMediaRemoteNowPlayingInfoUniqueIdentifier.
  • platform/mac/MediaRemoteSoftLink.h:

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _requestActiveNowPlayingSessionInfo:]): Take a completion handler.
(-[WKWebView _requestActiveNowPlayingSessionInfo]): Deleted.
(-[WKWebView _handleActiveNowPlayingSessionInfoResponse:title:duration:elapsedTime:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestActiveNowPlayingSessionInfo): Ditto.
(WebKit::WebPageProxy::nowPlayingInfoCallback): Lookup and call completion handler.
(WebKit::WebPageProxy::handleActiveNowPlayingSessionInfoResponse const): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::handleActiveNowPlayingSessionInfoResponse): Deleted.

  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::handleActiveNowPlayingSessionInfoResponse): Deleted.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::requestActiveNowPlayingSessionInfo): Take callback ID. Pass unique ID.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/NowPlayingControlsTests.mm:

(-[NowPlayingTestWebView hasActiveNowPlayingSession]): Use completion handler.
(TestWebKitAPI::TEST): Cleanup tests. Use new API.
(-[NowPlayingTestWebView waitForNowPlayingInfoToChange]): Deleted.

3:42 PM Changeset in webkit [224056] by keith_miller@apple.com
  • 3 edits in trunk/Source/WebCore

Unreviewed, iOS build fix.

  • SourcesMac.txt:
  • WebCore.xcodeproj/project.pbxproj:
3:36 PM Changeset in webkit [224055] by mark.lam@apple.com
  • 8 edits
    1 add in trunk

JSRopeString::RopeBuilder::append() should check for overflows.
https://bugs.webkit.org/show_bug.cgi?id=178385
<rdar://problem/35027468>

Reviewed by Saam Barati.

JSTests:

  • stress/regress-178385.js: Added.

Source/JavaScriptCore:

  1. Made RopeString check for overflow like the Checked class does.
  2. Added a missing overflow check in objectProtoFuncToString().
  • runtime/JSString.cpp:

(JSC::JSRopeString::RopeBuilder<RecordOverflow>::expand):
(JSC::JSRopeString::RopeBuilder::expand): Deleted.

  • runtime/JSString.h:
  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncToString):

  • runtime/Operations.h:

(JSC::jsStringFromRegisterArray):
(JSC::jsStringFromArguments):

Source/WTF:

  • wtf/CheckedArithmetic.h:
3:25 PM Changeset in webkit [224054] by keith_miller@apple.com
  • 4 edits in trunk/Source/WebCore

Move Mac specific files to unified sources
https://bugs.webkit.org/show_bug.cgi?id=178883

Rubber-stamped by Tim Horton.

  • SourcesCocoa.txt:
  • SourcesMac.txt:
  • WebCore.xcodeproj/project.pbxproj:
3:02 PM Changeset in webkit [224053] by rniwa@webkit.org
  • 9 edits in trunk/Source/WebCore

DidMoveToNewDocumentAssertionScope shouldn't be necessary
https://bugs.webkit.org/show_bug.cgi?id=178836
<rdar://problem/35008876>

Reviewed by Antti Koivisto.

DidMoveToNewDocumentAssertionScope was introduced in r217972 to replace an existing assertion to make sure
Node::didMoveToNewDocument is always called by its overrides in Node's subclasses. However, we can ensure
better Node::didMoveToNewDocument is always called if we called it directly in Node::moveTreeToNewScope.

Because only subclasses of Element and ShadowRoot override Node::didMoveToNewDocument and we already have
a specialized code path to adopt a ShadowRoot to a new document, this refactoring eliminates the need for
having a virtual function on Node at all.

Hence this patch names Node::didMoveToNewDocument to Node::moveToNewDocument and makes it non-virtual,
splits ShadowRoot::didMoveToNewDocument into moveShadowRootToNewParentScope and moveShadowRootToNewDocument,
and removes DidMoveToNewDocumentAssertionScope completely.

No new tests since there should be no behavioral change.

  • dom/Document.cpp:

(WebCore::Document::moveNodeIteratorsToNewDocumentSlowCase): Renamed from moveNodeIteratorsToNewDocument.

  • dom/Document.h:

(WebCore::Document::moveNodeIteratorsToNewDocument): Inlined the check for emptiness of m_nodeIterators to
avoid keep calling moveNodeIteratorsToNewDocumentSlowCase on every single node getting moved.

  • dom/Element.cpp:

(WebCore::Element::didMoveToNewDocument): Removed the call to Node::didMoveToNewDocument since this is the
base virtual function now.

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

(WebCore::DidMoveToNewDocumentAssertionScope::DidMoveToNewDocumentAssertionScope): Deleted.
(WebCore::DidMoveToNewDocumentAssertionScope::~DidMoveToNewDocumentAssertionScope): Deleted.
(WebCore::DidMoveToNewDocumentAssertionScope::didRecieveCall): Deleted.
(WebCore::moveNodeToNewDocument): Deleted.
(WebCore::Node::moveShadowTreeToNewDocument): Made this a member function of Node since it needs to call
moveNodeToNewDocument, which is private to Node.
(WebCore::Node::moveTreeToNewScope): Removed the release assert for the root node since the same check
exists inside traverseSubtreeToUpdateTreeScope. Also removed the release assertion for checking that
node's old document matches the old document since document() simply calls treeScope().documentScope()
and we're already release-asserting that the old scope of a node matches the old scope we know of.
We release-assert that the old tree scope's document didn't change after the traversal instead. Finally,
replaced a bunch of RELEASE_ASSERT with RELEASE_ASSERT_WITH_SECURITY_IMPLICATION.
(WebCore::Node::moveNodeToNewDocument): Renamed from didMoveToNewDocument. Moved the code related to
mutation observers inside hasRareData() check, and moved the the code to move event listeners inside
eventTargetData() check both for clarity, and avoid doing the work for every single node being moved.
Finally, call the old didMoveToNewDocument when "this" is an Element.

  • dom/Node.h:
  • dom/ShadowRoot.cpp:

(WebCore::ShadowRoot::moveShadowRootToNewParentScope): Added. Extracted from didMoveToNewDocument.
(WebCore::ShadowRoot::moveShadowRootToNewDocument): Renamed from didMoveToNewDocument. We now
release-assert that parent tree scope's document matches the new document if any.

  • dom/ShadowRoot.h:
3:00 PM Changeset in webkit [224052] by rniwa@webkit.org
  • 3 edits in trunk/LayoutTests

LayoutTest http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=178828

Reviewed by Wenson Hsieh.

When the pasted content's iframe's body isn't available, wait for load event.

  • http/tests/security/clipboard/resources/content-to-copy.html: Always wait for load event before notifying

the parent page that it had finish loading.

  • http/tests/security/clipboard/resources/subdirectory/paste-html.html:
2:41 PM Changeset in webkit [224051] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Implement ServiceWorkerContainer getRegistration
https://bugs.webkit.org/show_bug.cgi?id=178882

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-26
Reviewed by Chris Dumez.

Replace rejection promise by resolving the promise with a null value.
This helps in running WPT tests as WPT tests usually check for registered service workers before running tests.
For WTR, there should be no registered service worker anyway.

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::getRegistration):

  • workers/service/ServiceWorkerContainer.h:
2:36 PM Changeset in webkit [224050] by mmaxfield@apple.com
  • 4 edits in trunk/LayoutTests

[iOS] Update expected results for platform/ios/ios/fast/text/opticalFontWith*.html
https://bugs.webkit.org/show_bug.cgi?id=178885

Unreviewed.

  • platform/ios/TestExpectations:
  • platform/ios/platform/ios/ios/fast/text/opticalFontWithTextStyle-expected.txt:
  • platform/ios/platform/ios/ios/fast/text/opticalFontWithWeight-expected.txt:
2:24 PM Changeset in webkit [224049] by mmaxfield@apple.com
  • 3 edits
    1 add in trunk/LayoutTests

[iOS] Update expected results for fast/text/international/complex-character-based-fallback.html
https://bugs.webkit.org/show_bug.cgi?id=178884
<rdar://problem/33602192>

Unreviewed.

Test gardening.

  • platform/ios/TestExpectations:
  • platform/ios/fast/text/international/complex-character-based-fallback-expected.png: Added.
  • platform/ios/fast/text/international/complex-character-based-fallback-expected.txt:
2:07 PM Changeset in webkit [224048] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Account for Mail’s WebMessageDocument class being renamed
https://bugs.webkit.org/show_bug.cgi?id=178881

Reviewed by Sam Weinig.

  • editing/cocoa/HTMLConverter.mm:

(_WebMessageDocumentClass): Look up the class by its new name. No longer look it up by the

old old name, because TOT WebKit isn’t going to be used by versions of Mail that have that name.

1:57 PM Changeset in webkit [224047] by Adrian Perez de Castro
  • 3 edits
    1 add in trunk

[WPE] Use proper shared object versioning for libWPEWebKit.so
https://bugs.webkit.org/show_bug.cgi?id=178878

Reviewed by Michael Catanzaro.

Move the CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE() to a new CMake include file,
and use it both for the GTK+ and WPE ports. Also add a SET_PROJECT_VERSION() macro to
unify setting the PROJECT_VERSION* family of variables.

  • Source/cmake/OptionsGTK.cmake: Use the common macros imported from VersioningUtils.cmake.
  • Source/cmake/OptionsWPE.cmake: Properly assign a shared object version to libWPEWebKit.so,

using the common macros from VersioningUtils.cmake.

  • Source/cmake/VersioningUtils.cmake: Added.
1:45 PM Changeset in webkit [224046] by jmarcell@apple.com
  • 8 edits
    1 delete in tags/Safari-605.1.12

Revert r223691. rdar://problem/35205048

1:22 PM Changeset in webkit [224045] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Remove FrameView::serviceScriptedAnimations and Document::serviceScriptedAnimations
https://bugs.webkit.org/show_bug.cgi?id=178879

Patch by Antoine Quint <Antoine Quint> on 2017-10-26
Reviewed by Dean Jackson.

There are no call sites for FrameView::serviceScriptedAnimations() and that method is the
only call site for Document::serviceScriptedAnimations(), so both can go.

  • dom/Document.cpp:

(WebCore::Document::serviceScriptedAnimations): Deleted.

  • dom/Document.h:
  • page/FrameView.cpp:

(WebCore::FrameView::serviceScriptedAnimations): Deleted.

  • page/FrameView.h:
1:22 PM Changeset in webkit [224044] by Ryan Haddad
  • 2 edits in trunk/Tools

[MediaStream] Clear cached gUM prompt state
https://bugs.webkit.org/show_bug.cgi?id=178754
<rdar://problem/32742356>

Unreviewed, fix a flakey test.

Patch by Eric Carlson <eric.carlson@apple.com> on 2017-10-26

  • TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm:

(-[GetUserMediaRepromptTestView haveStream:]): New, check several times for expected state.
(TestWebKitAPI::TEST): Don't assume stream state changes in the page immediately.

1:20 PM Changeset in webkit [224043] by aestes@apple.com
  • 7 edits in trunk

[Payment Request] Enable Payment Request whenever Apple Pay is enabled
https://bugs.webkit.org/show_bug.cgi?id=178880

Reviewed by Tim Horton.

Source/WebKit:

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

(WKPreferencesSetPaymentRequestEnabled): Deleted.
(WKPreferencesGetPaymentRequestEnabled): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

1:17 PM Changeset in webkit [224042] by commit-queue@webkit.org
  • 5 edits in trunk/LayoutTests

http/tests/workers/service/service-worker-cache-api.https.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=178877

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-26
Reviewed by Alex Christensen.

Marking test as PASS/FAIL.
Changing test to finish after 10 seconds.
Beefing up logging to help identifiying flakiness reason.

  • TestExpectations:
  • http/tests/workers/service/resources/service-worker-cache-api-worker.js:

(event.event.respondWith.promise.then):

  • http/tests/workers/service/resources/service-worker-cache-api.js:

(async.test):

  • http/tests/workers/service/service-worker-cache-api.https-expected.txt:
1:14 PM Changeset in webkit [224041] by Chris Dumez
  • 10 edits
    2 copies
    3 moves in trunk/Source

Bring back SWContextManager abstraction in WebCore
https://bugs.webkit.org/show_bug.cgi?id=178876

Reviewed by Geoffrey Garen.

Bring back SWContextManager abstraction in WebCore. It was killed in <https://trac.webkit.org/changeset/223718> but
is actually useful when the ServiceWorker wants to message the storage process.

Source/WebCore:

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • workers/service/context/SWContextManager.cpp: Added.

(WebCore::SWContextManager::singleton):
(WebCore::SWContextManager::setConnection):
(WebCore::SWContextManager::connection const):
(WebCore::SWContextManager::registerServiceWorkerThread):
(WebCore::SWContextManager::serviceWorkerThreadProxy const):
(WebCore::SWContextManager::postMessageToServiceWorkerGlobalScope):

  • workers/service/context/SWContextManager.h: Copied from Source/WebKit/WebProcess/Storage/ServiceWorkerContextManager.h.

(WebCore::SWContextManager::Connection::~Connection):

Source/WebKit:

  • CMakeLists.txt:
  • DerivedSources.make:
  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::startServiceWorkerContext):
(WebKit::WebSWServerConnection::startFetch):
(WebKit::WebSWServerConnection::postMessageToServiceWorkerGlobalScope):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp: Renamed from Source/WebKit/WebProcess/Storage/ServiceWorkerContextManager.cpp.

(WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection):
(WebKit::WebSWContextManagerConnection::updatePreferences):
(WebKit::WebSWContextManagerConnection::startServiceWorker):
(WebKit::WebSWContextManagerConnection::startFetch):
(WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerGlobalScope):

  • WebProcess/Storage/WebSWContextManagerConnection.h: Renamed from Source/WebKit/WebProcess/Storage/ServiceWorkerContextManager.h.
  • WebProcess/Storage/WebSWContextManagerConnection.messages.in: Renamed from Source/WebKit/WebProcess/Storage/ServiceWorkerContextManager.messages.in.
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::didReceiveMessage):
(WebKit::WebProcess::getWorkerContextConnection):

  • WebProcess/WebProcess.h:
1:13 PM Changeset in webkit [224040] by Simon Fraser
  • 2 edits in trunk/Source/WebKitLegacy/mac

Fix issues with WebView subframe painting
https://bugs.webkit.org/show_bug.cgi?id=178842
rdar://problem/34072253

Reviewed by Daniel Bates.

WebHTMLView overrides some NSView internal methods to make sure that AppKit doesn't paint
subframes (WebKit controls subframe painting). The method signature of one of these changed in macOS
High Sierra, so match the new signature.

Also rename the 'rect' param to 'displayRect' to match AppKit code.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _recursive:displayRectIgnoringOpacity:inGraphicsContext:shouldChangeFontReferenceColor:_recursive:displayRectIgnoringOpacity:inGraphicsContext:CGContext:topView:shouldChangeFontReferenceColor:]):
(-[WebHTMLView _recursive:displayRectIgnoringOpacity:inGraphicsContext:CGContext:shouldChangeFontReferenceColor:_recursive:displayRectIgnoringOpacity:inGraphicsContext:CGContext:topView:shouldChangeFontReferenceColor:]): Deleted.

12:33 PM Changeset in webkit [224039] by jmarcell@apple.com
  • 6 edits
    6 adds in branches/safari-604-branch

Cherry-pick r223974. rdar://problem/35178887

12:19 PM Changeset in webkit [224038] by Joseph Pecoraro
  • 2 edits in trunk/Tools

Add and update some watchlists
https://bugs.webkit.org/show_bug.cgi?id=178304

Reviewed by Simon Fraser.

  • Scripts/webkitpy/common/config/watchlist:
11:58 AM Changeset in webkit [224037] by commit-queue@webkit.org
  • 8 edits
    3 moves
    1 add in trunk/Source/WebCore

[Curl] Rename CurlJobManager to CurlRequestScheduler
https://bugs.webkit.org/show_bug.cgi?id=178775

To match the meaning of the class.
It was originally meant to be more generic purpose, but as
other classes was introduced, the objective of the class is
now only to handle the life cycle of curl requests.

The delegate is also renamed to CurlRequestSchedulerClient.

Patch by Basuke Suzuki <Basuke Suzuki> on 2017-10-26
Reviewed by Alex Christensen.

  • platform/Curl.cmake:
  • platform/network/curl/CurlDownload.cpp:

(WebCore::CurlDownload::~CurlDownload):
(WebCore::CurlDownload::willSendRequest):

  • platform/network/curl/CurlDownload.h:
  • platform/network/curl/CurlRequest.cpp:

(WebCore::CurlRequest::CurlRequest):
(WebCore::CurlRequest::start):
(WebCore::CurlRequest::startWithJobManager):
(WebCore::CurlRequest::cancel):
(WebCore::CurlRequest::callClient):
(WebCore::CurlRequest::didReceiveData):
(WebCore::CurlRequest::didCompleteTransfer):
(WebCore::CurlRequest::invokeDidReceiveResponseForFile):
(WebCore::CurlRequest::invokeDidReceiveResponse):
(WebCore::CurlRequest::completeDidReceiveResponse):
(WebCore::CurlRequest::pausedStatusChanged):
(WebCore::CurlRequest::callDelegate): Deleted.

  • platform/network/curl/CurlRequest.h:

(WebCore::CurlRequest::create):
(WebCore::CurlRequest::setClient):
(WebCore::CurlRequest::setDelegate): Deleted.

  • platform/network/curl/CurlRequestClient.h: Renamed from Source/WebCore/platform/network/curl/CurlRequestDelegate.h.
  • platform/network/curl/CurlRequestScheduler.cpp: Renamed from Source/WebCore/platform/network/curl/CurlJobManager.cpp.

(WebCore::CurlJobList::startJobs):
(WebCore::CurlJobList::finishJobs):
(WebCore::CurlRequestScheduler::singleton):
(WebCore::CurlRequestScheduler::add):
(WebCore::CurlRequestScheduler::cancel):
(WebCore::CurlRequestScheduler::callOnWorkerThread):
(WebCore::CurlRequestScheduler::startThreadIfNeeded):
(WebCore::CurlRequestScheduler::stopThreadIfNoMoreJobRunning):
(WebCore::CurlRequestScheduler::stopThread):
(WebCore::CurlRequestScheduler::updateJobList):
(WebCore::CurlRequestScheduler::workerThread):

  • platform/network/curl/CurlRequestScheduler.h: Renamed from Source/WebCore/platform/network/curl/CurlJobManager.h.

(WebCore::CurlRequestScheduler::~CurlRequestScheduler):

  • platform/network/curl/CurlRequestSchedulerClient.h: Added.

(WebCore::CurlRequestSchedulerClient::~CurlRequestSchedulerClient):

  • platform/network/curl/ResourceHandleCurlDelegate.cpp:

(WebCore::ResourceHandleCurlDelegate::~ResourceHandleCurlDelegate):
(WebCore::ResourceHandleCurlDelegate::setAuthentication):
(WebCore::ResourceHandleCurlDelegate::continueAfterWillSendRequest):

  • platform/network/curl/ResourceHandleCurlDelegate.h:
11:56 AM Changeset in webkit [224036] by Matt Lewis
  • 3 edits in trunk/LayoutTests

Marked webrtc/video-mute.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=177501

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
11:54 AM Changeset in webkit [224035] by ap@apple.com
  • 6 edits
    1 delete in trunk/Source/WebKit

Remove deprecated WebKit symbols
https://bugs.webkit.org/show_bug.cgi?id=178875
rdar://problem/31139070

Reviewed by Dan Bernstein.

  • PlatformMac.cmake:
  • Shared/API/c/WKDeprecatedFunctions.cpp:

(WKContextSetProcessModel):
(WKPageGroupCopyIdentifier): Deleted.
(WKPageGroupAddUserContentFilter): Deleted.
(WKPageGroupRemoveUserContentFilter): Deleted.

  • UIProcess/API/C/WKPageGroup.h:
  • UIProcess/API/Cocoa/_WKVisitedLinkProvider.mm: Removed.
  • UIProcess/API/Cocoa/_WKVisitedLinkStore.h:
  • WebKit.xcodeproj/project.pbxproj:
11:51 AM Changeset in webkit [224034] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

Remove unnecessary whitespace invalidation logic from RenderTreeUpdater
https://bugs.webkit.org/show_bug.cgi?id=178786

Reviewed by Zalan Bujtas.

RenderTreeUpdater::invalidateWhitespaceOnlyTextSiblingsAfterAttachIfNeeded is a somewhat complex
and confusing function for figuring out if some whitespace-only text node might need to have its
rendering status recomputed. However actually computing if a text renderer is needed is not expensive.
We can simply do it for all whitespace nodes after a sibling mutation.

This also removes a set that could have stale renderer pointers in it (they were never dereferenced).

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::addChildIgnoringContinuation):

Fix a display:contents bug exposed by this change. With display:contents a text renderer may have an anonymous
inline wrapper and we need to take it into account when the text renderer is the beforeChild.

Tested by imported/w3c/web-platform-tests/css/css-display-3/display-contents-state-change-001.html

  • style/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateRenderTree):

Call updateTextRenderer() for all whitespace-only text nodes after a change in siblings.
In normal update case it just figures out quickly (by calling textRendererIsNeeded)
that there are no changes and bails out.

(WebCore::RenderTreeUpdater::updateElementRenderer):
(WebCore::RenderTreeUpdater::updateTextRenderer):
(WebCore::RenderTreeUpdater::invalidateWhitespaceOnlyTextSiblingsAfterAttachIfNeeded): Deleted.

No longer needed. Just mark that there have been changes to siblings instead.

  • style/RenderTreeUpdater.h:
11:46 AM Changeset in webkit [224033] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Mark font palettes as in development
https://bugs.webkit.org/show_bug.cgi?id=178590

Unreviewed.

  • features.json:
11:44 AM Changeset in webkit [224032] by Ryan Haddad
  • 16 edits
    1 move
    3 deletes in trunk

Unreviewed, rolling out r223984.

Caused LayoutTest assertion failures.

Reverted changeset:

"When navigating back to a page, compositing layers may not
use accelerated drawing"
https://bugs.webkit.org/show_bug.cgi?id=178749
https://trac.webkit.org/changeset/223984

11:41 AM Changeset in webkit [224031] by achristensen@apple.com
  • 11 edits in trunk/LayoutTests

Rebase contentextensions test expectations
https://bugs.webkit.org/show_bug.cgi?id=178841

Reviewed by Alexey Proskuryakov.

They've been marked as flaky for so long that nobody has rebased them. The URLParser
has changed underneath them, DOM error reporting has changed, etc. The first step to
gaining this test coverage back again is rebasing.

  • http/tests/contentextensions/block-everything-if-domain-expected.txt:
  • http/tests/contentextensions/block-everything-unless-domain-redirect-expected.txt:
  • http/tests/contentextensions/character-set-basic-support-expected.txt:
  • http/tests/contentextensions/main-resource-expected.txt:
  • http/tests/contentextensions/main-resource-redirect-blocked-expected.txt:
  • http/tests/contentextensions/main-resource-redirect-error-expected.txt:
  • http/tests/contentextensions/make-https-expected.txt:
  • http/tests/contentextensions/plugin-doesnt-crash-expected.txt:
  • http/tests/contentextensions/sync-xhr-blocked-expected.txt:
  • http/tests/contentextensions/text-track-blocked-expected.txt:
11:38 AM Changeset in webkit [224030] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Add inspector logging for MediaElementSession autoplay
https://bugs.webkit.org/show_bug.cgi?id=178846

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-26
Reviewed by Eric Carlson.

No change of behavior.
Making use of pal Logger in MediaElementSession.
This new logging is limited to autoplay/playback for now.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::MediaElementSession):
(WebCore::MediaElementSession::playbackPermitted const):
(WebCore::MediaElementSession::autoplayPermitted const):
(WebCore::MediaElementSession::willLog const):
(WebCore::MediaElementSession::logChannel const):

  • html/MediaElementSession.h:
11:20 AM Changeset in webkit [224029] by Megan Gardner
  • 13 edits in trunk/Source/WebKit

Remove code to update block selection
https://bugs.webkit.org/show_bug.cgi?id=178843

Reviewed by Tim Horton.

Removes code for updating block selection, which has been disabled.
This code is being slowly pruned to avoid regressions and accidental removal of code that is being used.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::didUpdateBlockSelectionWithTouch): Deleted.

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

(toSelectionHandlePosition): Deleted.
(-[WKContentView _didUpdateBlockSelectionWithTouch:withFlags:growThreshold:shrinkThreshold:]): Deleted.
(-[WKContentView changeBlockSelectionWithTouchAt:withSelectionTouch:forHandle:]): Deleted.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::updateBlockSelectionWithTouch): Deleted.
(WebKit::WebPageProxy::didUpdateBlockSelectionWithTouch): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::shouldExpand): Deleted.
(WebKit::WebPage::changeBlockSelection): Deleted.
(WebKit::WebPage::updateBlockSelectionWithTouch): Deleted.

11:16 AM Changeset in webkit [224028] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Skipped webrtc/video-replace-muted-track.html on iOS.
https://bugs.webkit.org/show_bug.cgi?id=173608

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
11:11 AM Changeset in webkit [224027] by keith_miller@apple.com
  • 3 edits in trunk/Source/WebCore

Move ApplePay to unified sources
https://bugs.webkit.org/show_bug.cgi?id=178871

Rubber-stamped by Tim Horton.

Also, add some other missing files.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
10:59 AM Changeset in webkit [224026] by Adrian Perez de Castro
  • 2 edits in trunk

[GTK] WebKit library .so version is not being set correctly
https://bugs.webkit.org/show_bug.cgi?id=178873

Reviewed by Michael Catanzaro.

  • Source/cmake/OptionsGTK.cmake: Adjust name of the target for which the .so version gets calculated.
10:45 AM Changeset in webkit [224025] by Ryan Haddad
  • 8 edits
    6 deletes in trunk

Unreviewed, rolling out r224019.

This change caused API test WebKit.MSEIsPlayingAudio to time
out.

Reverted changeset:

"XMLHttpRequest should not treat file URLs as same origin"
https://bugs.webkit.org/show_bug.cgi?id=178565
https://trac.webkit.org/changeset/224019

10:26 AM Changeset in webkit [224024] by Ryan Haddad
  • 8 edits
    4 deletes in trunk

Unreviewed, rolling out r223994.

The LayoutTest for this change is failing.

Reverted changeset:

"Add service worker handle fetch support for all subresource
requests"
https://bugs.webkit.org/show_bug.cgi?id=178769
https://trac.webkit.org/changeset/223994

10:18 AM Changeset in webkit [224023] by Ryan Haddad
  • 20 edits
    1 delete in trunk/Source

Unreviewed, rolling out r223908.

Causes LayoutTest crashes with newer SDKs.

Reverted changeset:

"Adopt new secure coding APIs"
https://bugs.webkit.org/show_bug.cgi?id=178484
https://trac.webkit.org/changeset/223908

9:41 AM Changeset in webkit [224022] by Ryan Haddad
  • 2 edits in trunk/JSTests

Unreviewed, rolling out r223961.

The change that required this has been rolled out.

Reverted changeset:

"Mark test262.yaml/test262/test/language/statements/try/tco-
catch.js as passing."
https://bugs.webkit.org/show_bug.cgi?id=178592
https://trac.webkit.org/changeset/223961

9:32 AM Changeset in webkit [224021] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Update TestExpectations for compositing/tiling/non-active-window-tiles-size.html.
https://bugs.webkit.org/show_bug.cgi?id=171763

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Remove Debug-only flag.
9:13 AM WebKitGTK/2.18.x edited by Adrian Perez de Castro
(diff)
9:12 AM WebKitGTK/2.18.x edited by Adrian Perez de Castro
(diff)
9:11 AM WebKitGTK/2.18.x edited by Adrian Perez de Castro
(diff)
9:01 AM WebKitGTK/2.18.x edited by Adrian Perez de Castro
(diff)
8:56 AM WebKitGTK/2.18.x edited by Adrian Perez de Castro
(diff)
8:49 AM WebKitGTK/2.18.x edited by Carlos Garcia Campos
(diff)
8:33 AM Changeset in webkit [224020] by jfbastien@apple.com
  • 25 edits in trunk/Source/JavaScriptCore

WebAssembly: no VM / JS version of our implementation
https://bugs.webkit.org/show_bug.cgi?id=177472

Reviewed by Michael Saboff.

This patch removes all appearances of "JS" and "VM" in the wasm
directory. These now only appear in the wasm/js directory, which
is only used in a JS embedding of wasm. It should therefore now be
possible to create non-JS embeddings of wasm through JSC, though
it'll still require:

  • Mild codegen for wasm<->embedder calls;
  • A strategy for trap handling (no need for full unwind! Could kill).
  • Creation of the Wasm::* objects.
  • Calling convention handling to call the embedder.
  • Handling of multiple embedders (see #177475, this is optional).

Most of the patch consists in renaming JSWebAssemblyInstance to
Instance, and removing temporary copies which I'd added to make
this specific patch very simple.

  • interpreter/CallFrame.cpp:

(JSC::CallFrame::wasmAwareLexicalGlobalObject): this one place
which needs to know about who "owns" the Wasm::Instance. In a JS
embedding it's the JSWebAssemblyInstance.

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::B3IRGenerator::addGrowMemory):
(JSC::Wasm::B3IRGenerator::addCurrentMemory):
(JSC::Wasm::B3IRGenerator::getGlobal):
(JSC::Wasm::B3IRGenerator::setGlobal):
(JSC::Wasm::B3IRGenerator::addCall):
(JSC::Wasm::B3IRGenerator::addCallIndirect):

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToWasm):

  • wasm/WasmContext.cpp:

(JSC::Wasm::Context::load const):
(JSC::Wasm::Context::store):

  • wasm/WasmContext.h:
  • wasm/WasmEmbedder.h:
  • wasm/WasmInstance.cpp:

(JSC::Wasm::Instance::Instance):
(JSC::Wasm::Instance::create):
(JSC::Wasm::Instance::extraMemoryAllocated const):

  • wasm/WasmInstance.h: add an "owner", the Wasm::Context, move the

"tail" import information from JSWebAssemblyInstance over to here.
(JSC::Wasm::Instance::finalizeCreation):
(JSC::Wasm::Instance::owner const):
(JSC::Wasm::Instance::offsetOfOwner):
(JSC::Wasm::Instance::context const):
(JSC::Wasm::Instance::setMemory):
(JSC::Wasm::Instance::setTable):
(JSC::Wasm::Instance::offsetOfMemory):
(JSC::Wasm::Instance::offsetOfGlobals):
(JSC::Wasm::Instance::offsetOfTable):
(JSC::Wasm::Instance::offsetOfTail):
(JSC::Wasm::Instance::numImportFunctions const):
(JSC::Wasm::Instance::importFunctionInfo):
(JSC::Wasm::Instance::offsetOfTargetInstance):
(JSC::Wasm::Instance::offsetOfWasmEntrypoint):
(JSC::Wasm::Instance::offsetOfWasmToEmbedderStubExecutableAddress):
(JSC::Wasm::Instance::offsetOfImportFunction):
(JSC::Wasm::Instance::importFunction):
(JSC::Wasm::Instance::allocationSize):
(JSC::Wasm::Instance::create): Deleted.

  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::OMGPlan::runForIndex):

  • wasm/WasmOMGPlan.h:
  • wasm/WasmTable.cpp:

(JSC::Wasm::Table::Table):
(JSC::Wasm::Table::setFunction):

  • wasm/WasmTable.h:
  • wasm/WasmThunks.cpp:

(JSC::Wasm::throwExceptionFromWasmThunkGenerator):
(JSC::Wasm::triggerOMGTierUpThunkGenerator):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

  • wasm/js/JSWebAssemblyInstance.cpp: delete code that is now on Wasm::Instance

(JSC::JSWebAssemblyInstance::JSWebAssemblyInstance): The embedder
decides what the import function is. Here we must properly
placement-new it to what we've elected (and initialize it later).
(JSC::JSWebAssemblyInstance::visitChildren):
(JSC::JSWebAssemblyInstance::finalizeCreation):
(JSC::JSWebAssemblyInstance::create):

  • wasm/js/JSWebAssemblyInstance.h: delete code that is now on Wasm::Instance

(JSC::JSWebAssemblyInstance::instance):
(JSC::JSWebAssemblyInstance::moduleNamespaceObject):
(JSC::JSWebAssemblyInstance::setMemory):
(JSC::JSWebAssemblyInstance::table):
(JSC::JSWebAssemblyInstance::setTable):
(JSC::JSWebAssemblyInstance::offsetOfInstance):
(JSC::JSWebAssemblyInstance::offsetOfCallee):
(JSC::JSWebAssemblyInstance::context const): Deleted.
(JSC::JSWebAssemblyInstance::offsetOfTail): Deleted.
(): Deleted.
(JSC::JSWebAssemblyInstance::importFunctionInfo): Deleted.
(JSC::JSWebAssemblyInstance::offsetOfTargetInstance): Deleted.
(JSC::JSWebAssemblyInstance::offsetOfWasmEntrypoint): Deleted.
(JSC::JSWebAssemblyInstance::offsetOfWasmToEmbedderStubExecutableAddress): Deleted.
(JSC::JSWebAssemblyInstance::offsetOfImportFunction): Deleted.
(JSC::JSWebAssemblyInstance::importFunction): Deleted.
(JSC::JSWebAssemblyInstance::internalMemory): Deleted.
(JSC::JSWebAssemblyInstance::wasmCodeBlock const): Deleted.
(JSC::JSWebAssemblyInstance::offsetOfWasmTable): Deleted.
(JSC::JSWebAssemblyInstance::offsetOfGlobals): Deleted.
(JSC::JSWebAssemblyInstance::offsetOfCodeBlock): Deleted.
(JSC::JSWebAssemblyInstance::offsetOfWasmCodeBlock): Deleted.
(JSC::JSWebAssemblyInstance::offsetOfCachedStackLimit): Deleted.
(JSC::JSWebAssemblyInstance::offsetOfWasmMemory): Deleted.
(JSC::JSWebAssemblyInstance::offsetOfTopEntryFramePointer): Deleted.
(JSC::JSWebAssemblyInstance::cachedStackLimit const): Deleted.
(JSC::JSWebAssemblyInstance::setCachedStackLimit): Deleted.
(JSC::JSWebAssemblyInstance::wasmMemory): Deleted.
(JSC::JSWebAssemblyInstance::wasmModule): Deleted.
(JSC::JSWebAssemblyInstance::allocationSize): Deleted.

  • wasm/js/JSWebAssemblyTable.cpp:

(JSC::JSWebAssemblyTable::setFunction):

  • wasm/js/WasmToJS.cpp: One extra indirection to find the JSWebAssemblyInstance.

(JSC::Wasm::materializeImportJSCell):
(JSC::Wasm::handleBadI64Use):
(JSC::Wasm::wasmToJS):
(JSC::Wasm::wasmToJSException):

  • wasm/js/WasmToJS.h:
  • wasm/js/WebAssemblyFunction.cpp:

(JSC::callWebAssemblyFunction):

  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::constructJSWebAssemblyInstance):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::link):
(JSC::WebAssemblyModuleRecord::evaluate):

  • wasm/js/WebAssemblyPrototype.cpp:

(JSC::instantiate):

  • wasm/js/WebAssemblyWrapperFunction.cpp:

(JSC::WebAssemblyWrapperFunction::create):

8:14 AM Changeset in webkit [224019] by Brent Fulgham
  • 8 edits
    6 adds in trunk

XMLHttpRequest should not treat file URLs as same origin
https://bugs.webkit.org/show_bug.cgi?id=178565
<rdar://problem/11115901>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Do not treat file URLs as same-origin for XHR requests.

Test: fast/xmlhttprequest/xmlhttprequest-access-self-as-file.html

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Use new helper method.

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::requestIsSameOrigin): New method to recognize same-origin
requests, with special handling for XHR.

  • page/SecurityOrigin.h:

LayoutTests:

  • fast/xmlhttprequest/resources/xmlhttprequest-access-self-as-file-real.html: Added.
  • fast/xmlhttprequest/xmlhttprequest-access-self-as-file.html: Added.
  • fast/xmlhttprequest/xmlhttprequest-access-self-as-file-expected.txt: Added.
  • fast/xmlhttprequest/xmlhttprequest-access-self-as-blob-expected.txt: Added.
  • fast/xmlhttprequest/xmlhttprequest-access-self-as-blob.html: Added.
  • fast/xmlhttprequest/xmlhttprequest-nonexistent-file-expected.txt: Rebaseline test now that we reject XHR to local file URLs.
  • platform/ios/fast/xmlhttprequest/xmlhttprequest-nonexistent-file-expected.txt: Rebaselined.
  • platform/wk2/TestExpectations: Skip test since 'beginDragWithFiles' is not supported in WKTR.
7:06 AM Changeset in webkit [224018] by commit-queue@webkit.org
  • 13 edits
    1 delete in trunk

Remove scopeguard from platform
https://bugs.webkit.org/show_bug.cgi?id=178681

Patch by Christopher Reid <chris.reid@sony.com> on 2017-10-26
Reviewed by Brady Eidson.

Source/WebCore:

Replacing platform/ScopeGuard with WTF::ScopeExit.
No new tests, no change in behavior.

  • Modules/indexeddb/IDBRequest.cpp:
  • Modules/indexeddb/IDBRequest.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/FileSystem.cpp:
  • platform/ScopeGuard.h: Removed.
  • platform/network/BlobRegistryImpl.cpp:
  • workers/service/ServiceWorkerContainer.cpp:

Source/WebKit:

  • Shared/mac/ChildProcessMac.mm:

Tools:

  • TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:
6:14 AM Changeset in webkit [224017] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.18/Source/WebCore

[GTK][Stable] Crash on WebCore::SharedBuffer::data() on 2.18.1
https://bugs.webkit.org/show_bug.cgi?id=178852

Reviewed by Carlos Garcia Campos.

Add a mutex to control that the image decoders are not used at the same
time from the main thread and the decoding thread.

Backport of the fix to https://bugs.webkit.org/show_bug.cgi?id=178510
created by Fujii Hironori <Fujii Hironori>.

Covered by existent tests.

  • platform/image-decoders/ImageDecoder.cpp:

(WebCore::ImageDecoder::frameIsCompleteAtIndex):
(WebCore::ImageDecoder::frameHasAlphaAtIndex const):
(WebCore::ImageDecoder::frameBytesAtIndex const):
(WebCore::ImageDecoder::frameDurationAtIndex):
(WebCore::ImageDecoder::createFrameImageAtIndex):

  • platform/image-decoders/ImageDecoder.h:

(WebCore::ImageDecoder::setData):

5:50 AM Changeset in webkit [224016] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.18/Source/WebCore

Merge r224015 - REGRESSION(r222090): [HarfBuzz] Arabic shaping is broken except for first word in line
https://bugs.webkit.org/show_bug.cgi?id=178625

Reviewed by Michael Catanzaro.

Source/WebCore:

Once we find the first space, which has the COMMON script, we split the run, and the next ones keep using
COMMON instead of ARABIC because we don't update the current script on every loop iteration. This patch
simplifies the script handling by moving the code back to the loop and always breaking in case of different
scripts, correctly handling INHERITED and COMMON cases and updating the current script when needed.

Covered by existing tests. This improves several tests that have been rebaselined.

  • platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:

(WebCore::findNextRun):
(WebCore::scriptsAreCompatibleForCharacters): Deleted.

5:34 AM WebKitGTK/2.18.x edited by Michael Catanzaro
(diff)
5:03 AM Changeset in webkit [224015] by Carlos Garcia Campos
  • 19 edits in trunk

REGRESSION(r222090): [HarfBuzz] Arabic shaping is broken except for first word in line
https://bugs.webkit.org/show_bug.cgi?id=178625

Reviewed by Michael Catanzaro.

Source/WebCore:

Once we find the first space, which has the COMMON script, we split the run, and the next ones keep using
COMMON instead of ARABIC because we don't update the current script on every loop iteration. This patch
simplifies the script handling by moving the code back to the loop and always breaking in case of different
scripts, correctly handling INHERITED and COMMON cases and updating the current script when needed.

Covered by existing tests. This improves several tests that have been rebaselined.

  • platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:

(WebCore::findNextRun):
(WebCore::scriptsAreCompatibleForCharacters): Deleted.

LayoutTests:

Rebaseline several tests that have been improved.

  • platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-br-expected.png:
  • platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-br-expected.txt:
  • platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-p-expected.png:
  • platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-p-expected.txt:
  • platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-br-expected.png:
  • platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-br-expected.txt:
  • platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-p-expected.png:
  • platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-p-expected.txt:
  • platform/gtk/fast/text/atsui-negative-spacing-features-expected.png:
  • platform/gtk/fast/text/atsui-negative-spacing-features-expected.txt:
  • platform/gtk/fast/text/international/hebrew-vowels-expected.png:
  • platform/gtk/fast/text/international/hebrew-vowels-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/fonts-glyph-02-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/fonts-glyph-02-t-expected.txt:
  • platform/gtk/svg/custom/glyph-selection-arabic-forms-expected.png:
  • platform/gtk/svg/custom/glyph-selection-arabic-forms-expected.txt:
3:58 AM Changeset in webkit [224014] by Carlos Garcia Campos
  • 3 edits
    315 adds in trunk

WebDriver: Add support to import and run W3C tests
https://bugs.webkit.org/show_bug.cgi?id=177304

Reviewed by Brian Burg.

Tools:

WPT has now several WebDriver tests, and new ones are going to be added to cover the whole spec. This patch
adds the initial support for running W3C tests. The script import-w3c-webdriver-tests reuses parts of the W3C
test downloader to download the tests and required tools from WPT repository into WebDriverTests
directory. Tests can be run with run-webdriver-tests, a new script that works similar to other test runner
scripts. For now it shows a summary at the end of the execution, there aren't expectations yet, since we are not
ready to run those tests in the bots. Once we are ready to properly run the tests, we can add the expectations
support and run the tests in the bots.

  • Scripts/import-w3c-webdriver-tests: Added.
  • Scripts/run-webdriver-tests: Added.
  • Scripts/webkitpy/style/checker.py: Skip WebDriverTests directory since it only contains third-party python

code.

  • Scripts/webkitpy/thirdparty/init.py: Add support to autodownload mozlog and mozprocess since they are

required by the WebDriver tests.

  • Scripts/webkitpy/webdriver_tests/init.py: Added.
  • Scripts/webkitpy/webdriver_tests/webdriver_driver.py: Added.
  • Scripts/webkitpy/webdriver_tests/webdriver_driver_gtk.py: Added.
  • Scripts/webkitpy/webdriver_tests/webdriver_test_result.py: Added.
  • Scripts/webkitpy/webdriver_tests/webdriver_test_runner.py: Added.
  • Scripts/webkitpy/webdriver_tests/webdriver_test_runner_w3c.py: Added.
  • Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py: Added.
  • Scripts/webkitpy/webdriver_tests/webdriver_w3c_web_server.py: Added.

WebDriverTests:

Add json file used by the importer and the result of running the importer.

  • imported/w3c/importer.json: Added.
  • imported/w3c/tools/pytest/: Added.
  • imported/w3c/tools/webdriver/: Added.
  • imported/w3c/tools/wptrunner/: Added.
  • imported/w3c/webdriver/: Added.
3:44 AM Changeset in webkit [224013] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk/Source/WebInspectorUI

[GTK] Web Inspector: Add CanvasOverview.svg and Canvas.svg
https://bugs.webkit.org/show_bug.cgi?id=178426

Patch by Fujii Hironori <Fujii Hironori> on 2017-10-26
Reviewed by Carlos Garcia Campos.

  • UserInterface/Images/gtk/Canvas.svg: Added.
  • UserInterface/Images/gtk/CanvasOverview.svg: Added.
3:31 AM Changeset in webkit [224012] by eocanha@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE][GStreamer] Fix hang on clearing/destroying AppendPipeline
https://bugs.webkit.org/show_bug.cgi?id=178819

Reviewed by Xabier Rodriguez-Calvar.

The deadlock may occur when UI thread tries to clear pipeline in
AppendPipeline::clearPlayerPrivate() while parser thread tries to change
pipeline state to pause holding the stream lock in
AppendPipeline::connectDemuxerSrcPadToAppsinkFromAnyThread()

This patch is authored by Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>

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

(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromAnyThread):
Return if there's no player private.

1:46 AM Changeset in webkit [224011] by rniwa@webkit.org
  • 5 edits in trunk/Source/WebCore

Assert that no script is executed during style recalc
https://bugs.webkit.org/show_bug.cgi?id=178845
<rdar://problem/35106129>

Reviewed by Antti Koivisto.

This patch adds NoEventDispatchAssertion to Document::updateStyle and Document::updateStyleIfNeeded
to make sure we don't start mutating DOM in the middle of a style update.

Added NoEventDispatchAssertion::EventAllowedScope for various places in SVGUseElement to update its
shadow tree since that happens while updating the style.

No new tests since there should be no behavioral change.

  • dom/Document.cpp:

(WebCore::Document::resolveStyle): Added NoEventDispatchAssertion while flushing pending stylesheets
and calling FrameView::willRecalcStyle, and while the style tree solver is in works. Also moved in
the code to update the selection and schedule to dispatch a fake mouse event into the same scope.
Also increment m_styleRecalcCount in the same code since post resolution callbacks could run author
scripts which in turn trigger another (recursive) style recalc.
(WebCore::Document::updateStyleIfNeeded): Put everything but the call to resolveStyle in a scope with
NoEventDispatchAssertion.

  • dom/Element.cpp:

(WebCore::Element::cloneElementWithChildren): Added NoEventDispatchAssertion::EventAllowedScope to the
newly cloned element for SVG use element's shadow tree.
(WebCore::Element::cloneElementWithoutChildren): Ditto.

  • dom/EventDispatcher.cpp:

(WebCore::EventDispatcher::dispatchEvent): Make the assertion more precise to workaround the fact SVG
use elements update its shadow tree in the middle of style updates. Also removed a redundant assertion
since the result of NoEventDispatchAssertion::isEventDispatchAllowedInSubtree cannot chance without
pushing or popoing the stack frame.

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::clearShadowTree):
(WebCore::SVGUseElement::updateShadowTree): Added NoEventDispatchAssertion to the user-agent shadow root
of a SVG use element. Since this is a newly created shadow tree which hasn't been exposed to author
scripts, it's safe to mutate them during the style recalc even though it's not the best design.
(WebCore::SVGUseElement::cloneTarget const): Ditto.
(WebCore::SVGUseElement::expandUseElementsInShadowTree const): Ditto.
(WebCore::SVGUseElement::expandSymbolElementsInShadowTree const): Ditto.
(WebCore::SVGUseElement::transferEventListenersToShadowTree const):

12:10 AM Changeset in webkit [224010] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

LayoutTest http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=178828

Reviewed by Wenson Hsieh.

Removed the superflous call to finishJSTest after 3s.

  • http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin.html:
12:07 AM Changeset in webkit [224009] by keith_miller@apple.com
  • 3 edits in trunk/Source/WebCore

Move platform Cocoa sources to unified sources
https://bugs.webkit.org/show_bug.cgi?id=178851

Rubber-stamped by Tim Horton.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
Note: See TracTimeline for information about the timeline view.