WebKit-https.git
10 months agoMake JetStream 2
sbarati@apple.com [Thu, 18 Oct 2018 21:11:41 +0000 (21:11 +0000)]
Make JetStream 2
https://bugs.webkit.org/show_bug.cgi?id=187829

Rubber-stamped by Mark Lam.

This patch checks in the new JetStream 2 benchmark. JetStream 2 is
a new JavaScript and Web Assembly benchmark. JetStream 2's goal
is to measure the startup, worst case, and peak throughput performance
of the JavaScript engine. JetStream 2 incorporates these previous
benchmarks:
- JetStream
- ARES-6
- Kraken
- Web Tooling Benchmark
- WasmBench
- RexBench

JetStream 2 also adds some new benchmarks:
- Two tests emphasizing web worker performance.
- One test emphasizing Promise, async iteration, and DataView performance.
- Two new code load tests.
- WSL: a test measuring all kinds of things, especially emphasizing exception performance.

* JetStream2: Added.

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

10 months ago[GTK] fast/css/pseudo-visited-background-color-on-input.html is failing since r237425
wenson_hsieh@apple.com [Thu, 18 Oct 2018 20:02:49 +0000 (20:02 +0000)]
[GTK] fast/css/pseudo-visited-background-color-on-input.html is failing since r237425
https://bugs.webkit.org/show_bug.cgi?id=190712

Reviewed by Tim Horton.

Ensure that color inputs are enabled by default on GTK, and that color inputs have a `-webkit-appearance` of
`color-well` by default. Fixes fast/css/pseudo-visited-background-color-on-input.html on GTK.

* page/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::colorInputStyleSheet const):
* rendering/RenderTheme.h:
(WebCore::RenderTheme::platformUsesColorWellAppearance const):
(WebCore::RenderTheme::platformColorInputStyleSheet const): Deleted.

Replace this with a platform hook that determines whether we want to use `-webkit-appearance: color-well;` by
default for inputs of type color. For now, only iOS overrides this to return false; in the future, we should
support `-webkit-appearance: color-well;` on iOS, and remove this platform hook entirely.

* rendering/RenderThemeIOS.h:
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::platformColorInputStyleSheet const): Deleted.

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

10 months agoHandle MDNS resolution of candidates through libwebrtc directly
youenn@apple.com [Thu, 18 Oct 2018 18:15:19 +0000 (18:15 +0000)]
Handle MDNS resolution of candidates through libwebrtc directly
https://bugs.webkit.org/show_bug.cgi?id=190681

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

* Configurations/libwebrtc.iOS.exp:
* Configurations/libwebrtc.iOSsim.exp:
* Configurations/libwebrtc.mac.exp:

Source/WebCore:

Remove the previous MDNS resolution mechanism.
Instead, add support for the AsyncResolver mechanism added to libwebrtc.
Covered by current mdns webrtc test that is unflaked.

* Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::PeerConnectionBackend::addIceCandidate):
* platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
(WebCore::LibWebRTCProvider::createPeerConnection):
* platform/mediastream/libwebrtc/LibWebRTCProvider.h:
* testing/MockLibWebRTCPeerConnection.cpp:
(WebCore::MockLibWebRTCPeerConnectionFactory::CreatePeerConnection):
* testing/MockLibWebRTCPeerConnection.h:

Source/WebKit:

Add support for AsyncResolver to resolve MDNS.
This basically reuse the code path used to resolve STUN server addresses.
Removed MDNS specific resolution.
Use existing CFHost resolution mechanism to do the actual resolution.

* NetworkProcess/webrtc/NetworkMDNSRegister.cpp:
(WebKit::NetworkMDNSRegister::registerMDNSName):
* NetworkProcess/webrtc/NetworkMDNSRegister.messages.in:
* WebProcess/Network/webrtc/LibWebRTCProvider.cpp:
(WebKit::LibWebRTCProvider::createPeerConnection):
* WebProcess/Network/webrtc/LibWebRTCProvider.h:
* WebProcess/Network/webrtc/LibWebRTCSocketFactory.h:
* WebProcess/Network/webrtc/WebMDNSRegister.cpp:
* WebProcess/Network/webrtc/WebMDNSRegister.h:
* WebProcess/Network/webrtc/WebMDNSRegister.messages.in:

LayoutTests:

* TestExpectations:
Test should no longer be flaky as we no longer enforce a timer for resolving MDNS candidates.

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

10 months agoUnreviewed, rolling out r237137.
achristensen@apple.com [Thu, 18 Oct 2018 17:33:53 +0000 (17:33 +0000)]
Unreviewed, rolling out r237137.

SPI is actually used

Reverted changeset:

"Remove unused WebFrame._loadType"
https://bugs.webkit.org/show_bug.cgi?id=190583
https://trac.webkit.org/changeset/237137

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

10 months agodelete expression should not throw without a reference
ross.kirsling@sony.com [Thu, 18 Oct 2018 17:31:21 +0000 (17:31 +0000)]
delete expression should not throw without a reference
https://bugs.webkit.org/show_bug.cgi?id=190637

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseUnaryExpression):
Eliminate non-spec-compliant switch case.

LayoutTests:

* js/basic-strict-mode-expected.txt:
* js/script-tests/basic-strict-mode.js:
Update test cases.

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

10 months ago[GTK] fast/selectors/read-only-read-write-input-basics.html failing since r237245
wenson_hsieh@apple.com [Thu, 18 Oct 2018 17:11:57 +0000 (17:11 +0000)]
[GTK] fast/selectors/read-only-read-write-input-basics.html failing since r237245
https://bugs.webkit.org/show_bug.cgi?id=190711

Unreviewed test gardening.

Adjust layout test baselines after r237245. Make fast/selectors/read-only-read-write-input-basics-expected.txt
contain PASS expectations for color inputs, and remove port-specific iOS/macOS WebKit2 expectations. Since color
inputs are disabled in legacy WebKit, move the layout test expectation in platform/mac to platform/mac-wk1.

* fast/selectors/read-only-read-write-input-basics-expected.txt:
* platform/ios-wk2/fast/selectors/read-only-read-write-input-basics-expected.txt: Removed.
* platform/mac-wk2/fast/selectors/read-only-read-write-input-basics-expected.txt: Removed.

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

10 months ago[PSON] Cap number of SuspendedPageProxy objects and allow a WebPageProxy to have...
cdumez@apple.com [Thu, 18 Oct 2018 15:33:54 +0000 (15:33 +0000)]
[PSON] Cap number of SuspendedPageProxy objects and allow a WebPageProxy to have more than one
https://bugs.webkit.org/show_bug.cgi?id=190688
<rdar://problem/45354095>

Reviewed by Antti Koivisto.

Source/WebKit:

Cap number of SuspendedPageProxy objects to 3 to avoid accumulating too many "suspended" processes.

Also allow a WebPageProxy to have more than one SuspendedPageProxy so that PageCache now works for
more than 1 history navigation (up to 3 with the suspended page limit in this patch).

The following cleanup / refactoring was made to support this:
- The SuspendedPageProxy objects are now owned by the WebProcessPool instead of the WebPageProxy.
  The WebProcessPool is in charge of limiting the number of SuspendedPageProxy objects by dropping
  the oldest one whenever a WebPageProxy tries to add a new one and we've already reached the limit.
- WebProcessProxy no longer needs to know anything about suspended pages, which simplifies the
  code quite a bit. Instead, the SuspendedPageProxy objects now register themselves as
  IPC::MessageReceivers with their WebProcessProxy. The SuspendedPageProxy also take care of
  calling maybeShutdown() on their WebProcessProxy when they get destroyed.

* UIProcess/SuspendedPageProxy.cpp:
(WebKit::SuspendedPageProxy::~SuspendedPageProxy):
(WebKit::SuspendedPageProxy::tearDownDrawingAreaInWebProcess):
(WebKit::SuspendedPageProxy::unsuspend):
(WebKit::SuspendedPageProxy::didFinishLoad):
(WebKit::SuspendedPageProxy::didReceiveSyncMessage):
* UIProcess/SuspendedPageProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::suspendCurrentPageIfPossible):
(WebKit::WebPageProxy::swapToWebProcess):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::didCompletePageTransition):
(WebKit::WebPageProxy::enterAcceleratedCompositingMode):
* UIProcess/WebPageProxy.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::processForNavigationInternal):
(WebKit::WebProcessPool::addSuspendedPageProxy):
(WebKit::WebProcessPool::removeAllSuspendedPageProxiesForPage):
(WebKit::WebProcessPool::takeSuspendedPageProxy):
(WebKit::WebProcessPool::hasSuspendedPageProxyFor):
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didReceiveMessage):
(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
(WebKit::WebProcessProxy::canTerminateChildProcess):
(WebKit::WebProcessProxy::requestTermination):
* UIProcess/WebProcessProxy.h:

Tools:

Extended API test coverage to confirm that:
- We do not accumulate more than 3 suspended processes.
- We can navigate back 3 times and use the page cache for each of these loads.

* TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

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

10 months agoUnreviewed GTK+ gardening after r237249.
magomez@igalia.com [Thu, 18 Oct 2018 15:19:10 +0000 (15:19 +0000)]
Unreviewed GTK+ gardening after r237249.

* platform/gtk/TestExpectations:
* platform/gtk/fast/forms/fieldset/fieldset-elements-htmlcollection-expected.txt: Added.

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

10 months ago[IntersectionObserver] Factor out rect mapping and clipping logic from computeRectFor...
ajuma@chromium.org [Thu, 18 Oct 2018 13:50:55 +0000 (13:50 +0000)]
[IntersectionObserver] Factor out rect mapping and clipping logic from computeRectForRepaint
https://bugs.webkit.org/show_bug.cgi?id=189833

Reviewed by Simon Fraser.

Factor out the rect mapping and clipping logic from computeRectForRepaint to a new
computeVisibleRectInContainer method that computeRectForRepaint now calls. Make
computeVisibleRectInContainer take a VisibleRectContext with options to use
edge-inclusive intersection and to apply all clips and scrolls rather than only
the clips and scrolls that are currently applied by the repaint logic. These
options will be used by IntersectionObserver in a future patch.

No new tests, no change in behavior.

* platform/graphics/FloatRect.cpp:
(WebCore::FloatRect::edgeInclusiveIntersect):
* platform/graphics/FloatRect.h:
* platform/graphics/LayoutRect.cpp:
(WebCore::LayoutRect::edgeInclusiveIntersect):
* platform/graphics/LayoutRect.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::applyCachedClipAndScrollPosition const):
(WebCore::RenderBox::computeVisibleRectUsingPaintOffset const):
(WebCore::RenderBox::computeVisibleRectInContainer const):
(WebCore::RenderBox::applyCachedClipAndScrollPositionForRepaint const): Deleted.
(WebCore::RenderBox::shouldApplyClipAndScrollPositionForRepaint const): Deleted.
The iOS-specific logic in this method has moved to RenderObject::shouldApplyCompositedContainerScrollsForRepaint.
(WebCore::RenderBox::computeRectForRepaint const): Deleted.
* rendering/RenderBox.h:
(WebCore::RenderBox::computeRectForRepaint): Deleted.
* rendering/RenderInline.cpp:
(WebCore::RenderInline::clippedOverflowRectForRepaint const):
(WebCore::RenderInline::computeVisibleRectUsingPaintOffset const):
(WebCore::RenderInline::computeVisibleRectInContainer const):
(WebCore::RenderInline::computeRectForRepaint const): Deleted.
* rendering/RenderInline.h:
(WebCore::RenderInline::computeRectForRepaint): Deleted.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::shouldApplyCompositedContainerScrollsForRepaint):
(WebCore::RenderObject::visibleRectContextForRepaint):
(WebCore::RenderObject::computeRectForRepaint const):
(WebCore::RenderObject::computeFloatRectForRepaint const):
(WebCore::RenderObject::computeVisibleRectInContainer const):
(WebCore::RenderObject::computeFloatVisibleRectInContainer const):
* rendering/RenderObject.h:
(WebCore::RenderObject::computeAbsoluteRepaintRect const):
(WebCore::RenderObject::VisibleRectContext::VisibleRectContext):
(WebCore::RenderObject::RepaintContext::RepaintContext): Deleted.
(WebCore::RenderObject::computeRectForRepaint): Deleted.
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::computeVisibleRectInContainer const):
(WebCore::RenderTableCell::computeRectForRepaint const): Deleted.
* rendering/RenderTableCell.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::computeVisibleRectInContainer const):
(WebCore::RenderView::computeRectForRepaint const): Deleted.
* rendering/RenderView.h:
* rendering/svg/RenderSVGForeignObject.cpp:
(WebCore::RenderSVGForeignObject::computeFloatVisibleRectInContainer const):
(WebCore::RenderSVGForeignObject::computeVisibleRectInContainer const):
(WebCore::RenderSVGForeignObject::computeFloatRectForRepaint const): Deleted.
(WebCore::RenderSVGForeignObject::computeRectForRepaint const): Deleted.
* rendering/svg/RenderSVGForeignObject.h:
* rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::computeFloatVisibleRectInContainer const):
(WebCore::RenderSVGInline::computeFloatRectForRepaint const): Deleted.
* rendering/svg/RenderSVGInline.h:
* rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::computeFloatVisibleRectInContainer const):
(WebCore::RenderSVGModelObject::computeFloatRectForRepaint const): Deleted.
* rendering/svg/RenderSVGModelObject.h:
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::computeFloatVisibleRectInContainer const):
(WebCore::RenderSVGRoot::computeFloatRectForRepaint const): Deleted.
* rendering/svg/RenderSVGRoot.h:
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::computeVisibleRectInContainer const):
(WebCore::RenderSVGText::computeFloatVisibleRectInContainer const):
(WebCore::RenderSVGText::computeRectForRepaint const): Deleted.
(WebCore::RenderSVGText::computeFloatRectForRepaint const): Deleted.
* rendering/svg/RenderSVGText.h:
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::clippedOverflowRectForRepaint):
(WebCore::SVGRenderSupport::computeFloatVisibleRectInContainer):
(WebCore::SVGRenderSupport::computeFloatRectForRepaint): Deleted.
* rendering/svg/SVGRenderSupport.h:

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

10 months ago[JSC] JSC should have "parseFunction" to optimize Function constructor
yusukesuzuki@slowstart.org [Thu, 18 Oct 2018 13:04:22 +0000 (13:04 +0000)]
[JSC] JSC should have "parseFunction" to optimize Function constructor
https://bugs.webkit.org/show_bug.cgi?id=190340

Reviewed by Mark Lam.

JSTests:

This patch fixes the line number of syntax errors raised by the Function constructor,
since we now parse the final code only once. And we no longer use block statement
for Function constructor's parsing.

* ChakraCore/test/Function/FuncBodyES5.baseline-jsc:
* stress/function-cache-with-parameters-end-position.js: Added.
(shouldBe):
(shouldThrow):
(i.anonymous):
* stress/function-constructor-name.js: Added.
(shouldBe):
(GeneratorFunction):
(AsyncFunction.async):
(AsyncGeneratorFunction.async):
(anonymous):
(async.anonymous):
* test262/expectations.yaml:

LayoutTests/imported/w3c:

* web-platform-tests/html/webappapis/scripting/events/inline-event-handler-ordering-expected.txt:
* web-platform-tests/html/webappapis/scripting/events/invalid-uncompiled-raw-handler-compiled-late-expected.txt:
* web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-in-attribute-expected.txt:
* web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-in-body-onerror-expected.txt:

Source/JavaScriptCore:

The current Function constructor is suboptimal. We parse the piece of the same code three times to meet
the spec requirement. (1) check parameters syntax, (2) check body syntax, and (3) parse the entire function.
And to parse 1-3 correctly, we create two strings, the parameters and the entire function. This operation
is really costly and ideally we should meet the above requirement by the one time parsing.

To meet the above requirement, we add a special function for Parser, parseSingleFunction. This function
takes `std::optional<int> functionConstructorParametersEndPosition` and check this end position is correct in the parser.
For example, if we run the code,

    Function('/*', '*/){')

According to the spec, this should produce '/*' parameter string and '*/){' body string. And parameter
string should be syntax-checked by the parser, and raise the error since it is incorrect. Instead of doing
that, in our implementation, we first create the entire string.

    function anonymous(/*) {
        */){
    }

And we parse it. At that time, we also pass the end position of the parameters to the parser. In the above case,
the position of the `function anonymous(/*)' <> is passed. And in the parser, we check that the last token
offset of the parameters is the given end position. This check allows us to raise the error correctly to the
above example while we parse the entire function only once. And we do not need to create two strings too.

This improves the performance of the Function constructor significantly. And web-tooling-benchmark/uglify-js is
significantly sped up (28.2%).

Before:
    uglify-js:  2.94 runs/s
After:
    uglify-js:  3.77 runs/s

* bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::UnlinkedFunctionExecutable::fromGlobalCode):
* bytecode/UnlinkedFunctionExecutable.h:
* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseSingleFunction):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseAsyncFunctionDeclaration):
* parser/Parser.h:
(JSC::Parser<LexerType>::parse):
(JSC::parse):
(JSC::parseFunctionForFunctionConstructor):
* parser/ParserModes.h:
* parser/ParserTokens.h:
(JSC::JSTextPosition::JSTextPosition):
(JSC::JSTokenLocation::JSTokenLocation): Deleted.
* parser/SourceCodeKey.h:
(JSC::SourceCodeKey::SourceCodeKey):
(JSC::SourceCodeKey::operator== const):
* runtime/CodeCache.cpp:
(JSC::CodeCache::getUnlinkedGlobalCodeBlock):
(JSC::CodeCache::getUnlinkedGlobalFunctionExecutable):
* runtime/CodeCache.h:
* runtime/FunctionConstructor.cpp:
(JSC::constructFunctionSkippingEvalEnabledCheck):
* runtime/FunctionExecutable.cpp:
(JSC::FunctionExecutable::fromGlobalCode):
* runtime/FunctionExecutable.h:

LayoutTests:

* fast/dom/attribute-event-listener-errors-expected.txt:
* fast/events/attribute-listener-deletion-crash-expected.txt:
* fast/events/window-onerror-syntax-error-in-attr-expected.txt:
* js/dom/invalid-syntax-for-function-expected.txt:
* js/dom/script-start-end-locations-expected.txt:

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

10 months agoUnreviewed, rolling out r237242.
commit-queue@webkit.org [Thu, 18 Oct 2018 11:22:51 +0000 (11:22 +0000)]
Unreviewed, rolling out r237242.
https://bugs.webkit.org/show_bug.cgi?id=190701

it breaks "stress/sampling-profiler-basic.js" (Requested by
caiolima on #webkit).

Reverted changeset:

"[BigInt] Add ValueSub into DFG"
https://bugs.webkit.org/show_bug.cgi?id=186176
https://trac.webkit.org/changeset/237242

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

10 months agoMissing #pragma once in WasmOpcodeOrigin.h
commit-queue@webkit.org [Thu, 18 Oct 2018 08:25:00 +0000 (08:25 +0000)]
Missing #pragma once in WasmOpcodeOrigin.h
https://bugs.webkit.org/show_bug.cgi?id=190699

Patch by Takafumi Kubota <takafumi.kubota1012@sslab.ics.keio.ac.jp> on 2018-10-18
Reviewed by Yusuke Suzuki.

This patch add ''#pragma once'' into WasmOpcodeOrigin.h to avoid the
multiple inclusion that can happen in the unified build
configuration.

* wasm/WasmOpcodeOrigin.h:

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

10 months agoEnable the datalist element by default on iOS and macOS
wenson_hsieh@apple.com [Thu, 18 Oct 2018 03:48:10 +0000 (03:48 +0000)]
Enable the datalist element by default on iOS and macOS
https://bugs.webkit.org/show_bug.cgi?id=190594
<rdar://problem/45281159>

Reviewed by Ryosuke Niwa and Tim Horton.

LayoutTests/imported/w3c:

Rebaseline some web platform tests.

* web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt:
* web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt:
* web-platform-tests/html/semantics/forms/the-datalist-element/datalistoptions-expected.txt:
* web-platform-tests/html/semantics/forms/the-input-element/hidden-expected.txt:
* web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt:
* web-platform-tests/html/semantics/forms/the-input-element/text-expected.txt:
* web-platform-tests/shadow-dom/input-element-list-expected.txt:

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Rebaselined existing layout tests.

* Configurations/FeatureDefines.xcconfig:
* bindings/js/WebCoreBuiltinNames.h:
* css/CSSDefaultStyleSheets.cpp:
(WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
* css/CSSDefaultStyleSheets.h:
* css/InspectorCSSOMWrappers.cpp:
(WebCore::InspectorCSSOMWrappers::collectDocumentWrappers):
* css/html.css:

Remove color input and datalist style rules from the default UA stylesheet.

(input[type="color"]::-webkit-color-swatch-wrapper): Deleted.
* html/HTMLDataListElement.idl:

Make HTMLDataListElement runtime-enabled.

* html/HTMLTagNames.in:
* html/RangeInputType.cpp:

Make a slight adjustment here so that inputs of type range respect the list attribute. Fixes a few layout tests
that add a datalist to an input of type range. See <https://bugs.webkit.org/show_bug.cgi?id=190613> for more
details.

(WebCore::RangeInputType::shouldRespectListAttribute):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::shouldRespectListAttribute):
* page/RuntimeEnabledFeatures.h:

Add a runtime-enabled feature for the datalist element. Additionally, make the runtime-enabled feature for input
type color false by default, so that it's off in WebKitLegacy.

(WebCore::RuntimeEnabledFeatures::dataListElementEnabled const):
(WebCore::RuntimeEnabledFeatures::setDataListElementEnabled):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::colorInputStyleSheet const):

Add new style-sheet hooks for datalist and input type color, so that style rules for color inputs and datalists
can be added at runtime only if the feature is enabled. This ensures that in WebKitLegacy (or other ports where
either or both elements are disabled), we don't still apply rules for datalist and input[type="color"]. Notably,
this allows fallback content inside datalist elements to still work in WebKitLegacy (which would otherwise be
hidden when using the default stylesheet since `display: none` is applied to datalist by default). This also
prevents inputs of type color from having a smaller size, no outline, and the appearance of a color well on
macOS.

(WebCore::RenderTheme::dataListStyleSheet const):
* rendering/RenderTheme.h:
(WebCore::RenderTheme::platformColorInputStyleSheet const):
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::platformColorInputStyleSheet const):

Source/WebCore/PAL:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit:

* Configurations/FeatureDefines.xcconfig:
* Platform/spi/ios/UIKitSPI.h:

Add SPI to UITextSuggestion.

* Shared/WebPreferences.yaml:
* Shared/WebPreferencesDefaultValues.h:
* UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:
(-[WKDataListSuggestionCell setText:]):
(-[WKDataListSuggestionTable initWithElementRect:]):

Fix the 32-bit macOS build with ENABLE(DATALIST_ELEMENT).

Source/WebKitLegacy/mac:

* Configurations/FeatureDefines.xcconfig:

Tools:

* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

* TestExpectations:

Mark a couple of datalist tests as failures, with corresponding Bugzilla links.

* fast/forms/datalist/datalist-fallback-content-expected.html:
* fast/forms/datalist/datalist-fallback-content.html:

Refactor this ref test. This was checking that a text input field with an associated datalist with fallback
content looks identical to an text input field without a datalist, but this simply isn't the case with our
current implementation due to the presence of the list button. Instead, add a div to cover the list button in
both cases, and further augment this test to check that inputs of type color behave the same.

* fast/forms/datalist/range-snap-to-datalist-expected.txt: Added.

Add missing expectations for this test that were never checked in. Since sliderTickSnappingThreshold simply
returns 0, this test behaves as expected, though behavior here may change when we add a make the "snapping
threshold" nonzero.

* fast/forms/datalist/validity-assertion-inserting-into-datalist-expected.txt: Renamed from LayoutTests/fast/forms/validity-assertion-inserting-into-datalist-expected.txt.
* fast/forms/datalist/validity-assertion-inserting-into-datalist.html: Renamed from LayoutTests/fast/forms/validity-assertion-inserting-into-datalist.html.
* fast/selectors/read-only-read-write-input-basics-expected.txt:
* platform/mac/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
* platform/ios-simulator/fast/forms/datalist/datalist-searchinput-appearance-expected.txt: Added.
* platform/ios-simulator/fast/forms/datalist/datalist-textinput-appearance-expected.txt: Added.

Add missing expectations.

* platform/ios-wk1/TestExpectations:

Don't run datalist tests in WebKitLegacy by marking them as [ WontFix ].

* platform/ios-wk2/accessibility/roles-exposed-expected.txt: Added.
* platform/ios-wk2/fast/borders/empty-outline-border-assert-expected.txt: Added.
* platform/ios-wk2/fast/dom/Window/window-lookup-precedence-expected.txt: Added.
* platform/ios-wk2/fast/forms/label/labelable-elements-expected.txt: Added.
* platform/ios-wk2/fast/forms/label/readwrite-readonly-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt.
* platform/ios-wk2/fast/selectors/read-only-read-write-input-basics-expected.txt: Copied from LayoutTests/fast/selectors/read-only-read-write-input-basics-expected.txt.
* platform/ios-wk2/imported/w3c/web-platform-tests/custom-elements/builtin-coverage-expected.txt: Added.
* platform/ios-wk2/imported/w3c/web-platform-tests/dom/nodes/Node-cloneNode-expected.txt: Added.
* platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements-expected.txt: Added.
* platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements-xhtml-expected.txt: Added.
* platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt.
* platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt.
* platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
* platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt.
* platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt:
* platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt.
* platform/ios-wk2/imported/w3c/web-platform-tests/shadow-dom/input-element-list-expected.txt: Added.
* platform/ios-wk2/mathml/presentation/foreign-element-in-token-expected.txt: Added.

Add baselines for WebKit2, where we enable the datalist element and color inputs.

* platform/ios/TestExpectations:
* platform/mac-wk1/TestExpectations:

Don't run datalist tests in WebKitLegacy by marking them as [ WontFix ].

* platform/mac-wk2/accessibility/roles-exposed-expected.txt: Copied from LayoutTests/platform/mac/accessibility/roles-exposed-expected.txt.
* platform/mac-wk2/fast/borders/empty-outline-border-assert-expected.txt: Added.
* platform/mac-wk2/fast/dom/Window/window-lookup-precedence-expected.txt: Added.
* platform/mac-wk2/fast/forms/label/labelable-elements-expected.txt: Added.
* platform/mac-wk2/fast/forms/label/readwrite-readonly-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt.
* platform/mac-wk2/fast/selectors/read-only-read-write-input-basics-expected.txt: Copied from LayoutTests/fast/selectors/read-only-read-write-input-basics-expected.txt.
* platform/mac-wk2/imported/w3c/web-platform-tests/custom-elements/builtin-coverage-expected.txt: Added.
* platform/mac-wk2/imported/w3c/web-platform-tests/dom/nodes/Node-cloneNode-expected.txt: Added.
* platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements-expected.txt: Added.
* platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements-xhtml-expected.txt: Added.
* platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt: Renamed from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt.
* platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt: Renamed from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt.
* platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt.
* platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt: Renamed from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt.
* platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt.
* platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt.
* platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt: Copied from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt.
* platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt.
* platform/mac-wk2/imported/w3c/web-platform-tests/shadow-dom/input-element-list-expected.txt: Added.
* platform/mac-wk2/mathml/presentation/foreign-element-in-token-expected.txt: Added.

Add baselines for WebKit2, where we enable the datalist element and color inputs.

* platform/mac/TestExpectations:
* platform/mac/accessibility/roles-exposed-expected.txt:
* platform/mac/fast/selectors/read-only-read-write-input-basics-expected.txt:
* platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
* platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
* platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt:
* platform/mac/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt:

Re-rebaseline test expectations that involve input type color, now that color inputs are off by default in WebKitLegacy.

* platform/win/TestExpectations:

Remove various datalist test skips and failures on macOS and iOS; ensure that the test failures that are still
present are tracked with links to Bugzilla.

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

10 months agoJSTests:
keith_miller@apple.com [Thu, 18 Oct 2018 03:18:08 +0000 (03:18 +0000)]
JSTests:
AI does not clear Phantom allocation nodes.
https://bugs.webkit.org/show_bug.cgi?id=190694

Reviewed by Saam Barati.

* stress/ftl-ai-filter-phantoms-should-clear-clear-value.js: Added.
(Day):
(DaysInYear):
(TimeInYear):
(TimeFromYear):
(DayFromYear):
(InLeapYear):
(YearFromTime):
(WeekDay):
(DaylightSavingTA):
(GetSecondSundayInMarch):
(TimeInMonth):

Source/JavaScriptCore:
[BigInt] Add ValueSub into DFG
https://bugs.webkit.org/show_bug.cgi?id=186176

Patch by Caio Lima <ticaiolima@gmail.com> on 2018-10-17
Reviewed by Yusuke Suzuki.

We are introducing in this patch a new node called ValueSub. This node
is necessary due to introduction of BigInt, making subtraction
operations result in non-Number values in some cases. In such case, ValueSub is
responsible to handle Untyped and BigInt operations.
In addition, we are also creating a speculative path when both
operands are BigInt. According to a simple BigInt subtraction microbenchmark,
this represents a speedup of ~1.2x faster.

big-int-simple-sub    14.6427+-0.5652    ^    11.9559+-0.6485   ^   definitely 1.2247x faster

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::addSpeculationMode):
* dfg/DFGNodeType.h:
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGPredictionPropagationPhase.cpp:
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileValueSub):
(JSC::DFG::SpeculativeJIT::compileArithSub):
* dfg/DFGSpeculativeJIT.h:
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGValidate.cpp:
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileValueSub):

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

10 months agoParse paint() and store paint callbacks for CSS Painting API
commit-queue@webkit.org [Thu, 18 Oct 2018 02:47:00 +0000 (02:47 +0000)]
Parse paint() and store paint callbacks for CSS Painting API
https://bugs.webkit.org/show_bug.cgi?id=190657

Patch by Justin Michaud <justin_michaud@apple.com> on 2018-10-17
Reviewed by Dean Jackson.

Source/WebCore:

Implement support for parsing paint() images in css, and store CSS paint callback objects in the paint definition map.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCSSPaintWorkletGlobalScopeCustom.cpp:
(WebCore::JSCSSPaintWorkletGlobalScope::visitAdditionalChildren):
(WebCore::JSCSSPaintWorkletGlobalScope::registerPaint):
* 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/CSSPaintImageValue.cpp: Added.
(WebCore::CSSPaintImageValue::customCSSText const):
* css/CSSPaintImageValue.h: Added.
* css/CSSPaintWorkletGlobalScope.h:
* css/CSSPaintWorkletGlobalScope.idl:
* css/CSSValue.cpp:
(WebCore::CSSValue::equals const):
(WebCore::CSSValue::cssText const):
(WebCore::CSSValue::destroy):
* css/CSSValue.h:
(WebCore::CSSValue::isPaintImageValue const):
* css/CSSValueKeywords.in:
* css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeCustomPaint):
(WebCore::CSSPropertyParserHelpers::consumeGeneratedImage):
(WebCore::CSSPropertyParserHelpers::isGeneratedImage):
* platform/mediastream/mac/RealtimeVideoUtilities.h:

LayoutTests:

* fast/css-custom-paint/basic-expected.txt:
* fast/css-custom-paint/basic.html:

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

10 months ago[BigInt] Add ValueSub into DFG
ticaiolima@gmail.com [Thu, 18 Oct 2018 01:14:00 +0000 (01:14 +0000)]
[BigInt] Add ValueSub into DFG
https://bugs.webkit.org/show_bug.cgi?id=186176

Reviewed by Yusuke Suzuki.

JSTests:

* stress/big-int-subtraction-jit.js:
* stress/value-sub-big-int-prediction-propagation.js: Added.
* stress/value-sub-big-int-untyped.js: Added.

Source/JavaScriptCore:

We are introducing in this patch a new node called ValueSub. This node
is necessary due to introduction of BigInt, making subtraction
operations result in non-Number values in some cases. In such case, ValueSub is
responsible to handle Untyped and BigInt operations.
In addition, we are also creating a speculative path when both
operands are BigInt. According to a simple BigInt subtraction microbenchmark,
this represents a speedup of ~1.2x faster.

big-int-simple-sub    14.6427+-0.5652    ^    11.9559+-0.6485   ^   definitely 1.2247x faster

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::addSpeculationMode):
* dfg/DFGNodeType.h:
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGPredictionPropagationPhase.cpp:
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileValueSub):
(JSC::DFG::SpeculativeJIT::compileArithSub):
* dfg/DFGSpeculativeJIT.h:
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGValidate.cpp:
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileValueSub):

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

10 months agoThe parser should not emit a ApplyFunctionCallDotNode for Reflect.apply.
mark.lam@apple.com [Wed, 17 Oct 2018 23:56:56 +0000 (23:56 +0000)]
The parser should not emit a ApplyFunctionCallDotNode for Reflect.apply.
https://bugs.webkit.org/show_bug.cgi?id=190671
<rdar://problem/45201145>

Reviewed by Saam Barati.

The bytecode generator does not currently know how to inline Reflect.apply (see
https://bugs.webkit.org/show_bug.cgi?id=190668).  Hence, it's a waste of time to
emit the ApplyFunctionCallDotNode since the function check against Function.apply
that it will generate will always fail.

Also fixed CallVariant::dump() to be able to handle dumping a non-executable
callee.  Reflect.apply used to trip this up.  Any object with an apply property
invoked as a function could also trip this up.  This is now fixed.

* bytecode/CallVariant.cpp:
(JSC::CallVariant::dump const):
* bytecompiler/NodesCodegen.cpp:
(JSC::ApplyFunctionCallDotNode::emitBytecode):
* parser/ASTBuilder.h:
(JSC::ASTBuilder::makeFunctionCallNode):

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

10 months ago[MediaStream] Consolidate all image conversion and resizing into one class
ryanhaddad@apple.com [Wed, 17 Oct 2018 23:54:19 +0000 (23:54 +0000)]
[MediaStream] Consolidate all image conversion and resizing into one class
https://bugs.webkit.org/show_bug.cgi?id=190519
<rdar://problem/45224307>

Try to fix the iOSMac build after r237236.

Patch by Eric Carlson <eric.carlson@apple.com> on 2018-10-17

* platform/graphics/cv/ImageTransferSessionVT.h:
* platform/graphics/cv/ImageTransferSessionVT.mm:

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

10 months ago[WebGPU] Implement WebGPU bindings up through WebGPUDevice creation
justin_fan@apple.com [Wed, 17 Oct 2018 23:30:56 +0000 (23:30 +0000)]
[WebGPU] Implement WebGPU bindings up through WebGPUDevice creation
https://bugs.webkit.org/show_bug.cgi?id=190653

Reviewed by Dean Jackson.

Source/WebCore:

Test: webgpu/webgpu-enabled.html

Add WebGPU Sketch bindings for window.webgpu, WebGPUAdapter, WebGPUAdapterDescriptor,
and WebGPUDevice creation. Based off IDL commit version b6c61ee.
https://github.com/gpuweb/gpuweb/blob/master/design/sketch.webidl

* CMakeLists.txt:
* DerivedSources.make:
* Modules/webgpu/DOMWindowWebGPU.cpp: Added.
(WebCore::DOMWindowWebGPU::DOMWindowWebGPU):
(WebCore::DOMWindowWebGPU::supplementName):
(WebCore::DOMWindowWebGPU::from):
(WebCore::DOMWindowWebGPU::webgpu):
(WebCore::DOMWindowWebGPU::webgpu const):
* Modules/webgpu/DOMWindowWebGPU.h: Added.
* Modules/webgpu/DOMWindowWebGPU.idl: Added.
* Modules/webgpu/WebGPU.cpp: Added.
(WebCore::WebGPU::create):
(WebCore::WebGPU::requestAdapter const):
* Modules/webgpu/WebGPU.h: Added.
* Modules/webgpu/WebGPU.idl: Added.
* Modules/webgpu/WebGPUAdapter.cpp: Added.
(WebCore::WebGPUAdapter::create):
(WebCore::WebGPUAdapter::WebGPUAdapter):
(WebCore::WebGPUAdapter::createDevice):
* Modules/webgpu/WebGPUAdapter.h: Added.
* Modules/webgpu/WebGPUAdapter.idl: Added.
* Modules/webgpu/WebGPUAdapterDescriptor.h: Added.
* Modules/webgpu/WebGPUAdapterDescriptor.idl: Added.
* Modules/webgpu/WebGPUDevice.cpp: Added.
(WebCore::WebGPUDevice::create):
(WebCore::WebGPUDevice::WebGPUDevice):
* Modules/webgpu/WebGPUDevice.h: Added.
(WebCore::WebGPUDevice::adapter const):
* Modules/webgpu/WebGPUDevice.idl: Added.
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreBuiltinNames.h:

LayoutTests:

Small test to validate creation of a WebGPUDevice when WebGPU is enabled.

* webgpu/webgpu-enabled.html: Added.

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

10 months ago[Apple Pay] Increment the API version to 5
aestes@apple.com [Wed, 17 Oct 2018 23:10:33 +0000 (23:10 +0000)]
[Apple Pay] Increment the API version to 5
https://bugs.webkit.org/show_bug.cgi?id=190686
<rdar://problem/45348523>

Reviewed by Simon Fraser.

Source/WebCore:

Test: http/tests/ssl/applepay/ApplePaySessionV5.html

* testing/MockPaymentCoordinator.cpp:
(WebCore::MockPaymentCoordinator::supportsVersion):

Source/WebKit:

* WebProcess/ApplePay/WebPaymentCoordinator.cpp:
(WebKit::WebPaymentCoordinator::supportsVersion):

LayoutTests:

* http/tests/ssl/applepay/ApplePaySessionV5-expected.txt: Added.
* http/tests/ssl/applepay/ApplePaySessionV5.html: Added.
* platform/mac-wk2/TestExpectations:

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

10 months agoUnreviewed, rolling out r237208.
commit-queue@webkit.org [Wed, 17 Oct 2018 23:06:02 +0000 (23:06 +0000)]
Unreviewed, rolling out r237208.
https://bugs.webkit.org/show_bug.cgi?id=190691

Caused the API test that was changed to failure continuously
(Requested by Truitt on #webkit).

Reverted changeset:

"[Media] Use nanoseconds as MaximumTimeScale"
https://bugs.webkit.org/show_bug.cgi?id=190631
https://trac.webkit.org/changeset/237208

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

10 months ago[MediaStream] Consolidate all image conversion and resizing into one class
eric.carlson@apple.com [Wed, 17 Oct 2018 21:55:36 +0000 (21:55 +0000)]
[MediaStream] Consolidate all image conversion and resizing into one class
https://bugs.webkit.org/show_bug.cgi?id=190519
<rdar://problem/45224307>

Reviewed by Youenn Fablet.

No new tests, no functional change.

* SourcesCocoa.txt: Add ImageTransferSessionVT.
* WebCore.xcodeproj/project.pbxproj: Ditto.

* platform/MediaSample.h:
(WebCore::MediaSample::videoPixelFormat const): New.

* platform/cocoa/VideoToolboxSoftLink.cpp: Add new kVTPixelTransferProperty keys.
* platform/cocoa/VideoToolboxSoftLink.h:

* platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
(WebCore::MediaSampleAVFObjC::create): Remove unimplemented variant.
* platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
(WebCore::MediaSampleAVFObjC::videoPixelFormat const): New.

* platform/graphics/cv/ImageTransferSessionVT.h: Added.
(WebCore::ImageTransferSessionVT::create):
* platform/graphics/cv/ImageTransferSessionVT.mm: Added.
(WebCore::ImageTransferSessionVT::ImageTransferSessionVT):
(WebCore::ImageTransferSessionVT::~ImageTransferSessionVT):
(WebCore::ImageTransferSessionVT::setSize):
(WebCore::ImageTransferSessionVT::createPixelBuffer):
(WebCore::ImageTransferSessionVT::createCMSampleBuffer):
(WebCore::roundUpToMacroblockMultiple):
(WebCore::ImageTransferSessionVT::ioSurfacePixelBufferCreationOptions):
(WebCore::ImageTransferSessionVT::createMediaSample):

* platform/graphics/cv/PixelBufferResizer.h: Removed.
* platform/graphics/cv/PixelBufferResizer.mm: Removed.

* platform/mediastream/mac/AVVideoCaptureSource.h:
* platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::prefersPreset):
(WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection): Remove
the resizing logic, it is handled by the base class.

* platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:
(WebCore::DisplayCaptureSourceCocoa::capabilities):
(WebCore::DisplayCaptureSourceCocoa::settingsDidChange):
(WebCore::DisplayCaptureSourceCocoa::setIntrinsicSize):
(WebCore::DisplayCaptureSourceCocoa::emitFrame): Remove resizing logic, just use a transfer
session to create an image from the capture source native output format.
(WebCore::DisplayCaptureSourceCocoa::sampleBufferFromPixelBuffer): Deleted.
(WebCore::roundUpToMacroblockMultiple): Deleted.
(WebCore::DisplayCaptureSourceCocoa::pixelBufferFromIOSurface): Deleted.
* platform/mediastream/mac/DisplayCaptureSourceCocoa.h:

* platform/mediastream/mac/MockRealtimeVideoSourceMac.h:
* platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
(WebCore::MockRealtimeVideoSourceMac::updateSampleBuffer): Use image transfer session.
(WebCore::MockRealtimeVideoSourceMac::CMSampleBufferFromPixelBuffer): Deleted.
(WebCore::MockRealtimeVideoSourceMac::pixelBufferFromCGImage const): Deleted.
(WebCore::MockRealtimeVideoSourceMac::setSizeAndFrameRateWithPreset): Deleted.

* platform/mediastream/mac/ScreenDisplayCaptureSourceMac.h:
* platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm:
(WebCore::ScreenDisplayCaptureSourceMac::createDisplayStream):
(WebCore::ScreenDisplayCaptureSourceMac::generateFrame): Return the IOSurface directly.

* platform/mediastream/mac/WindowDisplayCaptureSourceMac.h:
* platform/mediastream/mac/WindowDisplayCaptureSourceMac.mm:
(WebCore::WindowDisplayCaptureSourceMac::generateFrame): Return the CGImage directly.
(WebCore::WindowDisplayCaptureSourceMac::pixelBufferFromCGImage): Deleted.

* platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::capabilities): Only the camera supports device ID.
(WebCore::MockRealtimeVideoSource::settings): Ditto.

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

10 months agoVersioning.
bshafiei@apple.com [Wed, 17 Oct 2018 21:09:40 +0000 (21:09 +0000)]
Versioning.

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

10 months ago[MediaStream] Clean up capture source factory management
eric.carlson@apple.com [Wed, 17 Oct 2018 21:06:31 +0000 (21:06 +0000)]
[MediaStream] Clean up capture source factory management
https://bugs.webkit.org/show_bug.cgi?id=190502
<rdar://problem/45212447>

Reviewed by Youenn Fablet.

No new tests, no functional change.

* platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::setAudioFactory):
(WebCore::RealtimeMediaSourceCenter::unsetAudioFactory):
(WebCore::RealtimeMediaSourceCenter::audioFactory):
(WebCore::RealtimeMediaSourceCenter::setVideoFactory):
(WebCore::RealtimeMediaSourceCenter::unsetVideoFactory):
(WebCore::RealtimeMediaSourceCenter::videoFactory):
(WebCore::RealtimeMediaSourceCenter::setDisplayCaptureFactory):
(WebCore::RealtimeMediaSourceCenter::unsetDisplayCaptureFactory):
(WebCore::RealtimeMediaSourceCenter::displayCaptureFactory):
* platform/mediastream/RealtimeMediaSourceCenter.h:
(WebCore::RealtimeMediaSourceCenter::setAudioFactory): Deleted.
(WebCore::RealtimeMediaSourceCenter::unsetAudioFactory): Deleted.
(): Deleted.
* platform/mediastream/gstreamer/RealtimeMediaSourceCenterLibWebRTC.cpp:
(WebCore::RealtimeMediaSourceCenterLibWebRTC::audioFactoryPrivate):
(WebCore::RealtimeMediaSourceCenterLibWebRTC::videoFactoryPrivate):
(WebCore::RealtimeMediaSourceCenterLibWebRTC::displayCaptureFactoryPrivate):
(WebCore::RealtimeMediaSourceCenterLibWebRTC::audioCaptureSourceFactory): Deleted.
(WebCore::RealtimeMediaSourceCenterLibWebRTC::audioFactory): Deleted.
(WebCore::RealtimeMediaSourceCenterLibWebRTC::videoFactory): Deleted.
(WebCore::RealtimeMediaSourceCenterLibWebRTC::displayCaptureFactory): Deleted.
* platform/mediastream/gstreamer/RealtimeMediaSourceCenterLibWebRTC.h:
* platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
(WebCore::RealtimeMediaSourceCenterMac::audioFactoryPrivate):
(WebCore::RealtimeMediaSourceCenterMac::videoFactoryPrivate):
(WebCore::RealtimeMediaSourceCenterMac::displayCaptureFactoryPrivate):
(WebCore::RealtimeMediaSourceCenterMac::videoCaptureSourceFactory): Deleted.
(WebCore::RealtimeMediaSourceCenterMac::displayCaptureSourceFactory): Deleted.
(WebCore::RealtimeMediaSourceCenterMac::audioCaptureSourceFactory): Deleted.
(WebCore::RealtimeMediaSourceCenterMac::audioFactory): Deleted.
(WebCore::RealtimeMediaSourceCenterMac::videoFactory): Deleted.
(WebCore::RealtimeMediaSourceCenterMac::displayCaptureFactory): Deleted.
* platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:
* platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::MockRealtimeMediaSourceCenter::audioFactoryPrivate):
(WebCore::MockRealtimeMediaSourceCenter::videoFactoryPrivate):
(WebCore::MockRealtimeMediaSourceCenter::displayCaptureFactoryPrivate):
(WebCore::MockRealtimeMediaSourceCenter::audioFactory): Deleted.
(WebCore::MockRealtimeMediaSourceCenter::videoFactory): Deleted.
(WebCore::MockRealtimeMediaSourceCenter::displayCaptureFactory): Deleted.
* platform/mock/MockRealtimeMediaSourceCenter.h:

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

10 months agoBackForwardClient needs to be able to support UIProcess-only back/forward lists
achristensen@apple.com [Wed, 17 Oct 2018 20:37:36 +0000 (20:37 +0000)]
BackForwardClient needs to be able to support UIProcess-only back/forward lists
https://bugs.webkit.org/show_bug.cgi?id=190675

Reviewed by Chris Dumez.

Source/WebCore:

Return a RefPtr<HistoryItem> instead of a HistoryItem so that we will be able to return a
HistoryItem that has been created instead of a pointer to a HistoryItem that is owned by something else.
Also use unsigned for the back and forward list counts because they can never be negative.

* history/BackForwardClient.h:
* history/BackForwardController.cpp:
(WebCore::BackForwardController::backItem):
(WebCore::BackForwardController::currentItem):
(WebCore::BackForwardController::forwardItem):
(WebCore::BackForwardController::canGoBackOrForward const):
(WebCore::BackForwardController::goBackOrForward):
(WebCore::BackForwardController::goBack):
(WebCore::BackForwardController::goForward):
(WebCore::BackForwardController::count const):
(WebCore::BackForwardController::backCount const):
(WebCore::BackForwardController::forwardCount const):
(WebCore::BackForwardController::itemAtIndex):
* history/BackForwardController.h:
(WebCore::BackForwardController::backItem): Deleted.
(WebCore::BackForwardController::currentItem): Deleted.
(WebCore::BackForwardController::forwardItem): Deleted.
* loader/EmptyClients.cpp:
* loader/NavigationScheduler.cpp:
(WebCore::NavigationScheduler::scheduleHistoryNavigation):

Source/WebKit:

* UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::itemAtIndex const):
(WebKit::WebBackForwardList::backListCount const):
(WebKit::WebBackForwardList::forwardListCount const):
* UIProcess/WebBackForwardList.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::backForwardBackListCount):
(WebKit::WebPageProxy::backForwardForwardListCount):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebPage/WebBackForwardListProxy.cpp:
(WebKit::WebBackForwardListProxy::itemAtIndex):
(WebKit::WebBackForwardListProxy::backListCount const):
(WebKit::WebBackForwardListProxy::forwardListCount const):
* WebProcess/WebPage/WebBackForwardListProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::dumpHistoryForTesting):

Source/WebKitLegacy/mac:

* History/BackForwardList.h:
* History/BackForwardList.mm:
(BackForwardList::backItem):
(BackForwardList::currentItem):
(BackForwardList::forwardItem):
(BackForwardList::backListCount const):
(BackForwardList::forwardListCount const):
(BackForwardList::itemAtIndex):
* History/WebBackForwardList.mm:
(-[WebBackForwardList backItem]):
(-[WebBackForwardList currentItem]):
(-[WebBackForwardList forwardItem]):
(-[WebBackForwardList itemAtIndex:]):

Source/WebKitLegacy/win:

* BackForwardList.cpp:
(BackForwardList::backItem):
(BackForwardList::currentItem):
(BackForwardList::forwardItem):
(BackForwardList::backListCount const):
(BackForwardList::forwardListCount const):
(BackForwardList::itemAtIndex):
* BackForwardList.h:

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

10 months agoWeb Inspector: Quickly Open to line/column does should have caret indicating where...
drousso@apple.com [Wed, 17 Oct 2018 19:46:54 +0000 (19:46 +0000)]
Web Inspector: Quickly Open to line/column does should have caret indicating where the position is
https://bugs.webkit.org/show_bug.cgi?id=190643

Reviewed by Matt Baker.

* UserInterface/Views/TextEditor.js:
(WI.TextEditor.prototype.set selectedTextRange):
(WI.TextEditor.prototype.revealPosition):
Ensure that CodeMirror is focused before attempting to `setSelection`.
Drive-by: allow selections past the "end" of the line (since there is a `\n` or `\r`).
* UserInterface/Views/SourceCodeTextEditor.js:
(WI.SourceCodeTextEditor.prototype.dialogWasDismissedWithRepresentedObject):
Remove the extra `focus` call after dismissing the `WI.GoToLineDialog` since it is now
handled by `WI.TextEditor` via `revealPosition`.

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

10 months ago[Web Animations] Do not create a DocumentTimeline to suspend or resume animations
commit-queue@webkit.org [Wed, 17 Oct 2018 19:06:49 +0000 (19:06 +0000)]
[Web Animations] Do not create a DocumentTimeline to suspend or resume animations
https://bugs.webkit.org/show_bug.cgi?id=190660

Patch by Antoine Quint <graouts@apple.com> on 2018-10-17
Reviewed by Dean Jackson.

We check that there is an existing timeline before trying to suspend or resume its animations, otherwise
we're creating a DocumentTimeline when nothing requires for it to exist. We also have to check that we
suspend animations when a DocumentTimeline is created while the page is not visible.

No new tests as there is no change in behavior here.

* animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::DocumentTimeline):
* dom/Document.cpp:
(WebCore::Document::didBecomeCurrentDocumentInFrame):
(WebCore::Document::resume):
* page/Frame.cpp:
(WebCore::Frame::clearTimers):
* page/Page.cpp:
(WebCore::Page::setIsVisibleInternal):
(WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):

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

10 months agoTiling CSS gradients is slow
antti@apple.com [Wed, 17 Oct 2018 19:00:03 +0000 (19:00 +0000)]
Tiling CSS gradients is slow
https://bugs.webkit.org/show_bug.cgi?id=190615

Reviewed by Tim Horton.

Painting blocks the main thread on CG rendering queue to make a copy of the backing store.

* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::drawPattern):

Also use sinkIntoImage for bitmap image pattern drawing.

* platform/graphics/GradientImage.cpp:
(WebCore::GradientImage::drawPattern):

Sink the gradient into an Image after generating it. Unlike ImageBuffer, painting it doesn't involve inefficient copies.
Previous isCompatibleWithContext test is replaced with an equivalent scale factor test.

* platform/graphics/GradientImage.h:

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

10 months agoUnreviewed, rolling out r237024.
commit-queue@webkit.org [Wed, 17 Oct 2018 18:31:28 +0000 (18:31 +0000)]
Unreviewed, rolling out r237024.
https://bugs.webkit.org/show_bug.cgi?id=190673

"It regressed ARES6 on iOS devices by 4-8%" (Requested by
saamyjoon on #webkit).

Reverted changeset:

"Increase executable memory pool from 64MB to 128MB for ARM64"
https://bugs.webkit.org/show_bug.cgi?id=190453
https://trac.webkit.org/changeset/237024

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

10 months agoUpdate more DOMWindow getters to return references instead of raw pointers
cdumez@apple.com [Wed, 17 Oct 2018 18:11:18 +0000 (18:11 +0000)]
Update more DOMWindow getters to return references instead of raw pointers
https://bugs.webkit.org/show_bug.cgi?id=190654

Reviewed by Youenn Fablet.

Update more DOMWindow getters to return references instead of raw pointers, since they
can no longer return null after recent refactoring.

* Modules/gamepad/GamepadManager.cpp:
(WebCore::navigatorGamepadFromDOMWindow):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::heapSnapshot):
* dom/Document.cpp:
(WebCore::Document::location const):
(WebCore::Document::dispatchPopstateEvent):
* dom/Event.cpp:
(WebCore::Event::timeStampForBindings const):
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::loadRequest):
* loader/ResourceTimingInformation.cpp:
(WebCore::ResourceTimingInformation::addResourceTiming):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::screen):
(WebCore::DOMWindow::history):
(WebCore::DOMWindow::crypto const):
(WebCore::DOMWindow::locationbar):
(WebCore::DOMWindow::menubar):
(WebCore::DOMWindow::personalbar):
(WebCore::DOMWindow::scrollbars):
(WebCore::DOMWindow::statusbar):
(WebCore::DOMWindow::toolbar):
(WebCore::DOMWindow::applicationCache):
(WebCore::DOMWindow::navigator):
(WebCore::DOMWindow::performance const):
(WebCore::DOMWindow::nowTimestamp const):
(WebCore::DOMWindow::location):
(WebCore::DOMWindow::visualViewport):
(WebCore::DOMWindow::styleMedia):
* page/DOMWindow.h:
* page/FrameView.cpp:
(WebCore::FrameView::updateLayoutViewport):
* page/History.cpp:
(WebCore::History::stateObjectAdded):
* page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::createTimestamp const):
* page/PerformanceObserver.cpp:
(WebCore::PerformanceObserver::PerformanceObserver):
* platform/cocoa/VideoFullscreenModelVideoElement.mm:
(WebCore::VideoFullscreenModelVideoElement::requestFullscreenMode):

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

10 months agoRemove unneeded .rej files from libwebrtc
youenn@apple.com [Wed, 17 Oct 2018 18:07:26 +0000 (18:07 +0000)]
Remove unneeded .rej files from libwebrtc
https://bugs.webkit.org/show_bug.cgi?id=190670

Reviewed by Mark Lam.

* Source/third_party/boringssl/src/.github/PULL_REQUEST_TEMPLATE.rej: Removed.
* Source/third_party/boringssl/src/third_party/googletest/.gitignore.rej: Removed.

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

10 months agoREGRESSION (r237075): webrtc/video-replace-muted-track.html is Crashing
youenn@apple.com [Wed, 17 Oct 2018 17:54:00 +0000 (17:54 +0000)]
REGRESSION (r237075): webrtc/video-replace-muted-track.html is Crashing
https://bugs.webkit.org/show_bug.cgi?id=190646

Reviewed by Eric Carlson.

Do not use VCP pixel buffer pool at all.
RealtimeOutgoingVideoSource makes sure to send the frame in the right format.
Tested by ensuring test no longer crashes.

* Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
(-[RTCSingleVideoEncoderH264 resetCompressionSessionIfNeededWithFrame:]):
(-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

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

10 months agoAX: Certain tags should identify their context to iOS API
cfleizach@apple.com [Wed, 17 Oct 2018 17:52:15 +0000 (17:52 +0000)]
AX: Certain tags should identify their context to iOS API
https://bugs.webkit.org/show_bug.cgi?id=190622
<rdar://problem/45308194>

Reviewed by Zalan Bujtas.

Source/WebCore:

Convey the semantic meaning of <code> tag to the iOS API so VoiceOver can make use of it.

Tests: accessibility/ios-simulator/text-context-attributes.html

* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityTextualContext]):
(AXAttributeStringSetStyle):

Tools:

* DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
(AccessibilityUIElement::stringAttributeValue):
* WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::stringAttributeValue):

LayoutTests:

* accessibility/ios-simulator/text-context-attributes.html: Added.
* accessibility/ios-simulator/text-context-attributes-expcted.txt: Added.

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

10 months agoRemove unused code from RealtimeOutgoingVideoSourceCocoa
youenn@apple.com [Wed, 17 Oct 2018 17:51:46 +0000 (17:51 +0000)]
Remove unused code from RealtimeOutgoingVideoSourceCocoa
https://bugs.webkit.org/show_bug.cgi?id=190666

Reviewed by Eric Carlson.

No change of behavior, removed no longer used code.

* platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:
(): Deleted.

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

10 months ago[JSC] Use WTF::Function instead of std::function
yusukesuzuki@slowstart.org [Wed, 17 Oct 2018 17:50:52 +0000 (17:50 +0000)]
[JSC] Use WTF::Function instead of std::function
https://bugs.webkit.org/show_bug.cgi?id=190665

Reviewed by Keith Miller.

We should use WTF::Function as much as possible. It allocates memory from bmalloc instead of standard malloc.

* runtime/JSNativeStdFunction.h:

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

10 months agoRemove debug logging from generate_offsets_extractor.rb
keith_miller@apple.com [Wed, 17 Oct 2018 17:49:15 +0000 (17:49 +0000)]
Remove debug logging from generate_offsets_extractor.rb
https://bugs.webkit.org/show_bug.cgi?id=190667

Reviewed by Mark Lam.

* offlineasm/generate_offset_extractor.rb:

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

10 months agoUnreviewed, fix windows build.
keith_miller@apple.com [Wed, 17 Oct 2018 17:20:31 +0000 (17:20 +0000)]
Unreviewed, fix windows build.

* offlineasm/generate_offset_extractor.rb:

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

10 months ago[JSC] More aggressively use `constexpr` in LowLevelInterpreter.asm for constant values
yusukesuzuki@slowstart.org [Wed, 17 Oct 2018 15:48:57 +0000 (15:48 +0000)]
[JSC] More aggressively use `constexpr` in LowLevelInterpreter.asm for constant values
https://bugs.webkit.org/show_bug.cgi?id=190659

Reviewed by Keith Miller.

Asking the actual constant value to the JSC binary is always the best way to get the correct value.
The value is correctly updated once the original value is changed. We would like to encourage this
approach more in LowLevelInterpreter.asm.

This patch expands the coverage of this approach. We make ObservedType, ResultType, and ArithProfile
constexpr-friendly to produce the magic value used in LowLevelInterpreter.asm at compiling time.
This change allows us to easily extend ArithProfile in the future to adopt BigInt efficiently.

We additionally use `constexpr` for several constant values in LowLevelInterpreter.asm.

* assembler/MaxFrameExtentForSlowPathCall.h:
Use this value in LowLevelInterpreter.asm directly. We also make them constexpr. And we add CPU(ARM64E).

* bytecode/ArithProfile.h:
(JSC::ObservedType::ObservedType):
(JSC::ObservedType::sawInt32 const):
(JSC::ObservedType::isOnlyInt32 const):
(JSC::ObservedType::sawNumber const):
(JSC::ObservedType::isOnlyNumber const):
(JSC::ObservedType::sawNonNumber const):
(JSC::ObservedType::isOnlyNonNumber const):
(JSC::ObservedType::isEmpty const):
(JSC::ObservedType::bits const):
(JSC::ObservedType::withInt32 const):
(JSC::ObservedType::withNumber const):
(JSC::ObservedType::withNonNumber const):
(JSC::ObservedType::withoutNonNumber const):
(JSC::ObservedType::operator== const):
(JSC::ArithProfile::ArithProfile):
(JSC::ArithProfile::fromInt):
(JSC::ArithProfile::observedUnaryInt):
(JSC::ArithProfile::observedUnaryNumber):
(JSC::ArithProfile::observedBinaryIntInt):
(JSC::ArithProfile::observedBinaryNumberInt):
(JSC::ArithProfile::observedBinaryIntNumber):
(JSC::ArithProfile::observedBinaryNumberNumber):
(JSC::ArithProfile::lhsObservedType const):
(JSC::ArithProfile::rhsObservedType const):
(JSC::ArithProfile::bits const):
Make ObservedType and ArithProfile constexpr-friendly.

* llint/LLIntData.cpp:
(JSC::LLInt::Data::performAssertions):
Make several ASSERTs to STATIC_ASSERTs. Remove some unnecessary checks.
* llint/LLIntOffsetsExtractor.cpp:
* llint/LowLevelInterpreter.asm:
Remove unused constant values. Use constexpr more and more aggressively.

* parser/ResultType.h:
(JSC::ResultType::ResultType):
(JSC::ResultType::isInt32 const):
(JSC::ResultType::definitelyIsNumber const):
(JSC::ResultType::definitelyIsString const):
(JSC::ResultType::definitelyIsBoolean const):
(JSC::ResultType::definitelyIsBigInt const):
(JSC::ResultType::mightBeNumber const):
(JSC::ResultType::isNotNumber const):
(JSC::ResultType::mightBeBigInt const):
(JSC::ResultType::isNotBigInt const):
(JSC::ResultType::nullType):
(JSC::ResultType::booleanType):
(JSC::ResultType::numberType):
(JSC::ResultType::numberTypeIsInt32):
(JSC::ResultType::stringOrNumberType):
(JSC::ResultType::addResultType):
(JSC::ResultType::stringType):
(JSC::ResultType::bigIntType):
(JSC::ResultType::unknownType):
(JSC::ResultType::forAdd):
(JSC::ResultType::forLogicalOp):
(JSC::ResultType::forBitOp):
(JSC::ResultType::bits const):
Make ResultType constexpr-friendly.

* runtime/JSCJSValue.h:
Use offsetof instead of OBJECT_OFFSETOF. It is OK since EncodedValueDescriptor is POD.
This change makes TagOffset and PayloadOffset macros constexpr-friendly while OBJECT_OFFSETOF
cannot be used in constexpr since it uses reinterpret_cast.

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

10 months agoUnreviewed revert Fujii's revert in r237214 with new WinCairo build fix.
keith_miller@apple.com [Wed, 17 Oct 2018 14:10:44 +0000 (14:10 +0000)]
Unreviewed revert Fujii's revert in r237214 with new WinCairo build fix.

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

10 months agoFlaky IntersectionObserver web platform tests involving style updates
ajuma@chromium.org [Wed, 17 Oct 2018 13:52:32 +0000 (13:52 +0000)]
Flaky IntersectionObserver web platform tests involving style updates
https://bugs.webkit.org/show_bug.cgi?id=189091

Reviewed by Simon Fraser.

Source/WebCore:

Update intersection observations when flushing layers from the WebProcess
to the UIProcess to make the timing of these updates more predictable, and
more consistent with the IntersectionObserver spec, since the spec expects
these updates to happen as part of the "Update the rendering" step in the
HTML EventLoop.

Getting a similar approach to work with WK1 seems to add more complexity than it's
worth, since flushes don't happen for scrolls handled by platform widgets, and
flushes for other invalidations only happen when in compositing mode.

The only remaining timer-driven intersection observation update is for handling
the initial observation on a newly added target, which needs to happen even if
there are no changes triggering a flush.

Tested by the following tests no longer being flaky:
    imported/w3c/web-platform-tests/intersection-observer/bounding-box.html
    imported/w3c/web-platform-tests/intersection-observer/display-none.html
    imported/w3c/web-platform-tests/intersection-observer/containing-block.html

* dom/Document.cpp:
(WebCore::Document::resolveStyle):
(WebCore::Document::updateIntersectionObservations):
(WebCore::Document::scheduleForcedIntersectionObservationUpdate):
(WebCore::Document::scheduleIntersectionObservationUpdate): Deleted.
* dom/Document.h:
* page/FrameView.cpp:
(WebCore::FrameView::flushCompositingStateForThisFrame):
(WebCore::FrameView::viewportContentsChanged):
* page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::observe):
* page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::willDisplayPage):
(WebCore::Page::addDocumentNeedingIntersectionObservationUpdate):
(WebCore::Page::updateIntersectionObservations):
(WebCore::Page::scheduleForcedIntersectionObservationUpdate):
* page/Page.h:

Source/WebKit:

Add a WebPage::willDisplayPage bottleneck that gets called when flushing layers
or, in the non-composited case, when rendering the page into a bitmap.

* WebProcess/WebPage/AcceleratedDrawingArea.cpp:
(WebKit::AcceleratedDrawingArea::updateBackingStoreState):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::layerFlushTimerFired):
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::display):
* WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willDisplayPage):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::flushLayers):

LayoutTests:

Remove expectation for tests that are no longer flaky.

Skip IntersectionObserver tests on WK1.

* TestExpectations:
* platform/mac-wk1/TestExpectations:

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

10 months ago[EME] Sanity check key ID length in the keyids init data format
cturner@igalia.com [Wed, 17 Oct 2018 11:07:59 +0000 (11:07 +0000)]
[EME] Sanity check key ID length in the keyids init data format
https://bugs.webkit.org/show_bug.cgi?id=190629

Reviewed by Xabier Rodriguez-Calvar.

LayoutTests/imported/w3c:

* web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.https-expected.txt:
Added new baseline.

Source/WebCore:

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

* Modules/encryptedmedia/InitDataRegistry.cpp:
(WebCore::extractKeyIDsKeyids): Ensure the decoded key id length
is at least 1 byte and no more than 512 bytes.

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

10 months ago[EME] media/encrypted-media/mock-MediaKeySystemAccess.html crashes in CDM::createInstance
cturner@igalia.com [Wed, 17 Oct 2018 11:00:13 +0000 (11:00 +0000)]
[EME] media/encrypted-media/mock-MediaKeySystemAccess.html crashes in CDM::createInstance
https://bugs.webkit.org/show_bug.cgi?id=190578

Reviewed by Xabier Rodriguez-Calvar.

* platform/gtk/TestExpectations:

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

10 months agoGetIndexedPropertyStorage can GC.
mark.lam@apple.com [Wed, 17 Oct 2018 04:16:24 +0000 (04:16 +0000)]
GetIndexedPropertyStorage can GC.
https://bugs.webkit.org/show_bug.cgi?id=190625
<rdar://problem/45309366>

Reviewed by Saam Barati.

This is because if the ArrayMode type is String, the DFG and FTL will be emitting
a call to operationResolveRope, and operationResolveRope can GC.  This patch
updates doesGC() to reflect this.

* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):

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

10 months agoUnreviewed, rolling out r237188, r237189, and r237197.
Hironori.Fujii@sony.com [Wed, 17 Oct 2018 03:01:23 +0000 (03:01 +0000)]
Unreviewed, rolling out r237188, r237189, and r237197.

It breaks WinCairo Debug builds and Release LayoutTests

Reverted changesets:

https://bugs.webkit.org/show_bug.cgi?id=189708
https://trac.webkit.org/changeset/237188

"Unreviewed, forgot to add untracked files."
https://trac.webkit.org/changeset/237189

"isASTErroneous in offlineasm should de-macroify before
looking for Errors"
https://bugs.webkit.org/show_bug.cgi?id=190634
https://trac.webkit.org/changeset/237197

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

10 months ago[GTK][WPE] Fix xdg-desktop-portal permissions from a sandbox
commit-queue@webkit.org [Wed, 17 Oct 2018 02:19:11 +0000 (02:19 +0000)]
[GTK][WPE] Fix xdg-desktop-portal permissions from a sandbox
https://bugs.webkit.org/show_bug.cgi?id=190619

Patch by Patrick Griffis <pgriffis@igalia.com> on 2018-10-16
Reviewed by Michael Catanzaro.

We have to generate a /.flatpak-info file for xdg-desktop-portal
to properly treat us as a sandboxed application.

* UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::createSealedMemFdWithData):
(WebKit::argsToFd):
(WebKit::XDGDBusProxyLauncher::setPermissions):
(WebKit::createFlatpakInfo):
(WebKit::bubblewrapSpawn):

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

10 months agoWeb Inspector: ⌃G to jump to line in CSS file wipes the line
commit-queue@webkit.org [Wed, 17 Oct 2018 01:53:30 +0000 (01:53 +0000)]
Web Inspector: ⌃G to jump to line in CSS file wipes the line
https://bugs.webkit.org/show_bug.cgi?id=190645

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-10-16
Reviewed by Devin Rousso.

* UserInterface/Base/Main.js:
* UserInterface/Views/Dialog.js:
(WI.Dialog.prototype.dismiss):
* UserInterface/Views/SourceCodeTextEditor.js:
(WI.SourceCodeTextEditor.prototype.dialogWasDismissed): Deleted.
Rename the handler when dismissing a dialog with a value so that
it is clear this is only on a successful value and not an invalid value.
Dialog now only calls this delegate with a valid value. This addresses
exceptions seen when the GoToLineDialog was dimissed via Escape and
an unexpected `null` value was being handled in the delegate.

* UserInterface/Views/GoToLineDialog.js:
(WI.GoToLineDialog.prototype._handleKeydownEvent):
* UserInterface/Views/OpenResourceDialog.js:
(WI.OpenResourceDialog.prototype._handleKeydownEvent):
Prevent default on the event whenever we dismiss the dialog.
Without this, the key event was also being sent to the editor.
In this case, that meant an "Enter" key was replacing the new
selection in the TextEditor with a newline!

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

10 months agoRegression(r236795) Check boxes are sometimes checked when they should not be
cdumez@apple.com [Wed, 17 Oct 2018 00:27:54 +0000 (00:27 +0000)]
Regression(r236795) Check boxes are sometimes checked when they should not be
https://bugs.webkit.org/show_bug.cgi?id=190651
<rdar://problem/45319934>

Reviewed by Ryosuke Niwa.

Source/WebCore:

r236795 mistakenly dropped the statement resetting m_reflectsCheckedAttribute to true
in HTMLInputElement::parseAttribute() because it looked like a no-op given that we
made sure it was true a couple of line above. However, I overlooked that calling
HTMLInputElement::setChecked() sets m_reflectsCheckedAttribute to false.

This patch thus re-introduces the statement. It also renames m_reflectsCheckedAttribute
to m_dirtyCheckednessFlag and reverses its value in order to match the specification
more closely:
- https://html.spec.whatwg.org/#concept-input-checked-dirty-flag

Test: fast/dom/HTMLInputElement/checkbox-dirty-checkedness-flag.html

* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::HTMLInputElement):
(WebCore::HTMLInputElement::parseAttribute):
(WebCore::HTMLInputElement::finishParsingChildren):
(WebCore::HTMLInputElement::reset):
(WebCore::HTMLInputElement::setChecked):
(WebCore::HTMLInputElement::copyNonAttributePropertiesFromElement):
* html/HTMLInputElement.h:

LayoutTests:

Add layout test coverage.

* fast/dom/HTMLInputElement/checkbox-dirty-checkedness-flag-expected.txt: Added.
* fast/dom/HTMLInputElement/checkbox-dirty-checkedness-flag.html: Added.

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

10 months agoAdd a switch for Web SQL
sihui_liu@apple.com [Tue, 16 Oct 2018 23:59:38 +0000 (23:59 +0000)]
Add a switch for Web SQL
https://bugs.webkit.org/show_bug.cgi?id=190271

Reviewed by Ryosuke Niwa.

Source/WebCore:

Web SQL is still enabled by default.

* Modules/webdatabase/DOMWindowWebDatabase.idl:
* Modules/webdatabase/Database.idl:
* Modules/webdatabase/SQLError.idl:
* Modules/webdatabase/SQLResultSet.idl:
* Modules/webdatabase/SQLResultSetRowList.idl:
* bindings/js/WebCoreBuiltinNames.h:
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setWebSQLDisabled):
(WebCore::RuntimeEnabledFeatures::webSQLEnabled const):

Source/WebKit:

* Shared/WebPreferences.yaml:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetWebSQLDisabled):
(WKPreferencesGetWebSQLDisabled):
* UIProcess/API/C/WKPreferencesRef.h:

Tools:

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):

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

10 months agowindow.performance should not become null after the window loses its browsing context
cdumez@apple.com [Tue, 16 Oct 2018 23:43:10 +0000 (23:43 +0000)]
window.performance should not become null after the window loses its browsing context
https://bugs.webkit.org/show_bug.cgi?id=190636

Reviewed by Ryosuke Niwa.

Source/WebCore:

window.performance should not become null after the window loses its browsing context. This
WebKit behavior does not match the HTML specification nor the behavior of other browsers.

Also note that the attribute is not nullable in the specification:
- https://www.w3.org/TR/navigation-timing/#sec-window.performance-attribute

No new tests, updated existing test.

* page/DOMWindow.cpp:
(WebCore::DOMWindow::performance const):
* page/Performance.cpp:
(WebCore::Performance::Performance):
* page/Performance.h:
* platform/GenericTaskQueue.h:
(WebCore::TaskDispatcher::TaskDispatcher):
(WebCore::TaskDispatcher::postTask):
(WebCore::GenericTaskQueue::GenericTaskQueue):
(WebCore::GenericTaskQueue::isClosed const):
* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope):

LayoutTests:

Extend layout test coverage.

* http/tests/dom/cross-origin-detached-window-properties-expected.txt:
* http/tests/dom/cross-origin-detached-window-properties.html:
* http/tests/dom/same-origin-detached-window-properties-expected.txt:
* http/tests/dom/same-origin-detached-window-properties.html:

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

10 months ago[Media] Use nanoseconds as MaximumTimeScale
aboya@igalia.com [Tue, 16 Oct 2018 23:18:07 +0000 (23:18 +0000)]
[Media] Use nanoseconds as MaximumTimeScale
https://bugs.webkit.org/show_bug.cgi?id=190631

1e9 is a much more useful timescale than the previous one 2^31-1.
Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
common among some formats like WebM and frameworks like GStreamer
where base 10 timescale is common... and it's those big timescales the
ones that are usually scaled up to MaximumTimeScale.

Reviewed by Jer Noble.

* wtf/MediaTime.cpp:

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

10 months agoRefactoring: Convert HTMLMediaElement::scheduleDelayedAction() to individually schedu...
jer.noble@apple.com [Tue, 16 Oct 2018 23:12:53 +0000 (23:12 +0000)]
Refactoring: Convert HTMLMediaElement::scheduleDelayedAction() to individually schedulable & cancelable tasks
https://bugs.webkit.org/show_bug.cgi?id=188208

Reviewed by Eric Carlson.

Rather than have a single, monolithic, zero-duration-timer based dispatch for
a bunch of methods to be performed in a future run-loop, convert them all to
use a DeferrableTask, which in turn is a kind of GenericTaskQueue which can
enqueue only a single task at a time. Convert some other zero-duration-timer
and GenericTaskQueue dispatches to this new DeferrableTask.

* WebCore.xcodeproj/project.pbxproj:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::finishParsingChildren):
(WebCore::HTMLMediaElement::scheduleCheckPlaybackTargetCompatability):
(WebCore::HTMLMediaElement::checkPlaybackTargetCompatablity):
(WebCore::HTMLMediaElement::prepareForLoad):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::seekWithTolerance):
(WebCore::HTMLMediaElement::setMuted):
(WebCore::HTMLMediaElement::mediaPlayerDidAddTextTrack):
(WebCore::HTMLMediaElement::didAddTextTrack):
(WebCore::HTMLMediaElement::scheduleConfigureTextTracks):
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
(WebCore::HTMLMediaElement::scheduleMediaEngineWasUpdated):
(WebCore::HTMLMediaElement::mediaEngineWasUpdated):
(WebCore::HTMLMediaElement::mediaPlayerEngineUpdated):
(WebCore::HTMLMediaElement::scheduleUpdatePlayState):
(WebCore::HTMLMediaElement::updatePlayState):
(WebCore::HTMLMediaElement::setPlaying):
(WebCore::HTMLMediaElement::setPausedInternal):
(WebCore::HTMLMediaElement::cancelPendingTasks):
(WebCore::HTMLMediaElement::userCancelledLoad):
(WebCore::HTMLMediaElement::clearMediaPlayer):
(WebCore::HTMLMediaElement::contextDestroyed):
(WebCore::HTMLMediaElement::stop):
(WebCore::HTMLMediaElement::suspend):
(WebCore::HTMLMediaElement::resume):
(WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged):
(WebCore::HTMLMediaElement::dispatchEvent):
(WebCore::HTMLMediaElement::removeEventListener):
(WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent):
(WebCore::HTMLMediaElement::didBecomeFullscreenElement):
(WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured):
(WebCore::HTMLMediaElement::scheduleUpdateMediaState):
(WebCore::HTMLMediaElement::updateMediaState):
(WebCore::HTMLMediaElement::playbackControlsManagerBehaviorRestrictionsTimerFired):
(WebCore::setFlags): Deleted.
(WebCore::clearFlags): Deleted.
(WebCore::actionName): Deleted.
(WebCore::HTMLMediaElement::scheduleDelayedAction): Deleted.
(WebCore::HTMLMediaElement::pendingActionTimerFired): Deleted.
* html/HTMLMediaElement.h:
* html/HTMLMediaElementEnums.h:
* platform/DeferrableTask.h: Added.
(WebCore::DeferrableTask::DeferrableTask):
(WebCore::DeferrableTask::scheduleTask):
(WebCore::DeferrableTask::close):
(WebCore::DeferrableTask::cancelTask):
(WebCore::DeferrableTask::hasPendingTask const):

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

10 months agoUnreviewed, rolling out r236996.
dewei_zhu@apple.com [Tue, 16 Oct 2018 22:58:03 +0000 (22:58 +0000)]
Unreviewed, rolling out r236996.

Temporarily rollout to fix a manifest generation bug.
"lastModified" field for certain platform & metric configurations may be missing.

Reverted changeset:

"ManifestGenerator shouldn't need more than 1GB of memory or
run for 30 seconds"
https://bugs.webkit.org/show_bug.cgi?id=190393
https://trac.webkit.org/changeset/236996

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

10 months agoRemove InjectedBundleBackForwardList
achristensen@apple.com [Tue, 16 Oct 2018 22:31:00 +0000 (22:31 +0000)]
Remove InjectedBundleBackForwardList
https://bugs.webkit.org/show_bug.cgi?id=190640

Reviewed by Chris Dumez.

Source/WebKit:

These objects are only used in testing now, so I made a replacement to be used for testing,
WKBundlePageDumpHistoryForTesting and WKBundleClearHistoryForTesting.
The existence of these objects is problematic with process swapping and the true back/forward list being in the UIProcess.

* Sources.txt:
* WebProcess/InjectedBundle/API/c/WKBundleBackForwardList.cpp:
(WKBundleBackForwardListGetTypeID):
(WKBundleBackForwardListCopyItemAtIndex):
(WKBundleBackForwardListGetBackListCount):
(WKBundleBackForwardListGetForwardListCount):
(WKBundleBackForwardListClear):
* WebProcess/InjectedBundle/API/c/WKBundleBackForwardList.h:
* WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.cpp:
(WKBundleBackForwardListItemGetTypeID):
(WKBundleBackForwardListItemIsSame):
(WKBundleBackForwardListItemCopyURL):
(WKBundleBackForwardListItemCopyTarget):
(WKBundleBackForwardListItemIsTargetItem):
(WKBundleBackForwardListItemCopyChildren):
* WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.h:
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageDumpHistoryForTesting):
(WKBundleClearHistoryForTesting):
(WKBundlePageGetBackForwardList):
* WebProcess/InjectedBundle/API/c/WKBundlePage.h:
* WebProcess/InjectedBundle/InjectedBundleBackForwardList.cpp: Removed.
* WebProcess/InjectedBundle/InjectedBundleBackForwardList.h: Removed.
* WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.cpp: Removed.
* WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.h: Removed.
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::~WebPage):
(WebKit::dumpHistoryItem):
(WebKit::WebPage::dumpHistoryForTesting):
(WebKit::WebPage::clearHistory):
(WebKit::WebPage::didReceiveSyncMessage):
(WebKit::WebPage::backForwardList): Deleted.
* WebProcess/WebPage/WebPage.h:

Tools:

* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::dumpBackForwardListsForAllPages):
* WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::prepare):
(WTR::InjectedBundlePage::dumpHistory):
(WTR::hasPrefix): Deleted.
(WTR::compareByTargetName): Deleted.
(WTR::dumpBackForwardListItem): Deleted.
(WTR::InjectedBundlePage::dumpBackForwardList): Deleted.
* WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::clearBackForwardList):

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

10 months agoAdd <meta name="supported-color-schemes"> to control what color schemes the page...
timothy@apple.com [Tue, 16 Oct 2018 21:53:55 +0000 (21:53 +0000)]
Add <meta name="supported-color-schemes"> to control what color schemes the page supports
https://bugs.webkit.org/show_bug.cgi?id=190526
rdar://problem/45230140

Reviewed by Dean Jackson.

Source/WebCore:

Test: css-dark-mode/supported-color-schemes.html

* dom/Document.cpp:
(WebCore::isColorSchemeSeparator): Added.
(WebCore::processColorSchemes): Added.
(WebCore::Document::processSupportedColorSchemes): Added.
(WebCore::Document::useDarkAppearance const): Take system appearance and document's
suppoerted color shcemes into account.
* dom/Document.h:
* editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::createFragment): Update use of LocalDefaultSystemAppearance.
* html/HTMLMetaElement.cpp:
(WebCore::HTMLMetaElement::process): Added supported-color-schemes behind runtime feature check.
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::paint): Update use of LocalDefaultSystemAppearance.
* platform/mac/DragImageMac.mm:
(WebCore::createDragImageForLink): Update use of LocalDefaultSystemAppearance.
* platform/mac/LocalDefaultSystemAppearance.h:
* platform/mac/LocalDefaultSystemAppearance.mm:
(WebCore::LocalDefaultSystemAppearance::LocalDefaultSystemAppearance):
Drop the need for useSystemAppearance. This is accounted for in Document::useDarkAppearance.
* platform/mac/ThemeMac.mm:
(WebCore::ThemeMac::paint): Update use of LocalDefaultSystemAppearance.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintContents): Update use of LocalDefaultSystemAppearance.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::paintContents): Update use of LocalDefaultSystemAppearance.
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paint): Use document instead of page.
* rendering/RenderThemeCocoa.mm:
(WebCore::RenderThemeCocoa::drawLineForDocumentMarker): Update use of LocalDefaultSystemAppearance.
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::documentViewFor const): Update use of LocalDefaultSystemAppearance.
(WebCore::RenderThemeMac::platformActiveSelectionBackgroundColor const): Ditto.
(WebCore::RenderThemeMac::platformInactiveSelectionBackgroundColor const): Ditto.
(WebCore::RenderThemeMac::transformSelectionBackgroundColor const): Ditto.
(WebCore::RenderThemeMac::supportsSelectionForegroundColors const): Ditto.
(WebCore::RenderThemeMac::platformActiveSelectionForegroundColor const): Ditto.
(WebCore::RenderThemeMac::platformInactiveSelectionForegroundColor const): Ditto.
(WebCore::RenderThemeMac::platformActiveListBoxSelectionBackgroundColor const): Ditto.
(WebCore::RenderThemeMac::platformInactiveListBoxSelectionBackgroundColor const): Ditto.
(WebCore::RenderThemeMac::platformActiveListBoxSelectionForegroundColor const): Ditto.
(WebCore::RenderThemeMac::platformInactiveListBoxSelectionForegroundColor const): Ditto.
(WebCore::RenderThemeMac::platformActiveTextSearchHighlightColor const): Ditto.
(WebCore::RenderThemeMac::colorCache const): Ditto.
(WebCore::RenderThemeMac::systemColor const): Ditto.
(WebCore::RenderThemeMac::paintCellAndSetFocusedElementNeedsRepaintIfNecessary): Ditto.
(WebCore::RenderThemeMac::paintSliderThumb): Ditto.
(WebCore::RenderThemeMac::usingDarkAppearance const): No need to limit to macOS here.
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::draw): Update use of LocalDefaultSystemAppearance.

Source/WebKit:

* UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView drawRect:]): Update use of LocalDefaultSystemAppearance.
* WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
(WebKit::InjectedBundleRangeHandle::renderedImage): Ditto.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::paintControlForLayerInContext): Ditto.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::drawRect): Ditto.

Source/WebKitLegacy/mac:

* WebCoreSupport/WebEditorClient.mm:
(_WebCreateFragment): Update use of LocalDefaultSystemAppearance.

LayoutTests:

* css-dark-mode/supported-color-schemes-expected.txt: Added.
* css-dark-mode/supported-color-schemes.html: Added.

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

10 months agoRemove superfluous VIDEO build guard
commit-queue@webkit.org [Tue, 16 Oct 2018 21:33:25 +0000 (21:33 +0000)]
Remove superfluous VIDEO build guard
https://bugs.webkit.org/show_bug.cgi?id=190624

Patch by Rob Buis <rbuis@igalia.com> on 2018-10-16
Reviewed by Michael Catanzaro.

Remove some instances where the VIDEO build guard is included within another VIDEO build guard.

No new tests. No change in behavior.

* platform/graphics/MediaPlayer.cpp:
(WebCore::buildMediaEnginesVector):
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:

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

10 months agoSupport RTCConfiguration.certificates
youenn@apple.com [Tue, 16 Oct 2018 21:01:15 +0000 (21:01 +0000)]
Support RTCConfiguration.certificates
https://bugs.webkit.org/show_bug.cgi?id=190603

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

* web-platform-tests/webrtc/RTCCertificate-expected.txt:
* web-platform-tests/webrtc/RTCPeerConnection-constructor-expected.txt:
* web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-constructor-expected.txt:

Source/ThirdParty/libwebrtc:

* Configurations/libwebrtc.iOS.exp:
* Configurations/libwebrtc.iOSsim.exp:
* Configurations/libwebrtc.mac.exp:

Source/WebCore:

Update RTCConfiguration to have a certificates member.
Add the conversion from RTCCertificate to libwebrtc certificates.
Add check to ensure that certificates are not expired.
Add check to ensure that certificates passed to setConfiguration were
the same as the ones passed to RTCPeerConnection constructor.
Once these checks are done, we reuse the certificates created at
RCPeerConnection creation time when setting the configuration again.

Covered by rebased WPT test.

* Modules/mediastream/RTCConfiguration.h:
* Modules/mediastream/RTCConfiguration.idl:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::certificatesFromConfiguration):
(WebCore::RTCPeerConnection::initializeConfiguration):
(WebCore::RTCPeerConnection::setConfiguration):
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::setConfiguration):
* Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::configurationFromMediaEndpointConfiguration):
* platform/mediastream/MediaEndpointConfiguration.cpp:
(WebCore::MediaEndpointConfiguration::MediaEndpointConfiguration):
* platform/mediastream/MediaEndpointConfiguration.h:

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

10 months agoUnreviewed, rolling out r237163.
ryanhaddad@apple.com [Tue, 16 Oct 2018 20:18:06 +0000 (20:18 +0000)]
Unreviewed, rolling out r237163.

Introduced layout test failures on iOS Simulator.

Reverted changeset:

"[CG] Adopt CG SPI for non-even cornered rounded rects"
https://bugs.webkit.org/show_bug.cgi?id=190155
https://trac.webkit.org/changeset/237163

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

10 months ago[JSC] stress/array-prototype-concat-of-long-spliced-arrays2.js times out on arm and...
dinfuehr@igalia.com [Tue, 16 Oct 2018 20:09:03 +0000 (20:09 +0000)]
[JSC] stress/array-prototype-concat-of-long-spliced-arrays2.js times out on arm and mips
https://bugs.webkit.org/show_bug.cgi?id=190611

Reviewed by Saam Barati.

Reduce array length just like in array-prototype-concat-of-long-spliced-arrays.js
to improve test runtime. On ARM/MIPS this test even timed out when running all
tests.

* stress/array-prototype-concat-of-long-spliced-arrays2.js:
(test):

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

10 months agoUnreviewed, added myself to contributors.json.
dinfuehr@igalia.com [Tue, 16 Oct 2018 20:07:23 +0000 (20:07 +0000)]
Unreviewed, added myself to contributors.json.

* Scripts/webkitpy/common/config/contributors.json:

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

10 months agoWeb Inspector: Canvas: capture previously saved states and add them to the recording...
drousso@apple.com [Tue, 16 Oct 2018 19:23:21 +0000 (19:23 +0000)]
Web Inspector: Canvas: capture previously saved states and add them to the recording payload
https://bugs.webkit.org/show_bug.cgi?id=190473

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

* inspector/protocol/Recording.json:
Add `states` key to `InitialState` object.

Source/WebCore:

Updated existing tests: inspector/canvas/recording-2d.html
                        inspector/model/recording.html

Instead of sending a single object of the current state of the context, send an array of
objects, one for each restore point.

* html/canvas/CanvasRenderingContext2DBase.h:
* html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::stateStack): Added.

* inspector/InspectorCanvas.h:
* inspector/InspectorCanvas.cpp:
(WebCore::InspectorCanvas::stringIndexForKey): Added.
(WebCore::InspectorCanvas::buildInitialState):

Source/WebInspectorUI:

Instead of sending a single object of the current state of the context, send an array of
objects, one for each restore point. When replaying, recreate each restore point before
applying the selected action(s).

* UserInterface/Models/Recording.js:
(WI.Recording):
(WI.Recording.fromPayload):
(WI.Recording.prototype.toJSON):
(WI.Recording.prototype.async._process):
(WI.Recording.prototype.async._swizzleState): Added.
* UserInterface/Models/RecordingAction.js:
(WI.RecordingAction):
(WI.RecordingAction.deriveCurrentState): Added.
(WI.RecordingAction.prototype.get states): Added.
(WI.RecordingAction.prototype.process):
(WI.RecordingAction.prototype.get state): Deleted.
Drive-by: when `process`ing, also check to see if any values in the current state changed
outside of those expected in `_stateModifiers` (e.g. `restore` may modify some state values).

* UserInterface/Views/RecordingContentView.js:
(WI.RecordingContentView.prototype._generateContentCanvas2D):

* UserInterface/Views/RecordingStateDetailsSidebarPanel.js:
(WI.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D):
Default to showing the most recent (current) state.

* UserInterface/Views/CanvasTabContentView.js:
(WI.CanvasTabContentView.prototype.initialLayout): Added.
(WI.CanvasTabContentView.prototype._addCanvas):
(WI.CanvasTabContentView.prototype._removeCanvas):
(WI.CanvasTabContentView.prototype._addRecording): Added.
(WI.CanvasTabContentView.prototype._recordingImportedOrStopped):
(WI.CanvasTabContentView.prototype._recordingAdded): Deleted.
* UserInterface/Controllers/CanvasManager.js:
(WI.CanvasManager):
(WI.CanvasManager.prototype.get importedRecordings): Added.
(WI.CanvasManager.prototype.importRecording):
Drive-by: store imported recordings on `WI.CanvasManager` so that if the Canvas tab is
closed we can still show the list of imported recordings.

LayoutTests:

* inspector/canvas/recording-2d-expected.txt:
* inspector/canvas/recording-2d.html:
* inspector/canvas/resources/recording-utilities.js:
(TestPage.registerInitializer):
(TestPage.registerInitializer.async.logRecording): Added.
(TestPage.registerInitializer.logRecording): Deleted.
* inspector/model/recording-expected.txt:
* inspector/model/recording.html:

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

10 months agoisASTErroneous in offlineasm should de-macroify before looking for Errors
keith_miller@apple.com [Tue, 16 Oct 2018 19:16:24 +0000 (19:16 +0000)]
isASTErroneous in offlineasm should de-macroify before looking for Errors
https://bugs.webkit.org/show_bug.cgi?id=190634

Reviewed by Mark Lam.

If a macro isn't usable in a configuration it might still cause us to
think the ast is invalid. This change runs the de-macroifier before
looking for errors.

Also, it adds a missing include to Printer.h.

* assembler/Printer.h:
* offlineasm/settings.rb:

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

10 months agoWeb Inspector: Canvas recording sidebar scroll position lost after switching tabs
drousso@apple.com [Tue, 16 Oct 2018 19:13:15 +0000 (19:13 +0000)]
Web Inspector: Canvas recording sidebar scroll position lost after switching tabs
https://bugs.webkit.org/show_bug.cgi?id=190482

Reviewed by Joseph Pecoraro.

* UserInterface/Views/Sidebar.js:
(WI.Sidebar.prototype.removeSidebarPanel):
(WI.Sidebar.prototype.set selectedSidebarPanel):
Call `hidden` before setting `selected` to `false`, as that sets `display: none;` on the
element, which sets the `scrollTop` to `0`.

* UserInterface/Views/SidebarPanel.js:
(WI.SidebarPanel.prototype.shown):
(WI.SidebarPanel.prototype.hidden):
(WI.SidebarPanel.prototype.get scrollElement): Added.
Allow subclasses to specify the scrolling element for saving/restoring the scroll position.

* UserInterface/Views/CanvasSidebarPanel.js:
(WI.CanvasSidebarPanel.prototype.get scrollElement): Added.
* UserInterface/Views/RecordingStateDetailsSidebarPanel.js:
(WI.RecordingStateDetailsSidebarPanel.prototype.get scrollElement): Added.

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

10 months agoWeb Inspector: Should be a way to go directly from an event in the overview view...
drousso@apple.com [Tue, 16 Oct 2018 19:09:29 +0000 (19:09 +0000)]
Web Inspector: Should be a way to go directly from an event in the overview view to the specialized timeline for that event
https://bugs.webkit.org/show_bug.cgi?id=135307
<rdar://problem/17273966>

Reviewed by Joseph Pecoraro.

When a `WI.TimelineRecordBar` is clicked, call up the delegate chain to the overview and
adjust the currently selected `WI.TimelineRecordBar` among the `WI.TimelineOverviewGraph`s.
Similarly, selecting a `WI.DataGridNode` in any `WI.TimelineView` subclass will use the same
logic to select the corresponding `WI.TimelineRecordBar`.

* UserInterface/Views/TimelineOverview.js:
(WI.TimelineOverview):
(WI.TimelineOverview.prototype.reset):
(WI.TimelineOverview.prototype._recordSelected):

* UserInterface/Views/TimelineOverviewGraph.js:
(WI.TimelineOverviewGraph):
(WI.TimelineOverviewGraph.prototype.set selectedRecord):
(WI.TimelineOverviewGraph.prototype.get selectedRecordBar): Added.
(WI.TimelineOverviewGraph.prototype.set selectedRecordBar): Added.
(WI.TimelineOverviewGraph.prototype.timelineRecordBarClicked): Added.
(WI.TimelineOverviewGraph.prototype._needsSelectedRecordLayout):

* UserInterface/Views/TimelineRecordBar.js:
(WI.TimelineRecordBar):
(WI.TimelineRecordBar.prototype.get selected): Added.
(WI.TimelineRecordBar.prototype.set selected): Added.
(WI.TimelineRecordBar.prototype._handleClick): Added.
* UserInterface/Views/TimelineRecordBar.css:
(.timeline-record-bar.selected > .segment): Added.
Add a `delegate` that is notified whenever the element is clicked.

* UserInterface/Views/TimelineDataGridNode.js:
(WI.TimelineDataGridNode.prototype.refreshGraph.createBar):
* UserInterface/Views/LayoutTimelineOverviewGraph.js:
(WI.LayoutTimelineOverviewGraph.prototype.updateSelectedRecord):
(WI.LayoutTimelineOverviewGraph.prototype._updateRowLayout.createBar):
* UserInterface/Views/NetworkTimelineOverviewGraph.js:
(WI.NetworkTimelineOverviewGraph.prototype.layout.createBar):
* UserInterface/Views/ScriptTimelineOverviewGraph.js:
(WI.ScriptTimelineOverviewGraph.prototype.layout.createBar):
(WI.ScriptTimelineOverviewGraph.prototype.updateSelectedRecord):

* UserInterface/Views/TimelineRecordingContentView.js:
(WI.TimelineRecordingContentView.prototype.showTimelineViewForTimeline):

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

10 months agoUnreviewed attempt to fix the Windows build after r237112.
ryanhaddad@apple.com [Tue, 16 Oct 2018 18:57:07 +0000 (18:57 +0000)]
Unreviewed attempt to fix the Windows build after r237112.

* Plugins/PluginView.cpp:
(WebCore::PluginView::performRequest):

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

10 months agoImplement feature flag and bindings for CSS Painting API
commit-queue@webkit.org [Tue, 16 Oct 2018 18:04:43 +0000 (18:04 +0000)]
Implement feature flag and bindings for CSS Painting API
https://bugs.webkit.org/show_bug.cgi?id=190237

Patch by Justin Michaud <justin_michaud@apple.com> on 2018-10-16
Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Add feature flag and bindings for CSS Painting API. This adds a new property,
CSS.paintWorkletGlobalScope, which will be a temporary way to access the paint
worklet global scope untill CSS.paintWorklet is implemented.

There are a few small changes, mostly adding headers and "using" declarations,
that were required to get this to build. This is probably related to unified sources.

Tests: fast/css-custom-paint/basic.html
       fast/css-custom-paint/registerPaintBindings.html

* CMakeLists.txt:
* Configurations/FeatureDefines.xcconfig:
* DerivedSources.make:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCSSPaintWorkletGlobalScopeCustom.cpp: Added.
(WebCore::throwInvalidModificationError):
(WebCore::JSCSSPaintWorkletGlobalScope::registerPaint):
* bindings/js/JSEventListener.cpp:
* bindings/js/JSRemoteDOMWindowCustom.cpp:
* bindings/js/JSWebMetalRenderPassAttachmentDescriptorCustom.cpp:
* bindings/js/WebCoreBuiltinNames.h:
* css/CSSPaintCallback.h: Copied from Source/WebCore/css/MediaQueryParserContext.cpp.
(WebCore::CSSPaintCallback::~CSSPaintCallback):
* css/CSSPaintCallback.idl: Added.
* css/CSSPaintWorkletGlobalScope.cpp: Copied from Source/WebCore/css/MediaQueryParserContext.cpp.
(WebCore::CSSPaintWorkletGlobalScope::create):
(WebCore::CSSPaintWorkletGlobalScope::CSSPaintWorkletGlobalScope):
(WebCore::CSSPaintWorkletGlobalScope::devicePixelRatio):
(WebCore::CSSPaintWorkletGlobalScope::addRegisteredPaint):
* css/CSSPaintWorkletGlobalScope.h: Copied from Source/WebCore/css/MediaQueryParserContext.cpp.
(WebCore::CSSPaintWorkletGlobalScope::paintDefinitionMap):
* css/CSSPaintWorkletGlobalScope.idl: Added.
* css/DOMCSSPaintWorklet.cpp: Copied from Source/WebCore/css/MediaQueryParserContext.cpp.
(WebCore::DOMCSSPaintWorklet::ensurePaintWorkletGlobalScope):
(WebCore::DOMCSSPaintWorklet::from):
(WebCore::DOMCSSPaintWorklet::supplementName):
* css/DOMCSSPaintWorklet.h: Copied from Source/WebCore/css/MediaQueryParserContext.cpp.
* css/DOMCSSPaintWorklet.idl: Added.
* css/MediaQueryParserContext.cpp:
* css/StyleBuilder.h:
* dom/Document.cpp:
(WebCore::Document::ensureCSSPaintWorkletGlobalScope):
* dom/Document.h:
* features.json:
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setCSSPaintingAPIEnabled):
(WebCore::RuntimeEnabledFeatures::cssPaintingAPIEnabled const):

Source/WebCore/PAL:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit:

* Configurations/FeatureDefines.xcconfig:
* Shared/WebPreferences.yaml:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

Source/WebKitLegacy/mac:

* Configurations/FeatureDefines.xcconfig:

Tools:

* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

Add basic tests for the CSS Painting API registerPaint function,
and test the custom bindings.

* fast/css-custom-paint/basic-expected.txt: Added.
* fast/css-custom-paint/basic.html: Added.
* fast/css-custom-paint/registerPaintBindings-expected.txt: Added.
* fast/css-custom-paint/registerPaintBindings.html: Added.
* platform/ios-wk1/TestExpectations:
* platform/mac-wk1/TestExpectations:
* platform/win/TestExpectations:

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

10 months ago[GLib] Build error with RemoteInspector disabled
philn@webkit.org [Tue, 16 Oct 2018 17:54:09 +0000 (17:54 +0000)]
[GLib] Build error with RemoteInspector disabled
https://bugs.webkit.org/show_bug.cgi?id=190623

Reviewed by Michael Catanzaro.

Compilation guards added to ensure the build still works when the
Remote WebInspector has been disabled.

* UIProcess/API/glib/WebKitAutomationSession.cpp:
* UIProcess/API/glib/WebKitAutomationSessionPrivate.h:
* UIProcess/RemoteWebInspectorProxy.cpp:

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

10 months ago[GTK][WPE] Fix sandbox on distros with suid bubblewrap
commit-queue@webkit.org [Tue, 16 Oct 2018 17:52:24 +0000 (17:52 +0000)]
[GTK][WPE] Fix sandbox on distros with suid bubblewrap
https://bugs.webkit.org/show_bug.cgi?id=190616

Patch by Patrick Griffis <pgriffis@igalia.com> on 2018-10-16
Reviewed by Michael Catanzaro.

* UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::bubblewrapSpawn):

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

10 months agoUnreviewed, forgot to add untracked files.
keith_miller@apple.com [Tue, 16 Oct 2018 17:49:00 +0000 (17:49 +0000)]
Unreviewed, forgot to add untracked files.

* llint/LLIntSettingsExtractor.cpp: Added.
(main):
* offlineasm/generate_settings_extractor.rb: Added.

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

10 months agoUnreviewed, reland https://bugs.webkit.org/show_bug.cgi?id=189708 with build fix.
keith_miller@apple.com [Tue, 16 Oct 2018 17:44:22 +0000 (17:44 +0000)]
Unreviewed, reland https://bugs.webkit.org/show_bug.cgi?id=189708 with build fix.

* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* llint/LLIntOffsetsExtractor.cpp:
(JSC::LLIntOffsetsExtractor::dummy):
* offlineasm/generate_offset_extractor.rb:
* offlineasm/offsets.rb:
* offlineasm/settings.rb:

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

10 months ago[WebVTT] Support inline WebVTT styles
pvollan@apple.com [Tue, 16 Oct 2018 17:29:34 +0000 (17:29 +0000)]
[WebVTT] Support inline WebVTT styles
https://bugs.webkit.org/show_bug.cgi?id=190369

Reviewed by Eric Carlson.

Source/WebCore:

Add support for inline WebVTT styles, see https://w3c.github.io/webvtt/#styling. The parsed
style strings from the VTT file are added to an optional vector of style strings in the
TextTrack class. These styles are then added as HTMLStyleElement children to the parent of
the cue span element.

Test: media/track/track-cue-css.html

* html/track/InbandGenericTextTrack.cpp:
(WebCore::InbandGenericTextTrack::newStyleSheetsParsed):
* html/track/InbandGenericTextTrack.h:
* html/track/InbandWebVTTTextTrack.cpp:
(WebCore::InbandWebVTTTextTrack::newStyleSheetsParsed):
* html/track/InbandWebVTTTextTrack.h:
* html/track/LoadableTextTrack.cpp:
(WebCore::LoadableTextTrack::newStyleSheetsAvailable):
* html/track/LoadableTextTrack.h:
* html/track/TextTrack.h:
(WebCore::TextTrack::styleSheets const):
* html/track/VTTCue.cpp:
(WebCore::VTTCue::getDisplayTree):
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::getNewCues):
(WebCore::WebVTTParser::getStyleSheets):
(WebCore::WebVTTParser::parse):
(WebCore::WebVTTParser::collectWebVTTBlock):
(WebCore::WebVTTParser::collectStyleSheet):
(WebCore::WebVTTParser::checkStyleSheet):
(WebCore::WebVTTParser::checkAndStoreStyleSheet):
* html/track/WebVTTParser.h:
* loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::newStyleSheetsParsed):
(WebCore::TextTrackLoader::getNewStyleSheets):
* loader/TextTrackLoader.h:

LayoutTests:

* media/track/captions-webvtt/css-styling.vtt: Added.
* media/track/captions-webvtt/no-css-styling.vtt: Added.
* media/track/track-cue-css-expected.html: Added.
* media/track/track-cue-css.html: Added.

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

10 months agoWeb Inspector: sequences of spaces longer than 16 don't show a dot
drousso@apple.com [Tue, 16 Oct 2018 16:47:07 +0000 (16:47 +0000)]
Web Inspector: sequences of spaces longer than 16 don't show a dot
https://bugs.webkit.org/show_bug.cgi?id=190528

Reviewed by Matt Baker.

* UserInterface/Views/CodeMirrorAdditions.js:
Create a new CSS rule and add it to a unique <style> whenever a whitespace sequence with
a length is seen for the first time.

* UserInterface/Views/CodeMirrorOverrides.css:
(.show-whitespace-characters .CodeMirror .cm-whitespace-1::before): Deleted.
(.show-whitespace-characters .CodeMirror .cm-whitespace-2::before): Deleted.
(.show-whitespace-characters .CodeMirror .cm-whitespace-3::before): Deleted.
(.show-whitespace-characters .CodeMirror .cm-whitespace-4::before): Deleted.
(.show-whitespace-characters .CodeMirror .cm-whitespace-5::before): Deleted.
(.show-whitespace-characters .CodeMirror .cm-whitespace-6::before): Deleted.
(.show-whitespace-characters .CodeMirror .cm-whitespace-7::before): Deleted.
(.show-whitespace-characters .CodeMirror .cm-whitespace-8::before): Deleted.
(.show-whitespace-characters .CodeMirror .cm-whitespace-9::before): Deleted.
(.show-whitespace-characters .CodeMirror .cm-whitespace-10::before): Deleted.
(.show-whitespace-characters .CodeMirror .cm-whitespace-11::before): Deleted.
(.show-whitespace-characters .CodeMirror .cm-whitespace-12::before): Deleted.
(.show-whitespace-characters .CodeMirror .cm-whitespace-13::before): Deleted.
(.show-whitespace-characters .CodeMirror .cm-whitespace-14::before): Deleted.
(.show-whitespace-characters .CodeMirror .cm-whitespace-15::before): Deleted.
(.show-whitespace-characters .CodeMirror .cm-whitespace-16::before): Deleted.

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

10 months agowindow.navigator should not become null after the window loses its browsing context
cdumez@apple.com [Tue, 16 Oct 2018 16:24:12 +0000 (16:24 +0000)]
window.navigator should not become null after the window loses its browsing context
https://bugs.webkit.org/show_bug.cgi?id=190595

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline test which is not failing differently. The last check of this test is checking that
navigator.serviceWorker returns null after the frame has been detached. The test has been written
this way because this is how Chromium behaves. However, Firefox keeps returning the
ServiceWorkerContainer, as we do. Also, the specification indicates the the attribute cannot
return null (since the attribute is not nullable):
- https://w3c.github.io/ServiceWorker/#navigator-serviceworker

* web-platform-tests/service-workers/service-worker/detached-context.https-expected.txt:

Source/WebCore:

window.navigator should not become null after the window loses its browsing context.
This does not match the HTML specification or the behavior of other browsers.

No new tests, updated existing tests.

* Modules/geolocation/NavigatorGeolocation.cpp:
(WebCore::NavigatorGeolocation::geolocation const):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::navigator):
* page/Navigator.cpp:
(WebCore::Navigator::Navigator):
* page/Navigator.h:
* page/NavigatorBase.cpp:
(WebCore::NavigatorBase::NavigatorBase):
* page/NavigatorBase.h:
* page/WorkerNavigator.cpp:
(WebCore::WorkerNavigator::WorkerNavigator):
* workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::ServiceWorkerContainer):
* workers/service/ServiceWorkerContainer.h:

LayoutTests:

Extend layout test coverage.

* fast/frames/detached-frame-property-expected.txt:
* fast/frames/detached-frame-property.html:
* http/tests/dom/cross-origin-detached-window-properties-expected.txt:
* http/tests/dom/cross-origin-detached-window-properties.html:
* http/tests/dom/same-origin-detached-window-properties-expected.txt:
* http/tests/dom/same-origin-detached-window-properties.html:

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

10 months agoReplace HistoryItem* with HistoryItem& where possible
achristensen@apple.com [Tue, 16 Oct 2018 15:58:10 +0000 (15:58 +0000)]
Replace HistoryItem* with HistoryItem& where possible
https://bugs.webkit.org/show_bug.cgi?id=190617

Reviewed by Chris Dumez.

Source/WebCore:

* history/BackForwardClient.h:
* history/BackForwardController.cpp:
(WebCore::BackForwardController::setCurrentItem):
* history/BackForwardController.h:
* history/HistoryItem.cpp:
(WebCore::defaultNotifyHistoryItemChanged):
(WebCore::HistoryItem::setAlternateTitle):
(WebCore::HistoryItem::setURLString):
(WebCore::HistoryItem::setOriginalURLString):
(WebCore::HistoryItem::setReferrer):
(WebCore::HistoryItem::setTitle):
(WebCore::HistoryItem::setTarget):
(WebCore::HistoryItem::setShouldRestoreScrollPosition):
(WebCore::HistoryItem::setStateObject):
(WebCore::HistoryItem::notifyChanged):
* history/HistoryItem.h:
* loader/EmptyClients.cpp:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::loadSameDocumentItem):
* loader/HistoryController.cpp:
(WebCore::HistoryController::goToItem):
(WebCore::HistoryController::updateForCommit):
(WebCore::HistoryController::recursiveUpdateForCommit):
(WebCore::HistoryController::recursiveUpdateForSameDocumentNavigation):
(WebCore::HistoryController::setCurrentItem):
(WebCore::HistoryController::createItem):
(WebCore::HistoryController::itemsAreClones const):
(WebCore::HistoryController::currentFramesMatchItem const):
* loader/HistoryController.h:

Source/WebKit:

* WebProcess/WebCoreSupport/SessionStateConversion.h:
* WebProcess/WebPage/WebBackForwardListProxy.cpp:
(WebKit::WK2NotifyHistoryItemChanged):
(WebKit::WebBackForwardListProxy::goToItem):
* WebProcess/WebPage/WebBackForwardListProxy.h:

Source/WebKitLegacy/mac:

* History/BackForwardList.h:
* History/BackForwardList.mm:
(BackForwardList::goToItem):
* History/WebBackForwardList.mm:
(-[WebBackForwardList goToItem:]):
* History/WebHistoryItem.mm:
(WKNotifyHistoryItemChanged):
* History/WebHistoryItemInternal.h:

Source/WebKitLegacy/win:

* BackForwardList.cpp:
(BackForwardList::goToItem):
* BackForwardList.h:
* WebBackForwardList.cpp:
(WebBackForwardList::goToItem):

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

10 months ago[EME] Add some ClearKey baselines for passing tests
cturner@igalia.com [Tue, 16 Oct 2018 15:49:15 +0000 (15:49 +0000)]
[EME] Add some ClearKey baselines for passing tests
https://bugs.webkit.org/show_bug.cgi?id=190579

Reviewed by Unreviewed test gardening.

* web-platform-tests/encrypted-media/clearkey-check-initdata-type.https-expected.txt: Added.
* web-platform-tests/encrypted-media/clearkey-events-session-closed-event.https-expected.txt: Added.
* web-platform-tests/encrypted-media/clearkey-events.https-expected.txt: Added.
* web-platform-tests/encrypted-media/clearkey-invalid-license.https-expected.txt: Added.
* web-platform-tests/encrypted-media/clearkey-keystatuses-multiple-sessions.https-expected.txt: Added.
* web-platform-tests/encrypted-media/clearkey-keystatuses.https-expected.txt: Added.
* web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-at-same-time.https-expected.txt: Added.
* web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https-expected.txt: Added.
* web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.https-expected.txt: Added.
* web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys.https-expected.txt: Added.
* web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysession.https-expected.txt: Added.
* web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.https-expected.txt: Added.
* web-platform-tests/encrypted-media/clearkey-not-callable-after-createsession.https-expected.txt: Added.
* web-platform-tests/encrypted-media/clearkey-update-non-ascii-input.https-expected.txt: Added.

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

10 months agoRemove unused WebHistoryItem._transientPropertyForKey
achristensen@apple.com [Tue, 16 Oct 2018 15:39:42 +0000 (15:39 +0000)]
Remove unused WebHistoryItem._transientPropertyForKey
https://bugs.webkit.org/show_bug.cgi?id=190606

Reviewed by Chris Dumez.

Source/WebCore:

This is unnecessary complexity in HistoryItem.

* history/HistoryItem.h:
* history/mac/HistoryItemMac.mm:
(WebCore::HistoryItem::getTransientProperty const): Deleted.
(WebCore::HistoryItem::setTransientProperty): Deleted.

Source/WebKitLegacy/mac:

* History/WebHistoryItem.mm:
* History/WebHistoryItemPrivate.h:

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

10 months ago[Curl] Separate SSL Class for platform dependent way of setup.
Basuke.Suzuki@sony.com [Tue, 16 Oct 2018 15:21:16 +0000 (15:21 +0000)]
[Curl] Separate SSL Class for platform dependent way of setup.
https://bugs.webkit.org/show_bug.cgi?id=190597

Reviewed by Alex Christensen.

SSL setup is very platform dependent. This patch separate the class to allow
platform-dependent setup at the SSL handle instantiation.

No new tests because there's no behaviro changes.

* PlatformWinCairo.cmake:
* platform/network/curl/CurlSSLHandle.cpp:
(WebCore::CurlSSLHandle::CurlSSLHandle):
(WebCore::CurlSSLHandle::getCACertPathEnv): Moved.
* platform/network/curl/CurlSSLHandle.h:
* platform/network/win/CurlSSLHandleWin.cpp:
(WebCore::getCACertPathEnv):
(WebCore::CurlSSLHandle::platformInitialize):

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

10 months ago[EME] Multiple ClearKey tests crashing in gst_qtdemux_request_protection_context
cturner@igalia.com [Tue, 16 Oct 2018 14:54:24 +0000 (14:54 +0000)]
[EME] Multiple ClearKey tests crashing in gst_qtdemux_request_protection_context
https://bugs.webkit.org/show_bug.cgi?id=190577

Reviewed by Michael Catanzaro.

* platform/gtk/TestExpectations:

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

10 months agoUnreviewed, GTK Ubuntu LTS Jhbuild prospective build fix
philn@webkit.org [Tue, 16 Oct 2018 11:01:36 +0000 (11:01 +0000)]
Unreviewed, GTK Ubuntu LTS Jhbuild prospective build fix

* gstreamer/jhbuild.modules:

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

10 months ago[GTK][JHBuild] Disable libmount support in glib
philn@webkit.org [Tue, 16 Oct 2018 10:04:01 +0000 (10:04 +0000)]
[GTK][JHBuild] Disable libmount support in glib

Rubber-stamped by Alejandro G. Castro.

This feature doesn't seem required for our setup.

* gtk/jhbuild.modules:

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

10 months agoUnreviewed, another GTK build fix after r237146
philn@webkit.org [Tue, 16 Oct 2018 09:44:08 +0000 (09:44 +0000)]
Unreviewed, another GTK build fix after r237146

* UIProcess/gtk/RemoteWebInspectorProxyGtk.cpp:
(WebKit::RemoteWebInspectorProxy::platformCreateFrontendPageAndWindow):

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

10 months agoUnreviewed, GTK bots build fix
philn@webkit.org [Tue, 16 Oct 2018 08:47:39 +0000 (08:47 +0000)]
Unreviewed, GTK bots build fix

* Source/cmake/OptionsGTK.cmake: Disable Sandbox support until the
bots have all the needed dependencies installed.

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

10 months agoUnreviewed, add missing include.
keith_miller@apple.com [Tue, 16 Oct 2018 07:52:11 +0000 (07:52 +0000)]
Unreviewed, add missing include.

* runtime/BasicBlockLocation.h:

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

10 months ago[GTK][WPE] Make libwebrtc compile using the system opus library
commit-queue@webkit.org [Tue, 16 Oct 2018 07:39:06 +0000 (07:39 +0000)]
[GTK][WPE] Make libwebrtc compile using the system opus library
https://bugs.webkit.org/show_bug.cgi?id=190573

Patch by Alejandro G. Castro <alex@igalia.com> on 2018-10-16
Reviewed by Philippe Normand.

We found some situations where gstreamer gets confused when it
tries to use opus because it finds opus symbols compiled for
liwebrtc. We are going to try the option to use the system opus
library also for libwebrtc.

* CMakeLists.txt: Added opus dependency.
* cmake/FindOpus.cmake: Added the hints to find the opus library
in the compilation.

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

10 months agoSupport arm64 CPUs with a 32-bit address space
keith_miller@apple.com [Tue, 16 Oct 2018 07:19:13 +0000 (07:19 +0000)]
Support arm64 CPUs with a 32-bit address space
https://bugs.webkit.org/show_bug.cgi?id=190273

Reviewed by Michael Saboff.

Source/JavaScriptCore:

This patch adds support for arm64_32 in the LLInt. In order to
make this work we needed to add a new type that reflects the size
of a cpu register. This type is called CPURegister or UCPURegister
for the unsigned version. Most places that used void* or intptr_t
to refer to a register have been changed to use this new type.

* JavaScriptCore.xcodeproj/project.pbxproj:
* assembler/ARM64Assembler.h:
(JSC::isInt):
(JSC::is4ByteAligned):
(JSC::PairPostIndex::PairPostIndex):
(JSC::PairPreIndex::PairPreIndex):
(JSC::ARM64Assembler::readPointer):
(JSC::ARM64Assembler::readCallTarget):
(JSC::ARM64Assembler::computeJumpType):
(JSC::ARM64Assembler::linkCompareAndBranch):
(JSC::ARM64Assembler::linkConditionalBranch):
(JSC::ARM64Assembler::linkTestAndBranch):
(JSC::ARM64Assembler::loadRegisterLiteral):
(JSC::ARM64Assembler::loadStoreRegisterPairPostIndex):
(JSC::ARM64Assembler::loadStoreRegisterPairPreIndex):
(JSC::ARM64Assembler::loadStoreRegisterPairOffset):
(JSC::ARM64Assembler::loadStoreRegisterPairNonTemporal):
(JSC::isInt7): Deleted.
(JSC::isInt11): Deleted.
* assembler/CPU.h:
(JSC::isAddress64Bit):
(JSC::isAddress32Bit):
* assembler/MacroAssembler.h:
(JSC::MacroAssembler::shouldBlind):
* assembler/MacroAssemblerARM64.cpp:
(JSC::MacroAssemblerARM64::collectCPUFeatures):
* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::load):
(JSC::MacroAssemblerARM64::store):
(JSC::MacroAssemblerARM64::isInIntRange): Deleted.
* assembler/Printer.h:
* assembler/ProbeContext.h:
(JSC::Probe::CPUState::gpr):
(JSC::Probe::CPUState::spr):
(JSC::Probe::Context::gpr):
(JSC::Probe::Context::spr):
* b3/B3ConstPtrValue.h:
* b3/B3StackmapSpecial.cpp:
(JSC::B3::StackmapSpecial::isArgValidForRep):
* b3/air/AirArg.h:
(JSC::B3::Air::Arg::stackSlot const):
(JSC::B3::Air::Arg::special const):
* b3/air/testair.cpp:
* b3/testb3.cpp:
(JSC::B3::testStoreConstantPtr):
(JSC::B3::testInterpreter):
(JSC::B3::testAddShl32):
(JSC::B3::testLoadBaseIndexShift32):
* bindings/ScriptFunctionCall.cpp:
(Deprecated::ScriptCallArgumentHandler::appendArgument):
* bindings/ScriptFunctionCall.h:
* bytecode/CodeBlock.cpp:
(JSC::roundCalleeSaveSpaceAsVirtualRegisters):
* dfg/DFGOSRExit.cpp:
(JSC::DFG::restoreCalleeSavesFor):
(JSC::DFG::saveCalleeSavesFor):
(JSC::DFG::restoreCalleeSavesFromVMEntryFrameCalleeSavesBuffer):
(JSC::DFG::copyCalleeSavesToVMEntryFrameCalleeSavesBuffer):
* dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::reifyInlinedCallFrames):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* disassembler/UDis86Disassembler.cpp:
(JSC::tryToDisassembleWithUDis86):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileWeakMapGet):
* heap/MachineStackMarker.cpp:
(JSC::copyMemory):
* interpreter/CallFrame.h:
(JSC::ExecState::returnPC const):
(JSC::ExecState::hasReturnPC const):
(JSC::ExecState::clearReturnPC):
(JSC::ExecState::returnPCOffset):
(JSC::ExecState::isGlobalExec const):
(JSC::ExecState::setReturnPC):
* interpreter/CalleeBits.h:
(JSC::CalleeBits::boxWasm):
(JSC::CalleeBits::isWasm const):
(JSC::CalleeBits::asWasmCallee const):
* interpreter/Interpreter.cpp:
(JSC::UnwindFunctor::copyCalleeSavesToEntryFrameCalleeSavesBuffer const):
* interpreter/VMEntryRecord.h:
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::clearStackFrame):
* jit/RegisterAtOffset.h:
(JSC::RegisterAtOffset::offsetAsIndex const):
* jit/RegisterAtOffsetList.cpp:
(JSC::RegisterAtOffsetList::RegisterAtOffsetList):
* llint/LLIntData.cpp:
(JSC::LLInt::Data::performAssertions):
* llint/LLIntOfflineAsmConfig.h:
* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter64.asm:
* offlineasm/arm64.rb:
* offlineasm/asm.rb:
* offlineasm/ast.rb:
* offlineasm/backends.rb:
* offlineasm/parser.rb:
* offlineasm/x86.rb:
* runtime/BasicBlockLocation.cpp:
(JSC::BasicBlockLocation::dumpData const):
(JSC::BasicBlockLocation::emitExecuteCode const):
* runtime/BasicBlockLocation.h:
* runtime/HasOwnPropertyCache.h:
* runtime/JSBigInt.cpp:
(JSC::JSBigInt::inplaceMultiplyAdd):
(JSC::JSBigInt::digitDiv):
* runtime/JSBigInt.h:
* runtime/JSObject.h:
* runtime/Options.cpp:
(JSC::jitEnabledByDefault):
* runtime/Options.h:
* runtime/RegExp.cpp:
(JSC::RegExp::printTraceData):
* runtime/SamplingProfiler.cpp:
(JSC::CFrameWalker::walk):
* runtime/SlowPathReturnType.h:
(JSC::encodeResult):
(JSC::decodeResult):
* tools/SigillCrashAnalyzer.cpp:
(JSC::SigillCrashAnalyzer::dumpCodeBlock):

Source/WebCore:

Fix missing namespace annotation.

* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateAddStyleRelation):

Source/WTF:

Use WTF_CPU_ADDRESS64/32 to decide if the system is running on arm64_32.

* wtf/MathExtras.h:
(getLSBSet):
* wtf/Platform.h:

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

10 months agoAdd WebGPU 2018 feature flag and experimental feature flag
justin_fan@apple.com [Tue, 16 Oct 2018 04:57:47 +0000 (04:57 +0000)]
Add WebGPU 2018 feature flag and experimental feature flag
https://bugs.webkit.org/show_bug.cgi?id=190509

Reviewed by Dean Jackson.

.:

Update FeatureDefines for WebGPU -> WebMetal renaming, while preserving WebGPU
references for 2018 WebGPU Sketch implementation.

* Source/cmake/OptionsMac.cmake:
* Source/cmake/tools/vsprops/FeatureDefines.props:
* Source/cmake/tools/vsprops/FeatureDefinesCairo.props:

Source/JavaScriptCore:

Re-add ENABLE_WEBGPU, an experimental feature flag, and a RuntimeEnabledFeature
for the 2018 WebGPU prototype.

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Re-add ENABLE_WEBGPU, an experimental feature flag, and a RuntimeEnabledFeature
for the 2018 WebGPU prototype.

* Configurations/FeatureDefines.xcconfig:
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setWebGPUEnabled):
(WebCore::RuntimeEnabledFeatures::webGPUEnabled const):

Source/WebCore/PAL:

Re-add ENABLE_WEBGPU, an experimental feature flag, and a RuntimeEnabledFeature
for the 2018 WebGPU prototype.

* Configurations/FeatureDefines.xcconfig:

Source/WebKit:

Re-add ENABLE_WEBGPU, an experimental feature flag, and a RuntimeEnabledFeature
for the 2018 WebGPU prototype.

* Configurations/FeatureDefines.xcconfig:
* Shared/WebPreferences.yaml:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

Source/WebKitLegacy/mac:

Re-add ENABLE_WEBGPU, an experimental feature flag, and a RuntimeEnabledFeature
for the 2018 WebGPU prototype.

* Configurations/FeatureDefines.xcconfig:
* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences webGPUEnabled]):
(-[WebPreferences setWebGPUEnabled:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Tools:

Re-add ENABLE_WEBGPU, an experimental feature flag, and a RuntimeEnabledFeature
for the 2018 WebGPU prototype.

* DumpRenderTree/TestOptions.cpp:
(TestOptions::TestOptions):
* DumpRenderTree/TestOptions.h:
* DumpRenderTree/mac/DumpRenderTree.mm:
(setWebPreferencesForTestOptions):
* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

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

10 months agoSkip stress/array-prototype-concat-of-long-spliced-arrays2.js on arm and mips/linux
guijemont@igalia.com [Tue, 16 Oct 2018 01:30:21 +0000 (01:30 +0000)]
Skip stress/array-prototype-concat-of-long-spliced-arrays2.js on arm and mips/linux

Unreviewed gardening.

* stress/array-prototype-concat-of-long-spliced-arrays2.js:

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

10 months agoUnreviewed, rolling out r237162.
commit-queue@webkit.org [Tue, 16 Oct 2018 01:15:27 +0000 (01:15 +0000)]
Unreviewed, rolling out r237162.
https://bugs.webkit.org/show_bug.cgi?id=190612

Broke Windows build (Requested by dolmstead on #webkit).

Reverted changeset:

"Add stub implementation for accessibility objects"
https://bugs.webkit.org/show_bug.cgi?id=190608
https://trac.webkit.org/changeset/237162

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

10 months agoFix API tests after r237146
achristensen@apple.com [Tue, 16 Oct 2018 01:12:59 +0000 (01:12 +0000)]
Fix API tests after r237146

* Shared/WebPageGroupData.cpp:
(WebKit::WebPageGroupData::decode):
I accidentally changed the decoder.

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

10 months agoHSTS cache entries cannot be removed by origin
ryanhaddad@apple.com [Tue, 16 Oct 2018 01:04:37 +0000 (01:04 +0000)]
HSTS cache entries cannot be removed by origin
https://bugs.webkit.org/show_bug.cgi?id=190455
<rdar://problem/45181322>

Patch by Sihui Liu <sihui_liu@apple.com> on 2018-10-15
Reviewed by Chris Dumez.

The SPI _CFNetworkResetHSTS does not recognize url without protocol, so we need to add protocol manually.

* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::deleteHSTSCacheForHostNames):

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

10 months agoSource/WebKit:
achristensen@apple.com [Tue, 16 Oct 2018 01:02:54 +0000 (01:02 +0000)]
Source/WebKit:
Fix GTK build, even though bots are not working right now.

* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformCreateFrontendPage):

Source/WebKitLegacy/win:
Fix Windows build.

* WebView.cpp:
(WebView::loadBackForwardListFromOtherView):

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

10 months agoFix WinCairo build.
achristensen@apple.com [Tue, 16 Oct 2018 00:56:23 +0000 (00:56 +0000)]
Fix WinCairo build.

* WebView.cpp:
(WebView::backForwardList):

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

10 months ago[CG] Adopt CG SPI for non-even cornered rounded rects
commit-queue@webkit.org [Tue, 16 Oct 2018 00:53:13 +0000 (00:53 +0000)]
[CG] Adopt CG SPI for non-even cornered rounded rects
https://bugs.webkit.org/show_bug.cgi?id=190155

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

Source/WebCore:

Instead of creating bezier curves for the non-even corners of the rounded
rects, we should use the optimized SPI provided by CG.

* platform/graphics/cg/PathCG.cpp:
(WebCore::Path::platformAddPathForRoundedRect):

Source/WebCore/PAL:

* pal/spi/cg/CoreGraphicsSPI.h:

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

10 months agoAdd stub implementation for accessibility objects
don.olmstead@sony.com [Tue, 16 Oct 2018 00:46:37 +0000 (00:46 +0000)]
Add stub implementation for accessibility objects
https://bugs.webkit.org/show_bug.cgi?id=190608

Reviewed by Michael Catanzaro.

No new tests. No change in behavior.

Add default implementation to associated cpp file. Removes the WPE
specific stubs.

* SourcesWPE.txt:
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::detachWrapper):
(WebCore::AXObjectCache::attachWrapper):
(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::nodeTextChangePlatformNotification):
(WebCore::AXObjectCache::frameLoadingEventPlatformNotification):
(WebCore::AXObjectCache::platformHandleFocusedUIElementChanged):
(WebCore::AXObjectCache::handleScrolledToAnchor):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::accessibilityIgnoreAttachment const):
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):
* accessibility/AccessibilityObject.h:
* accessibility/wpe/AXObjectCacheWPE.cpp: Removed.
* accessibility/wpe/AccessibilityObjectWPE.cpp: Removed.

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

10 months agoFix WinCairo build after r237146
achristensen@apple.com [Tue, 16 Oct 2018 00:38:30 +0000 (00:38 +0000)]
Fix WinCairo build after r237146

* UIProcess/win/WebInspectorProxyWin.cpp:
(WebKit::WebInspectorProxy::platformCreateFrontendPage):

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

10 months agoFix iOS build after r237157
achristensen@apple.com [Tue, 16 Oct 2018 00:34:02 +0000 (00:34 +0000)]
Fix iOS build after r237157

* WebView/WebView.mm:
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

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

10 months agoREGRESSION (r236512): [ Mac WK2 ] Layout Test editing/undo/undo-smart-delete-word...
cdumez@apple.com [Tue, 16 Oct 2018 00:32:56 +0000 (00:32 +0000)]
REGRESSION (r236512): [ Mac WK2 ] Layout Test editing/undo/undo-smart-delete-word.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=190375
<rdar://problem/45177807>

Reviewed by Ryosuke Niwa.

The test is doing the following:
> document.execCommand("Delete"); document.execCommand("Undo");

Both operation are synchronous and rely on synchronous IPC from the WebProcess to the UIProcess.
However, for the undo operation to succeed, the first command need to have been registered with
with the UIProcess via the WebPageProxy::RegisterEditCommandForUndo IPC to the UIProcess, which
is asynchronous.

After r236512, the UIProcess no longer processes incoming sync / async IPC in order and thus,
it is possible for the WebPageProxy::ExecuteUndoRedo synchronous IPC to get processed by the
UIProcess *before* the WebPageProxy::RegisterEditCommandForUndo asynchronous IPC for the
previous "Delete" command. As a result, canUndo would return false and we would fail to undo.

To address the issue, use SendOption::DispatchMessageEvenWhenWaitingForSyncReply flag when sending
the WebPageProxy::RegisterEditCommandForUndo IPC, so that it gets processed in order with regards
to surrounding synchronous IPC.

* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::registerUndoStep):

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

10 months agoUpdate bot configuration for Sierra archive queues
ryanhaddad@apple.com [Tue, 16 Oct 2018 00:30:49 +0000 (00:30 +0000)]
Update bot configuration for Sierra archive queues
https://bugs.webkit.org/show_bug.cgi?id=190605

Reviewed by Aakash Jain.

* BuildSlaveSupport/build.webkit.org-config/config.json:

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

10 months agoModernize BackForwardClient.h
achristensen@apple.com [Tue, 16 Oct 2018 00:14:41 +0000 (00:14 +0000)]
Modernize BackForwardClient.h
https://bugs.webkit.org/show_bug.cgi?id=190610

Reviewed by Chris Dumez.

Source/WebCore:

* editing/markup.cpp:
(WebCore::createPageForSanitizingWebContent):
* history/BackForwardClient.h:
* history/BackForwardController.h:
(WebCore::BackForwardController::client):
(WebCore::BackForwardController::client const):
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::overlayPage):
* loader/EmptyClients.cpp:
(WebCore::pageConfigurationWithEmptyClients):
(WebCore::createEmptyFrameNetworkingContext): Deleted.
(WebCore::fillWithEmptyClients): Deleted.
(WebCore::createEmptyEditorClient): Deleted.
* loader/EmptyClients.h:
* page/Page.cpp:
(WebCore::Page::Page):
* page/PageConfiguration.cpp:
(WebCore::PageConfiguration::PageConfiguration):
* page/PageConfiguration.h:
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):

Source/WebKit:

* WebProcess/InjectedBundle/InjectedBundleBackForwardList.cpp:
(WebKit::InjectedBundleBackForwardList::clear):
* WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::installServiceWorker):
* WebProcess/WebPage/WebBackForwardListProxy.cpp:
(WebKit::WebBackForwardListProxy::WebBackForwardListProxy):
(WebKit::WebBackForwardListProxy::backListCount const):
(WebKit::WebBackForwardListProxy::forwardListCount const):
(WebKit::WebBackForwardListProxy::backListCount): Deleted.
(WebKit::WebBackForwardListProxy::forwardListCount): Deleted.
* WebProcess/WebPage/WebBackForwardListProxy.h:
(WebKit::WebBackForwardListProxy::create):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_cpuLimit):
(WebKit::WebPage::restoreSessionInternal):

Source/WebKitLegacy/mac:

* History/BackForwardList.h:
* History/BackForwardList.mm:
(BackForwardList::backListCount const):
(BackForwardList::forwardListCount const):
(BackForwardList::backListCount): Deleted.
(BackForwardList::forwardListCount): Deleted.
* History/WebBackForwardList.mm:
(-[WebBackForwardList init]):
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::canCachePage const):
* WebView/WebFrameView.mm:
(-[WebFrameView keyDown:keyDown:]):
* WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
(-[WebView _loadBackForwardListFromOtherView:]):
(-[WebView initWithCoder:]):
(-[WebView encodeWithCoder:]):
(-[WebView backForwardList]):
(-[WebView setMaintainsBackForwardList:]):

Source/WebKitLegacy/win:

* BackForwardList.cpp:
(BackForwardList::backListCount const):
(BackForwardList::forwardListCount const):
(BackForwardList::backListCount): Deleted.
(BackForwardList::forwardListCount): Deleted.
* BackForwardList.h:
* WebView.cpp:
(WebView::initWithFrame):
(WebView::backForwardList):

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

10 months agoAdd support for prefers-color-scheme media query
timothy@apple.com [Mon, 15 Oct 2018 23:43:02 +0000 (23:43 +0000)]
Add support for prefers-color-scheme media query
https://bugs.webkit.org/show_bug.cgi?id=190499
rdar://problem/45212025

Reviewed by Dean Jackson.

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS.

Source/WebCore:

Test: css-dark-mode/prefers-color-scheme.html

* Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS.
* css/CSSValueKeywords.in: Added light and dark.
* css/MediaFeatureNames.h: Added prefers-color-scheme.
* css/MediaQueryEvaluator.cpp:
(WebCore::prefersColorSchemeEvaluate): Added.
* css/MediaQueryExpression.cpp:
(WebCore::featureWithValidIdent): Added prefers-color-scheme.
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setDarkModeCSSEnabled): Added.
(WebCore::RuntimeEnabledFeatures::darkModeCSSEnabled const): Added.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::resetToConsistentState): Reset setUseDarkAppearance.
(WebCore::InternalSettings::setUseDarkAppearance): Added.
* testing/InternalSettings.h: Added setUseDarkAppearance.
* testing/InternalSettings.idl: Ditto.

Source/WebCore/PAL:

* Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS.

Source/WebKit:

* Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS.
* Shared/WebPreferences.yaml: Added DarkModeCSSEnabled as experimental.

Source/WebKitLegacy/mac:

* Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS.

Source/WTF:

* wtf/FeatureDefines.h: Added ENABLE_DARK_MODE_CSS.

Tools:

* Scripts/webkitperl/FeatureList.pm: Added ENABLE_DARK_MODE_CSS as dark-mode-css.
* TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS.

LayoutTests:

* css-dark-mode/prefers-color-scheme-expected.txt: Added.
* css-dark-mode/prefers-color-scheme.html: Added.
* platform/gtk/TestExpectations: Skip css-dark-mode.
* platform/ios/TestExpectations: Skip css-dark-mode.
* platform/mac-wk1/TestExpectations: Skip css-dark-mode.
* platform/win/TestExpectations: Skip css-dark-mode.
* platform/wincairo/TestExpectations: Skip css-dark-mode.
* platform/wpe/TestExpectations: Skip css-dark-mode.

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

10 months agoWeb Inspector: Cleanup Table test utilities
mattbaker@apple.com [Mon, 15 Oct 2018 23:29:28 +0000 (23:29 +0000)]
Web Inspector: Cleanup Table test utilities
https://bugs.webkit.org/show_bug.cgi?id=190538
<rdar://problem/45237730>

Reviewed by Joseph Pecoraro.

Cleanup Table test utilities by exposing removing the artificial dependency
between TableDelegate and TableDataSource, and exposing a cleaner set of
utility methods to InspectorTest. This patch changes `InspectorTest.createTable`
to take no parameters, and adds `InspectorTest.createTableWithDelegate` for
tests that need to supply a custom delegate.

* inspector/table/resources/table-utilities.js:
(TestPage.registerInitializer.InspectorTest.TableDataSource):
(TestPage.registerInitializer.InspectorTest.TableDelegate):
(TestPage.registerInitializer.InspectorTest.TableDelegate.prototype.tablePopulateCell):
(TestPage.registerInitializer.createDataSource):
(TestPage.registerInitializer.createTableInternal):
(TestPage.registerInitializer.InspectorTest.createTable):
(TestPage.registerInitializer.InspectorTest.createTableWithDelegate):
(TestPage.registerInitializer):

* inspector/table/table-selection-expected.txt:
Update with new test suite name.

* inspector/table/table-selection.html:

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