WebKit-https.git
2 years ago[GTK] SoupNetworkSession.h:68:62: error: unknown type name 'URL'
mcatanzaro@igalia.com [Wed, 16 May 2018 23:03:02 +0000 (23:03 +0000)]
[GTK] SoupNetworkSession.h:68:62: error: unknown type name 'URL'
https://bugs.webkit.org/show_bug.cgi?id=185378

Unreviewed, just replace unneeded #include with a forward declaration

* platform/network/soup/SoupNetworkSession.h:

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

2 years agoMark imported/mozilla/css-transitions/test_event-dispatch.html as flaky.
ryanhaddad@apple.com [Wed, 16 May 2018 22:18:18 +0000 (22:18 +0000)]
Mark imported/mozilla/css-transitions/test_event-dispatch.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=183843

Unreviewed test gardening.

* platform/ios/TestExpectations:

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

2 years agoTest262-Runner: Adds a --timeout option
commit-queue@webkit.org [Wed, 16 May 2018 22:15:49 +0000 (22:15 +0000)]
Test262-Runner: Adds a --timeout option
https://bugs.webkit.org/show_bug.cgi?id=185696

Patch by Leo Balter <leonardo.balter@gmail.com> on 2018-05-16
Reviewed by Michael Saboff.

The timeout option is used to set a timeout execution in ms for each test run in JSC.
The passed value - if defined - will be used as the value for the JSC --watchdog arg.
* Scripts/test262/Runner.pm:
(processCLI):
(runTest):

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

2 years agoTest262-Runner: Set timer for each test run
commit-queue@webkit.org [Wed, 16 May 2018 21:46:36 +0000 (21:46 +0000)]
Test262-Runner: Set timer for each test run
https://bugs.webkit.org/show_bug.cgi?id=185692

Patch by Leo Balter <leonardo.balter@gmail.com> on 2018-05-16
Reviewed by Michael Saboff.

Sets a high resolution timer for each execution call of JSC, reporting
the time in the results report to allow identifying slow tests.
* Scripts/test262/Runner.pm:
(main):
(processFile):
(runTest):
(processResult):

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

2 years agoCRASH: Exception thrown from -[AVContentKeySession processContentKeyRequestWithIdenti...
jer.noble@apple.com [Wed, 16 May 2018 21:23:29 +0000 (21:23 +0000)]
CRASH: Exception thrown from -[AVContentKeySession processContentKeyRequestWithIdentifier:initializationData:options:] after -expire called
https://bugs.webkit.org/show_bug.cgi?id=185690
<rdar://problem/38297768>

Reviewed by Eric Carlson.

Reject all calls to update() after close() has been called on the session.

* platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:
(WebCore::CDMSessionAVContentKeySession::update):

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

2 years agoDFG models InstanceOf incorrectly
fpizlo@apple.com [Wed, 16 May 2018 21:02:49 +0000 (21:02 +0000)]
DFG models InstanceOf incorrectly
https://bugs.webkit.org/show_bug.cgi?id=185694

Reviewed by Keith Miller.
JSTests:

* stress/instanceof-proxy-check-structure.js: Added.
(Foo):
(Bar):
(doBadThings):
(getPrototypeOf):
(foo):
(i.new.Bar):
(new.Bar):
* stress/instanceof-proxy-loop.js: Added.
(Foo):
(Bar):
(doBadThings):
(getPrototypeOf):
(foo):
* stress/instanceof-proxy.js: Added.
(Foo):
(Bar):
(doBadThings):
(getPrototypeOf):
(foo):

Source/JavaScriptCore:

Proxies mean that InstanceOf can have effects. Exceptions mean that it's illegal to DCE it or
hoist it.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGHeapLocation.cpp:
(WTF::printInternal):
* dfg/DFGHeapLocation.h:
* dfg/DFGNodeType.h:

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

2 years agoAdd support for Intl NumberFormat formatToParts
commit-queue@webkit.org [Wed, 16 May 2018 20:38:32 +0000 (20:38 +0000)]
Add support for Intl NumberFormat formatToParts
https://bugs.webkit.org/show_bug.cgi?id=185375

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

.:

Add flag for NumberFormat formatToParts.

* Source/cmake/OptionsJSCOnly.cmake:
* Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

Add flag for NumberFormat formatToParts. Implement formatToParts using
unum_formatDoubleForFields. Because the fields are nested and come back
in no guaranteed order, the simple algorithm to convert them to the
desired format is roughly O(n^2). However, even with Number.MAX_VALUE
it appears to perform well enough for the initial implementation. Another
issue has been created to improve this algorithm.

This requires ICU v59+ for unum_formatDoubleForFields, so it is disabled
on macOS, since only v57 is available.

* Configurations/FeatureDefines.xcconfig:
* runtime/IntlNumberFormat.cpp:
(JSC::IntlNumberFormat::UFieldPositionIteratorDeleter::operator() const):
(JSC::IntlNumberFormat::partTypeString):
(JSC::IntlNumberFormat::formatToParts):
* runtime/IntlNumberFormat.h:
* runtime/IntlNumberFormatPrototype.cpp:
(JSC::IntlNumberFormatPrototype::create):
(JSC::IntlNumberFormatPrototype::finishCreation):
(JSC::IntlNumberFormatPrototypeFuncFormatToParts):
* runtime/IntlNumberFormatPrototype.h:
* runtime/Options.h:

Source/WebCore:

Test: js/intl-numberformat-format-to-parts.html

Add flag & tests for NumberFormat formatToParts.

* Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

Add flag for NumberFormat formatToParts.

* Configurations/FeatureDefines.xcconfig:

Source/WebKit:

Add flag for NumberFormat formatToParts.

* Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

Add flag for NumberFormat formatToParts.

* Configurations/FeatureDefines.xcconfig:

Source/WTF:

Add flag for NumberFormat formatToParts.

* wtf/FeatureDefines.h:

Tools:

Add flag for NumberFormat formatToParts.

* Scripts/webkitperl/FeatureList.pm:
* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

Add tests for NumberFormat formatToParts. Tests are expected to fail on
macOS until ICU is updated to v59 or newer.

* js/intl-numberformat-format-to-parts-expected.txt: Added.
* js/intl-numberformat-format-to-parts.html: Added.
* js/script-tests/intl-numberformat-format-to-parts.js: Added.
* platform/ios-simulator/TestExpectations:
* platform/mac/TestExpectations:
* platform/win/TestExpectations:

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

2 years agoImprove NowPlaying "title"
eric.carlson@apple.com [Wed, 16 May 2018 20:36:26 +0000 (20:36 +0000)]
Improve NowPlaying "title"
https://bugs.webkit.org/show_bug.cgi?id=185680
<rdar://problem/40296700>

Reviewed by Jer Noble.
Source/WebCore:

We send NowPlaying the element's title attribute if not empty, else the element's current url.
Title should be preferred because it is the most specific, but we should use the document
title if non-empty next, and if falling back to the element's url use just the domain instead
of the full url because it isn't likely to be useful to the user given the small amount of
space control center uses to display the title. Further, don't use any title at all when
in private browsing mode.

Tests: http/tests/media/now-playing-info-private-browsing.html
       http/tests/media/now-playing-info.html

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute): Update NowPlaying when the title attribute changes.
(WebCore::HTMLMediaElement::finishSeek): Update NowPlaying when a seek completes.
(WebCore::HTMLMediaElement::mediaSessionTitle const): Update logic.
(WebCore::HTMLMediaElement::mediaSessionUniqueIdentifier const): Use the hash of the current
url as the unique identifier.
* html/HTMLMediaElement.h:

* platform/audio/PlatformMediaSession.cpp:
(WebCore::PlatformMediaSession::uniqueIdentifier const): New.
(WebCore::PlatformMediaSessionClient::mediaSessionUniqueIdentifier const): Ditto.
* platform/audio/PlatformMediaSession.h:

* platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::updateNowPlayingInfo): Update m_lastUpdatedNowPlayingInfoUniqueIdentifier.

* platform/audio/mac/MediaSessionManagerMac.mm:
(WebCore::MediaSessionManagerMac::updateNowPlayingInfo): Update.

* testing/Internals.cpp:
(WebCore::Internals::nowPlayingState const): Expose NowPlaying state.
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

* http/tests/media/now-playing-info-expected.txt: Added.
* http/tests/media/now-playing-info-private-browsing-expected.txt: Added.
* http/tests/media/now-playing-info-private-browsing.html: Added.
* http/tests/media/now-playing-info.html: Added.
* platform/gtk/TestExpectations:

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

2 years agoLayout Test webrtc/addICECandidate-closed.html is a flaky failure
youenn@apple.com [Wed, 16 May 2018 20:24:32 +0000 (20:24 +0000)]
Layout Test webrtc/addICECandidate-closed.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=185384
<rdar://problem/40035167>

Reviewed by Eric Carlson.

* webrtc/addICECandidate-closed.html:
Handle sometimes rejected promise to remove a line
in the -expected.txt file that is sometimes added.

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

2 years agoUnreviewed, follow-up after r231762
utatane.tea@gmail.com [Wed, 16 May 2018 19:46:22 +0000 (19:46 +0000)]
Unreviewed, follow-up after r231762
https://bugs.webkit.org/show_bug.cgi?id=185589

Addresses darin's suggestions to improve timeClip.

* wtf/DateMath.cpp:
(WTF::timeClip):

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

2 years ago[Wi-Fi Assertions] Adopt WiFiAssertionHolderAdditions
aestes@apple.com [Wed, 16 May 2018 19:39:30 +0000 (19:39 +0000)]
[Wi-Fi Assertions] Adopt WiFiAssertionHolderAdditions
https://bugs.webkit.org/show_bug.cgi?id=185685
<rdar://problem/40136681>

Reviewed by Sam Weinig.

* NetworkProcess/cocoa/WiFiAssertionHolder.cpp:
(WebKit::WiFiAssertionHolder::WiFiAssertionHolder):
(WebKit::WiFiAssertionHolder::~WiFiAssertionHolder):
(WebKit::ensureWiFiManagerClient): Deleted.

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

2 years agoAttempt to fix the WinCairo build following r231859
dbates@webkit.org [Wed, 16 May 2018 19:34:19 +0000 (19:34 +0000)]
Attempt to fix the WinCairo build following r231859
(https://bugs.webkit.org/show_bug.cgi?id=185654)

Instantiate Cookie as a struct and set applicable fields.

* platform/network/curl/CookieJarDB.cpp:
(WebCore::CookieJarDB::searchCookies):

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

2 years agoREGRESSION (r229735): LayoutTest http/wpt/service-workers/third-party-registration...
youenn@apple.com [Wed, 16 May 2018 19:11:54 +0000 (19:11 +0000)]
REGRESSION (r229735): LayoutTest http/wpt/service-workers/third-party-registration.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=183860
<rdar://problem/38975251>

Reviewed by Geoffrey Garen.

Make test more robust by introducing a timeout and better failure reporting.
Mark test as Pass/Fail to start gathering results on test stability.

* http/wpt/service-workers/resources/third-party-registration-frame.html:
* platform/ios-wk2/TestExpectations:
* platform/mac-wk2/TestExpectations:

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

2 years agoMark LayoutTest animations/needs-layout.html as Flaky on macOS debug.
commit-queue@webkit.org [Wed, 16 May 2018 19:06:01 +0000 (19:06 +0000)]
Mark LayoutTest animations/needs-layout.html as Flaky on macOS debug.
https://bugs.webkit.org/show_bug.cgi?id=185659

Unreviewed test gardening.

Patch by David Fenton <david_fenton@apple.com> on 2018-05-16

* platform/mac/TestExpectations:

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

2 years agoCleanup platform Cookie
dbates@webkit.org [Wed, 16 May 2018 18:54:39 +0000 (18:54 +0000)]
Cleanup platform Cookie
https://bugs.webkit.org/show_bug.cgi?id=185654

Reviewed by Per Arne Vollan.

Remove unnecessary constructor and use =default for default constructor.
Simplify Cookie::decode() by having it decode directly into a stack-allocated
cookie. Remove some unnecessary local variables. Fix style nits.

* platform/Cookie.h:
(WebCore::Cookie::Cookie):
(WebCore::Cookie::isNull const):
(WebCore::Cookie::encode const):
(WebCore::Cookie::decode):
* platform/network/cf/CookieJarCFNet.cpp:
(WebCore::getRawCookies):
* platform/network/cocoa/CookieCocoa.mm:
(WebCore::cookieCreated):
(WebCore::Cookie::Cookie):
(WebCore::Cookie::operator== const):
(WebCore::Cookie::hash const):
* platform/network/soup/CookieJarSoup.cpp:
(WebCore::getRawCookies):

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

2 years agoFixup after r231849: Do not mark Mac API methods as deprecated
commit-queue@webkit.org [Wed, 16 May 2018 18:12:19 +0000 (18:12 +0000)]
Fixup after r231849: Do not mark Mac API methods as deprecated
https://bugs.webkit.org/show_bug.cgi?id=185684

Patch by Chris Nardi <cnardi@chromium.org> on 2018-05-16
Reviewed by Darin Adler.

Do not mark API methods for Document#selectedStylesheetSet/preferredStylesheetSet as deprecated
as the entire class is already marked as deprecated, so it is unnecessary.

* DOM/DOMDocument.h:

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

2 years ago[Win] Implement WebPage::handleEditingKeyboardEvent
Hironori.Fujii@sony.com [Wed, 16 May 2018 17:54:50 +0000 (17:54 +0000)]
[Win] Implement WebPage::handleEditingKeyboardEvent
https://bugs.webkit.org/show_bug.cgi?id=185327

Reviewed by Alexey Proskuryakov.

* WebProcess/WebPage/win/WebPageWin.cpp:
(WebKit::WebPage::handleEditingKeyboardEvent): Copied from WebKitLegacy.

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

2 years ago[Win] Use C++17 in MSVC
utatane.tea@gmail.com [Wed, 16 May 2018 17:50:38 +0000 (17:50 +0000)]
[Win] Use C++17 in MSVC
https://bugs.webkit.org/show_bug.cgi?id=185232

Reviewed by Alex Christensen.

.:

Use /std:c++17 option.

* Source/cmake/OptionsMSVC.cmake:

Source/ThirdParty:

Use std::tuple instead of std::tr1::tuple since std::tr1::tuple is removed in C++17 MSVC.
In a subsequent patch, we will upgrade gtest too.

* gtest/include/gtest/internal/gtest-param-util-generated.h:
(testing::internal::CartesianProductHolder2::operator ParamGenerator< ::std::tuple<T1, T2> > const):
(testing::internal::CartesianProductHolder3::operator ParamGenerator< ::std::tuple<T1, T2, T3> > const):
(testing::internal::CartesianProductHolder4::operator ParamGenerator< ::std::tuple<T1, T2, T3, T4> > const):
(testing::internal::CartesianProductHolder5::operator ParamGenerator< ::std::tuple<T1, T2, T3, T4, T5> > const):
(testing::internal::CartesianProductHolder6::operator ParamGenerator< ::std::tuple<T1, T2, T3, T4, T5, T6> > const):
(testing::internal::CartesianProductHolder7:: const):
(testing::internal::CartesianProductHolder8:: const):
(testing::internal::CartesianProductHolder9:: const):
(testing::internal::CartesianProductHolder10:: const):
(testing::internal::CartesianProductHolder2::operator ParamGenerator< ::std::tr1::tuple<T1, T2> > const): Deleted.
(testing::internal::CartesianProductHolder3::operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3> > const): Deleted.
(testing::internal::CartesianProductHolder4::operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4> > const): Deleted.
(testing::internal::CartesianProductHolder5::operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5> > const): Deleted.
(testing::internal::CartesianProductHolder6::operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6> > const): Deleted.
* gtest/include/gtest/internal/gtest-tuple.h:

Source/WebCore:

Workaround for MSVC + /std:c++17.

* Modules/geolocation/Coordinates.h:
(WebCore::Coordinates::isolatedCopy const):

Source/WTF:

Disable some WebKit defined C++17 features for MSVC.

* wtf/StdLibExtras.h:

Tools:

Do not use `using namespace std;`. In C++17, we have std::byte. This "byte"
conflicts with ::byte defined in Windows' header.

* DumpRenderTree/TestNetscapePlugIn/win/WindowedPluginTest.cpp:
(WindowedPluginTest::WindowedPluginTest):
* DumpRenderTree/win/AccessibilityControllerWin.cpp:
(logEventProc):
(stringEvent):
(AccessibilityController::winNotificationReceived):
* DumpRenderTree/win/TextInputController.cpp:
(markedRangeCallback):
(firstRectForCharacterRangeCallback):
(selectedRangeCallback):
* DumpRenderTree/win/TextInputController.h:
* DumpRenderTree/win/TextInputControllerWin.cpp:
(TextInputController::markedRange):
(TextInputController::firstRectForCharacterRange):
(TextInputController::selectedRange):

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

2 years ago[Web Animations] Turn Web Animations with CSS integration on for test runners
graouts@webkit.org [Wed, 16 May 2018 17:25:13 +0000 (17:25 +0000)]
[Web Animations] Turn Web Animations with CSS integration on for test runners
https://bugs.webkit.org/show_bug.cgi?id=184819

Unreviewed. Another attempt to make this test more robust.

* transitions/interrupted-transition-hardware.html:

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

2 years agoSession cookies aren't reliably set when using default WKWebSiteDataStore
commit-queue@webkit.org [Wed, 16 May 2018 17:19:17 +0000 (17:19 +0000)]
Session cookies aren't reliably set when using default WKWebSiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=185624
<rdar://problem/39111626>

Patch by Sihui Liu <sihui_liu@apple.com> on 2018-05-16
Reviewed by Geoffrey Garen.

Source/WebKit:

Session cookies of default session were set in UI Process when there was no process pool,
but they were not synced (or synced slowly to) Network Process. To make these cookies visible
as soon as they were set through API, we could manually set those cookies in Network Process
during its initilization.

* NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession):
* UIProcess/API/APIHTTPCookieStore.cpp:
(API::HTTPCookieStore::cookies):
(API::HTTPCookieStore::setCookie):
(API::HTTPCookieStore::deleteCookie):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::clearPendingCookies):
* UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

Modified and enabled WebKit.WKHTTPCookieStoreWithoutProcessPool.

* TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:
(-[CookieUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TEST):

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

2 years agoRemove Document#selectedStylesheetSet/preferredStylesheetSet
commit-queue@webkit.org [Wed, 16 May 2018 16:20:26 +0000 (16:20 +0000)]
Remove Document#selectedStylesheetSet/preferredStylesheetSet
https://bugs.webkit.org/show_bug.cgi?id=185381

Patch by Chris Nardi <cnardi@chromium.org> on 2018-05-16
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Refresh historical CSSOM test from upstream to test this change.

* web-platform-tests/cssom/historical-expected.txt:
* web-platform-tests/cssom/historical.html:

Source/WebCore:

Document#selectedStylesheetSet/preferredStylesheetSet are non-standard methods that
are only implemented WebKit. Blink removed these methods in https://crbug.com/690609.
The standard versions of these methods are are no longer in the spec. Remove them
entirely from our implementation.

Updated existing tests and imported/w3c/web-platform-tests/cssom/historical.html.

* dom/Document.cpp:
(WebCore::Document::processHttpEquiv):
* dom/Document.h:
* dom/Document.idl:
* style/StyleScope.cpp:
(WebCore::Style::Scope::collectActiveStyleSheets):
* style/StyleScope.h:
(WebCore::Style::Scope::preferredStylesheetSetName const):

Source/WebKit:

Make API methods for Document#selectedStylesheetSet/preferredStylesheetSet do nothing.

* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.h:
* WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentGtk.cpp:
(webkit_dom_document_set_property):
(webkit_dom_document_get_property):
(webkit_dom_document_get_preferred_stylesheet_set):
(webkit_dom_document_get_selected_stylesheet_set):
(webkit_dom_document_set_selected_stylesheet_set):

Source/WebKitLegacy/mac:

Mark API methods for Document#selectedStylesheetSet/preferredStylesheetSet as deprecated
and make them do nothing.

* DOM/DOMDocument.h:
* DOM/DOMDocument.mm:
(-[DOMDocument preferredStylesheetSet]):
(-[DOMDocument selectedStylesheetSet]):
(-[DOMDocument setSelectedStylesheetSet:]):

LayoutTests:

Update tests to remove selectedStylesheetSet/preferredStylesheetSet.

* fast/css/link-disabled-attr-expected.txt:
* fast/css/link-disabled-attr.html:
* fast/dom/assign-to-prototype-accessor-on-prototype-should-throw-expected.txt:
* fast/dom/assign-to-prototype-accessor-on-prototype-should-throw.html:
* fast/dom/document-attribute-js-null-expected.txt:
* fast/dom/document-attribute-js-null.html:
* fast/shadow-dom/link-element-in-shadow-tree-expected.txt:
* fast/shadow-dom/link-element-in-shadow-tree.html:
* fast/shadow-dom/selected-stylesheet-in-shadow-tree-expected.txt: Removed.
* fast/shadow-dom/selected-stylesheet-in-shadow-tree.html: Removed.

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

2 years agotest262/Runner.pm: save to supplied expectation file if supplied
commit-queue@webkit.org [Wed, 16 May 2018 16:11:09 +0000 (16:11 +0000)]
test262/Runner.pm: save to supplied expectation file if supplied
https://bugs.webkit.org/show_bug.cgi?id=185660

Patch by Valerie R Young <valerie@bocoup.com> on 2018-05-16
Reviewed by Michael Saboff.

* Scripts/test262/Runner.pm:
(processCLI):
(main):

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

2 years ago[LFC] Implement width computation for replaced inflow elements.
zalan@apple.com [Wed, 16 May 2018 14:51:39 +0000 (14:51 +0000)]
[LFC] Implement width computation for replaced inflow elements.
https://bugs.webkit.org/show_bug.cgi?id=185672

Reviewed by Antti Koivisto.

Replaced width for block, inline and float elements compute the same way.

* layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeWidth const):
(WebCore::Layout::FormattingContext::computeFloatingWidth const):
(WebCore::Layout::FormattingContext::computeInFlowReplacedWidth const):
* layout/FormattingContext.h:
* layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::computeInFlowWidth const):
* layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::hasIntrinsicWidth const):
(WebCore::Layout::Box::hasIntrinsicHeight const):
(WebCore::Layout::Box::hasIntrinsicRatio const):
(WebCore::Layout::Box::intrinsicWidth const):
(WebCore::Layout::Box::intrinsicHeight const):
(WebCore::Layout::Box::intrinsicRatio const):
* layout/layouttree/LayoutBox.h:

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

2 years ago[LFC] Make Display::Box box sizing aware
zalan@apple.com [Wed, 16 May 2018 14:49:55 +0000 (14:49 +0000)]
[LFC] Make Display::Box box sizing aware
https://bugs.webkit.org/show_bug.cgi?id=185649

Reviewed by Antti Koivisto.

Display::Box::width() == Display::Box::contentBox().width() <= box-sizing: content-box; (initial and default value)
Display::Box::width() == Display::Box::borderBox().width() <= box-sizing: border-box;

* layout/LayoutContext.cpp:
(WebCore::Layout::LayoutContext::createDisplayBox):
* layout/displaytree/DisplayBox.cpp:
(WebCore::Display::Box::Box):
(WebCore::Display::Box::marginBox const):
(WebCore::Display::Box::borderBox const):
(WebCore::Display::Box::paddingBox const):
(WebCore::Display::Box::contentBox const):
* layout/displaytree/DisplayBox.h:

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

2 years ago[ESNext][BigInt] Implement support for "/" operation
ticaiolima@gmail.com [Wed, 16 May 2018 14:26:30 +0000 (14:26 +0000)]
[ESNext][BigInt] Implement support for "/" operation
https://bugs.webkit.org/show_bug.cgi?id=183996

Reviewed by Yusuke Suzuki.

JSTests:

* bigIntTests.yaml:
* stress/big-int-div-jit.js: Added.
* stress/big-int-div-memory-stress.js: Added.
* stress/big-int-div-to-primitive-precedence.js: Added.
* stress/big-int-div-to-primitive.js: Added.
* stress/big-int-div-type-error.js: Added.
* stress/big-int-div-wrapped-value.js: Added.
* stress/big-int-division.js: Added.

Source/JavaScriptCore:

This patch is introducing the support for BigInt into divide
operation int LLInt and JIT layers.

* dfg/DFGOperations.cpp:
* runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
* runtime/JSBigInt.cpp:
(JSC::JSBigInt::divide):
(JSC::JSBigInt::copy):
(JSC::JSBigInt::unaryMinus):
(JSC::JSBigInt::absoluteCompare):
(JSC::JSBigInt::absoluteDivLarge):
(JSC::JSBigInt::productGreaterThan):
(JSC::JSBigInt::inplaceAdd):
(JSC::JSBigInt::inplaceSub):
(JSC::JSBigInt::inplaceRightShift):
(JSC::JSBigInt::specialLeftShift):
(JSC::JSBigInt::digit):
(JSC::JSBigInt::setDigit):
* runtime/JSBigInt.h:

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

2 years agoMark animations/keyframes-dynamic.html and related tests as failing on Windows.
pvollan@apple.com [Wed, 16 May 2018 14:11:47 +0000 (14:11 +0000)]
Mark animations/keyframes-dynamic.html and related tests as failing on Windows.
https://bugs.webkit.org/show_bug.cgi?id=185678

Unreviewed test gardening.

* platform/win/TestExpectations:

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

2 years ago[CMake] Properly detect compiler flags, needed libs, and fallbacks for usage of 64...
berto@igalia.com [Wed, 16 May 2018 13:33:50 +0000 (13:33 +0000)]
[CMake] Properly detect compiler flags, needed libs, and fallbacks for usage of 64-bit atomic operations
https://bugs.webkit.org/show_bug.cgi?id=182622

Reviewed by Michael Catanzaro.

.:

* Source/cmake/OptionsGTK.cmake:
* Source/cmake/OptionsJSCOnly.cmake:
* Source/cmake/OptionsWPE.cmake:
Enable THREADS_PREFER_PTHREAD_FLAG. This uses -pthread instead of
-lpthread, fixing the 64-bit RISC-V build of the GTK+ port due to
missing atomic primitives.

* Source/cmake/WebKitCompilerFlags.cmake:
Move the test to detect whether we need to link against libatomic
to a common CMake file so it can be used from both JavaScriptCore
and WebKit.

Source/JavaScriptCore:

We were linking JavaScriptCore against libatomic in MIPS because
in that architecture __atomic_fetch_add_8() is not a compiler
intrinsic and is provided by that library instead. However other
architectures (e.g armel) are in the same situation, so we need a
generic test.

That test already exists in WebKit/CMakeLists.txt, so we just have
to move it to a common file (WebKitCompilerFlags.cmake) and use
its result (ATOMIC_INT64_REQUIRES_LIBATOMIC) here.

* CMakeLists.txt:

Source/WebKit:

Move the test to determine whether we need to link against
libatomic to the common file WebKitCompilerFlags.cmake so it can
also be used for JavaScriptCore.

* CMakeLists.txt:

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

2 years agoREGRESSION (r230574): Interrupted hardware transitions don't behave correctly
graouts@webkit.org [Wed, 16 May 2018 13:09:37 +0000 (13:09 +0000)]
REGRESSION (r230574): Interrupted hardware transitions don't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=185299

Unreviewed. Attempt to make this test more robust.

* transitions/interrupted-transition-hardware.html:

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

2 years agoUnreviewed. Remove W3C deleted files after r231727.
carlosgc@webkit.org [Wed, 16 May 2018 08:38:10 +0000 (08:38 +0000)]
Unreviewed. Remove W3C deleted files after r231727.

In r231727 W3C WebDriver tests were updated, but only new and modified files, not the deleted (or renamed)
ones. Remove the deleted files and update the test expectations to use the new names.

* TestExpectations.json: Update expectations after test renames in r231727.
* imported/w3c/tools/wptrunner/wptrunner/executors/testharness_marionette.js: Removed.
* imported/w3c/tools/wptrunner/wptrunner/executors/testharness_marionette_resume.js: Removed.
* imported/w3c/webdriver/tests/contexts/json_serialize_windowproxy.py: Removed.
* imported/w3c/webdriver/tests/contexts/maximize_window.py: Removed.
* imported/w3c/webdriver/tests/contexts/resizing_and_positioning.py: Removed.
* imported/w3c/webdriver/tests/cookies/add_cookie.py: Removed.
* imported/w3c/webdriver/tests/cookies/delete_cookie.py: Removed.
* imported/w3c/webdriver/tests/cookies/get_named_cookie.py: Removed.
* imported/w3c/webdriver/tests/document_handling/page_source.py: Removed.
* imported/w3c/webdriver/tests/element_retrieval/__init__.py: Removed.
* imported/w3c/webdriver/tests/element_retrieval/find_element.py: Removed.
* imported/w3c/webdriver/tests/element_retrieval/find_element_from_element.py: Removed.
* imported/w3c/webdriver/tests/element_retrieval/find_elements.py: Removed.
* imported/w3c/webdriver/tests/element_retrieval/find_elements_from_element.py: Removed.
* imported/w3c/webdriver/tests/element_retrieval/get_active_element.py: Removed.
* imported/w3c/webdriver/tests/fullscreen_window.py: Removed.
* imported/w3c/webdriver/tests/get_window_rect.py: Removed.
* imported/w3c/webdriver/tests/interaction/element_clear.py: Removed.
* imported/w3c/webdriver/tests/interaction/send_keys_content_editable.py: Removed.
* imported/w3c/webdriver/tests/minimize_window.py: Removed.
* imported/w3c/webdriver/tests/navigation/current_url.py: Removed.
* imported/w3c/webdriver/tests/navigation/get_title.py: Removed.
* imported/w3c/webdriver/tests/sessions/get_timeouts.py: Removed.
* imported/w3c/webdriver/tests/sessions/new_session/conftest.py: Removed.
* imported/w3c/webdriver/tests/sessions/new_session/create_alwaysMatch.py: Removed.
* imported/w3c/webdriver/tests/sessions/new_session/create_firstMatch.py: Removed.
* imported/w3c/webdriver/tests/sessions/new_session/default_values.py: Removed.
* imported/w3c/webdriver/tests/sessions/new_session/invalid_capabilities.py: Removed.
* imported/w3c/webdriver/tests/sessions/new_session/merge.py: Removed.
* imported/w3c/webdriver/tests/sessions/new_session/response.py: Removed.
* imported/w3c/webdriver/tests/sessions/new_session/support/__init__.py: Removed.
* imported/w3c/webdriver/tests/sessions/new_session/support/create.py: Removed.
* imported/w3c/webdriver/tests/sessions/status.py: Removed.
* imported/w3c/webdriver/tests/set_window_rect.py: Removed.
* imported/w3c/webdriver/tests/state/__init__.py: Removed.
* imported/w3c/webdriver/tests/state/get_element_attribute.py: Removed.
* imported/w3c/webdriver/tests/state/get_element_property.py: Removed.
* imported/w3c/webdriver/tests/state/get_element_tag_name.py: Removed.
* imported/w3c/webdriver/tests/state/is_element_selected.py: Removed.
* imported/w3c/webdriver/tests/state/text/__init__.py: Removed.
* imported/w3c/webdriver/tests/state/text/get_text.py: Removed.
* imported/w3c/webdriver/tests/switch_to_parent_frame.py: Removed.
* imported/w3c/webdriver/tests/user_prompts/accept_alert.py: Removed.
* imported/w3c/webdriver/tests/user_prompts/dismiss_alert.py: Removed.
* imported/w3c/webdriver/tests/user_prompts/get_alert_text.py: Removed.
* imported/w3c/webdriver/tests/user_prompts/send_alert_text.py: Removed.

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

2 years agoREGRESSION (r230574): Interrupted hardware transitions don't behave correctly
graouts@webkit.org [Wed, 16 May 2018 08:27:54 +0000 (08:27 +0000)]
REGRESSION (r230574): Interrupted hardware transitions don't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=185299
<rdar://problem/39630230>

Reviewed by Simon Fraser.

Source/WebCore:

In r230574, the fix for webkit.org/b/184518, we changed the processing order in GraphicsLayerCA::updateAnimations() to first
process m_uncomittedAnimations and then m_animationsToProcess, so we are guaranteed animations exist before we attempt to pause
or seek them. This broke interrupting and resuming hardware animations (such as an interrupted CSS Transition or an animation
running in a non-visible tab) since a pause operation recorded _before_ an animation was added would be paused anyway since
the animation was now first added, and then paused. The fix is simply to clear any pending AnimationProcessingAction for a
newly-uncommitted animation.

Test: transitions/interrupted-transition-hardware.html

* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
* platform/graphics/ca/GraphicsLayerCA.h:
(WebCore::GraphicsLayerCA::LayerPropertyAnimation::LayerPropertyAnimation):

LayoutTests:

Add a new test where we interrupt a transition and check that upon returning to the original value,
an animated value is still used and not the initial value. This test fails prior to this patch.

* transitions/interrupted-transition-hardware-expected.html: Added.
* transitions/interrupted-transition-hardware.html: Added.

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

2 years ago[JSC] Check TypeInfo first before calling getCallData when we would like to check...
utatane.tea@gmail.com [Wed, 16 May 2018 07:05:27 +0000 (07:05 +0000)]
[JSC] Check TypeInfo first before calling getCallData when we would like to check whether given object is a function
https://bugs.webkit.org/show_bug.cgi?id=185601

Reviewed by Saam Barati.

Source/JavaScriptCore:

Rename TypeOfShouldCallGetCallData to OverridesGetCallData. And check OverridesGetCallData
before calling getCallData when we would like to check whether a given object is callable
since getCallData is a virtual call. When we call the object anyway, directly calling getCallData
is fine. But if we would like to check whether the object is callable, we can have non
callable objects frequently. In that case, we should not call getCallData if we can avoid it.

To do this cleanly, we refactor JSValue::{isFunction,isCallable}. We add JSCell::{isFunction,isCallable}
and JSValue ones call into these functions. Inside JSCell::{isFunction,isCallable}, we perform
OverridesGetCallData checking before calling getCallData.

We found that this virtual call exists in JSON.stringify's critial path. Checking
OverridesGetCallData improves Kraken/json-stringify-tinderbox by 2-4%.

                                       baseline                  patched

    json-stringify-tinderbox        38.807+-0.350      ^      37.216+-0.337         ^ definitely 1.0427x faster

In addition to that, we also add OverridesGetCallData flag to JSFunction while we keep JSFunctionType checking fast path
since major cases are covered by this fast JSFunctionType checking.

* API/JSCallbackObject.h:
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGOperations.cpp:
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileIsObjectOrNull):
(JSC::DFG::SpeculativeJIT::compileIsFunction):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::isExoticForTypeof):
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitTypeOf):
* runtime/ExceptionHelpers.cpp:
(JSC::createError):
(JSC::createInvalidFunctionApplyParameterError):
* runtime/FunctionPrototype.cpp:
(JSC::functionProtoFuncToString):
* runtime/InternalFunction.h:
* runtime/JSCJSValue.h:
* runtime/JSCJSValueInlines.h:
(JSC::JSValue::isFunction const):
(JSC::JSValue::isCallable const):
* runtime/JSCell.h:
* runtime/JSCellInlines.h:
(JSC::JSCell::isFunction):
ALWAYS_INLINE works well for my environment.
(JSC::JSCell::isCallable):
* runtime/JSFunction.h:
* runtime/JSONObject.cpp:
(JSC::Stringifier::toJSON):
(JSC::Stringifier::toJSONImpl):
(JSC::Stringifier::appendStringifiedValue):
* runtime/JSObjectInlines.h:
(JSC::createListFromArrayLike):
* runtime/JSTypeInfo.h:
(JSC::TypeInfo::overridesGetCallData const):
(JSC::TypeInfo::typeOfShouldCallGetCallData const): Deleted.
* runtime/Operations.cpp:
(JSC::jsTypeStringForValue):
(JSC::jsIsObjectTypeOrNull):
* runtime/ProxyObject.h:
* runtime/RuntimeType.cpp:
(JSC::runtimeTypeForValue):
* runtime/RuntimeType.h:
* runtime/Structure.cpp:
(JSC::Structure::Structure):
* runtime/TypeProfilerLog.cpp:
(JSC::TypeProfilerLog::TypeProfilerLog):
(JSC::TypeProfilerLog::processLogEntries):
* runtime/TypeProfilerLog.h:
* runtime/VM.cpp:
(JSC::VM::enableTypeProfiler):
* tools/JSDollarVM.cpp:
(JSC::functionFindTypeForExpression):
(JSC::functionReturnTypeFor):
(JSC::functionHasBasicBlockExecuted):
(JSC::functionBasicBlockExecutionCount):
* wasm/js/JSWebAssemblyHelpers.h:
(JSC::getWasmBufferFromValue):
* wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::create):
* wasm/js/WebAssemblyFunction.cpp:
(JSC::callWebAssemblyFunction):
* wasm/js/WebAssemblyInstanceConstructor.cpp:
(JSC::constructJSWebAssemblyInstance):
* wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::link):
* wasm/js/WebAssemblyPrototype.cpp:
(JSC::webAssemblyInstantiateFunc):
(JSC::webAssemblyInstantiateStreamingInternal):
* wasm/js/WebAssemblyWrapperFunction.cpp:
(JSC::WebAssemblyWrapperFunction::finishCreation):

Source/WebCore:

No behavior change.

* Modules/plugins/QuickTimePluginReplacement.mm:
(WebCore::QuickTimePluginReplacement::ensureReplacementScriptInjected):
* bindings/js/JSCustomElementRegistryCustom.cpp:
(WebCore::getCustomElementCallback):
* bindings/js/JSDOMConstructorBase.h:
* bindings/js/JSDOMConvertCallbacks.h:
(WebCore::Converter<IDLCallbackFunction<T>>::convert):
* bindings/js/JSDOMPromise.cpp:
(WebCore::DOMPromise::whenSettled):
* bindings/js/ReadableStream.cpp:
(WebCore::ReadableStream::pipeTo):
(WebCore::ReadableStream::tee):
* bindings/js/ReadableStreamDefaultController.cpp:
(WebCore::ReadableStreamDefaultController::invoke):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateOverloadDispatcher):
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/JS/JSTestPluginInterface.h:
* bridge/objc/objc_runtime.h:
* bridge/runtime_method.h:
* bridge/runtime_object.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):
* testing/Internals.cpp:
(WebCore::Internals::parserMetaData):
(WebCore::Internals::cloneArrayBuffer):

Source/WebKit:

* WebProcess/Plugins/Netscape/JSNPObject.h:

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

2 years agoWeb Inspector: element details hanger in inspector overlay should have better placeme...
mattbaker@apple.com [Wed, 16 May 2018 05:30:09 +0000 (05:30 +0000)]
Web Inspector: element details hanger in inspector overlay should have better placement logic
https://bugs.webkit.org/show_bug.cgi?id=128482
<rdar://problem/16020709>

Reviewed by Timothy Hatcher.

When determining the best position for the hovered element details "tooltip",
perform placement tests in view space, not canvas space, and account for the
top content inset.

* inspector/InspectorOverlayPage.js:
(reset): Drive by fix: added missing `.height`.
(_drawElementTitle):

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

2 years agoStorageManager::deleteLocalStorageOriginsModifiedSince: database files get deleted...
commit-queue@webkit.org [Wed, 16 May 2018 04:43:15 +0000 (04:43 +0000)]
StorageManager::deleteLocalStorageOriginsModifiedSince: database files get deleted before database connections close
https://bugs.webkit.org/show_bug.cgi?id=185671

Patch by Sihui Liu <sihui_liu@apple.com> on 2018-05-15
Reviewed by Geoffrey Garen.

We should delete database files before closing databases.

* UIProcess/WebStorage/LocalStorageDatabase.cpp:
(WebKit::LocalStorageDatabase::updateDatabaseWithChangedItems):
* UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp:
(WebKit::LocalStorageDatabaseTracker::databasesModifiedSince):
(WebKit::LocalStorageDatabaseTracker::deleteDatabasesModifiedSince): Deleted.
* UIProcess/WebStorage/LocalStorageDatabaseTracker.h:
* UIProcess/WebStorage/StorageManager.cpp:
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):

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

2 years agoPasteboardWebContent's dataInAttributedStringFormat fails to deserialize in the UI...
wenson_hsieh@apple.com [Wed, 16 May 2018 01:57:50 +0000 (01:57 +0000)]
PasteboardWebContent's dataInAttributedStringFormat fails to deserialize in the UI process when copying a selection
https://bugs.webkit.org/show_bug.cgi?id=185667
<rdar://problem/40135132>

Reviewed by Tim Horton.

Fixes error logging emitted when copying a text selection due to the secure archiver on iOS being unable to
handle NSAttributedString in the builds where the errors manifest. USE_SECURE_ARCHIVER_FOR_ATTRIBUTED_STRING is
defined to be 1, despite not having the fix for <rdar://problem/31376830>.

* pal/spi/cocoa/NSKeyedArchiverSPI.h:

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

2 years agoLaunch System Preview as the download starts, rather than waiting for a response
dino@apple.com [Wed, 16 May 2018 00:39:10 +0000 (00:39 +0000)]
Launch System Preview as the download starts, rather than waiting for a response
https://bugs.webkit.org/show_bug.cgi?id=185669
<rdar://problem/40278181>

Reviewed by Tim Horton.

We were waiting for the RequestResponse to get a MIME-type before
launching the system preview. This causes an annoying delay.

Instead, assume that the system preview is one of the handled
mime types and launch the viewer immediately. If it gets something it
didn't expect, it will show an error.

* UIProcess/Cocoa/DownloadClient.mm:
(WebKit::DownloadClient::didStart):
(WebKit::DownloadClient::didReceiveResponse):
* UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
(-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]):
(WebKit::SystemPreviewController::start): Small cleanup to ensure we
don't try to present twice (this shouldn't happen).

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

2 years agoPost-review cleanup for 185459
dino@apple.com [Wed, 16 May 2018 00:30:25 +0000 (00:30 +0000)]
Post-review cleanup for 185459
https://bugs.webkit.org/show_bug.cgi?id=185665
<rdar://problem/40276689>

Reviewed by Tim Horton.

Jon made some comments in 185459 that I'm addressing here.

* UIProcess/Cocoa/DownloadClient.h:
* UIProcess/Cocoa/DownloadClient.mm: Guard the activity token for iOS
in a way that means it will still work ok on macOS.
(WebKit::DownloadClient::didStart):
(WebKit::DownloadClient::processDidCrash):
(WebKit::DownloadClient::didFinish):
(WebKit::DownloadClient::didFail):
(WebKit::DownloadClient::didCancel):
(WebKit::DownloadClient::takeActivityToken):
(WebKit::DownloadClient::releaseActivityTokenIfNecessary):
(WebKit::DownloadClient::releaseActivityToken): Deleted.

* UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: Add an early return.
(-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]):

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

2 years agoUnreviewed, rolling out r231765.
commit-queue@webkit.org [Wed, 16 May 2018 00:01:17 +0000 (00:01 +0000)]
Unreviewed, rolling out r231765.
https://bugs.webkit.org/show_bug.cgi?id=185668

the layout test added with this change is very flaky
(Requested by realdawei on #webkit).

Reverted changeset:

"REGRESSION (r230574): Interrupted hardware transitions don't
behave correctly"
https://bugs.webkit.org/show_bug.cgi?id=185299
https://trac.webkit.org/changeset/231765

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

2 years agoUpdate touch event tracking type on every touch
commit-queue@webkit.org [Tue, 15 May 2018 23:50:19 +0000 (23:50 +0000)]
Update touch event tracking type on every touch
https://bugs.webkit.org/show_bug.cgi?id=184250
<rdar://problem/39145092>

Patch by Tadeu Zagallo <tzagallo@apple.com> on 2018-05-15
Reviewed by Geoffrey Garen.

The tracking type for touch events were only update on touchstart, which meant that event
listeners added after the touchstart would always be treated as passive, even if explicitly
setting passive to false.

Source/WebKit:

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleTouchEventSynchronously):
(WebKit::WebPageProxy::handleTouchEvent):

LayoutTests:

* fast/events/touch/ios/touchmove-cancelable-after-touchstart-expected.txt: Added.
* fast/events/touch/ios/touchmove-cancelable-after-touchstart.html: Added.

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

2 years agoWeb Inspector: Add rulers and guides
webkit@devinrousso.com [Tue, 15 May 2018 23:20:46 +0000 (23:20 +0000)]
Web Inspector: Add rulers and guides
https://bugs.webkit.org/show_bug.cgi?id=32263
<rdar://problem/19281564>

Reviewed by Matt Baker.

Source/JavaScriptCore:

* inspector/protocol/OverlayTypes.json:

Source/WebCore:

This patch is purely a visual change for WebInspector, and doesn't affect anything else.

* inspector/InspectorOverlay.h:
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::update):
(WebCore::InspectorOverlay::reset):
(WebCore::InspectorOverlay::drawGutter): Deleted.

* inspector/InspectorOverlayPage.html:
* inspector/InspectorOverlayPage.js:
(Bounds): Added.
(Bounds.prototype.get minX): Added.
(Bounds.prototype.get minY): Added.
(Bounds.prototype.get maxX): Added.
(Bounds.prototype.get maxY): Added.
(Bounds.prototype.update): Added.
(drawNodeHighlight):
(drawQuadHighlight):
(reset):
(_isolateActions): Added.
(_quadToPath): Added.
(_quadToPath.parseQuadPoint): Added.
(_drawOutlinedQuad): Added.
(_drawPath): Added.
(_drawPath.parsePoints): Added.
(_drawOutlinedQuadWithClip): Added.
(_drawElementTitle):
(_drawShapeHighlight):
(_drawFragmentHighlight):
(_drawRulers): Added.
(quadToPath): Deleted.
(drawOutlinedQuad): Deleted.
(pathCommand): Deleted.
(drawPath): Deleted.
(drawOutlinedQuadWithClip): Deleted.
(drawGutter): Deleted.
* inspector/InspectorOverlayPage.css:
(#log): Added.
(#right-gutter): Deleted.
(#bottom-gutter): Deleted.

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

2 years agoPause display links when window is not visible.
pvollan@apple.com [Tue, 15 May 2018 23:06:28 +0000 (23:06 +0000)]
Pause display links when window is not visible.
https://bugs.webkit.org/show_bug.cgi?id=185627
<rdar://problem/39401106>

Reviewed by Simon Fraser.

Pause/resume display links created in the UI process when the window is hidden/shown.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::dispatchActivityStateChange):
* UIProcess/mac/DisplayLink.cpp:
(WebKit::DisplayLink::pause):
(WebKit::DisplayLink::resume):
* UIProcess/mac/DisplayLink.h:

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

2 years agoMedia continues loading after rendered invisible (removed from DOM; scrolled off...
jer.noble@apple.com [Tue, 15 May 2018 23:01:14 +0000 (23:01 +0000)]
Media continues loading after rendered invisible (removed from DOM; scrolled off screen)
https://bugs.webkit.org/show_bug.cgi?id=185487

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/video-buffering-allowed.html

When a media element is removed from the dom (e.g. through innerHTML=""), it doesn't
necessarily stop loading media data; it will continue to do so until its destructor is
called through garbage collection. Similarly, when a media element is rendered not-visible
by being scrolled off-screen or being made display:none, media loading continues. There
are legitimate use cases for out-of-DOM media loading, so only temporarily block loading
when the element transitions out of the document. Similarly, only block loading for non-visible
media elements when returning from the "page is hidden" state, and only until the media
element is asked to play or is otherwise made visible.

Note: this refactors a lot of code out of PlatformMediaSession and into MediaElementSession,
since this code is specific to "media elements".

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::insertedIntoAncestor):
(WebCore::HTMLMediaElement::removedFromAncestor):
(WebCore::HTMLMediaElement::playInternal):
(WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer):
(WebCore::HTMLMediaElement::resume):
(WebCore::HTMLMediaElement::visibilityStateChanged):
(WebCore::HTMLMediaElement::createMediaPlayer):
(WebCore::HTMLMediaElement::setShouldBufferData):
(WebCore::HTMLMediaElement::purgeBufferedDataIfPossible):
(WebCore::HTMLMediaElement::isVisibleInViewportChanged):
(WebCore::HTMLMediaElement::fullscreenModeChanged):
(WebCore::HTMLMediaElement::setInActiveDocument):
* html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::shouldBufferData const):
(WebCore::HTMLMediaElement::elementIsHidden const):
* html/MediaElementSession.cpp:
(WebCore::MediaElementSession::MediaElementSession):
(WebCore::MediaElementSession::clientWillBeginAutoplaying):
(WebCore::MediaElementSession::clientWillBeginPlayback):
(WebCore::MediaElementSession::clientWillPausePlayback):
(WebCore::MediaElementSession::visibilityChanged):
(WebCore::MediaElementSession::isVisibleInViewportChanged):
(WebCore::MediaElementSession::inActiveDocumentChanged):
(WebCore::MediaElementSession::scheduleClientDataBufferingCheck):
(WebCore::MediaElementSession::clientDataBufferingTimerFired):
(WebCore::MediaElementSession::updateClientDataBuffering):
(WebCore::MediaElementSession::dataBufferingPermitted const):
(WebCore::MediaElementSession::wantsToObserveViewportVisibilityForAutoplay const):
* html/MediaElementSession.h:
* platform/audio/PlatformMediaSession.cpp:
(WebCore::PlatformMediaSession::PlatformMediaSession):
(WebCore::PlatformMediaSession::clientWillBeginAutoplaying):
(WebCore::PlatformMediaSession::clientWillBeginPlayback):
(WebCore::PlatformMediaSession::clientWillPausePlayback):
(): Deleted.
(WebCore::PlatformMediaSession::visibilityChanged): Deleted.
(WebCore::PlatformMediaSession::scheduleClientDataBufferingCheck): Deleted.
(WebCore::PlatformMediaSession::clientDataBufferingTimerFired): Deleted.
(WebCore::PlatformMediaSession::updateClientDataBuffering): Deleted.
(WebCore::PlatformMediaSession::isHidden const): Deleted.
* platform/audio/PlatformMediaSession.h:
(WebCore::PlatformMediaSessionClient::setShouldBufferData): Deleted.
(WebCore::PlatformMediaSessionClient::elementIsHidden const): Deleted.
* platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::sessionCanLoadMedia const): Deleted.
* platform/audio/PlatformMediaSessionManager.h:
* platform/audio/ios/MediaSessionManagerIOS.h:
* platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::sessionCanLoadMedia const): Deleted.
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::willBeDestroyed):
* testing/Internals.cpp:
(WebCore::Internals::elementShouldBufferData):
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

* media/video-buffering-allowed-expected.txt: Added.
* media/video-buffering-allowed.html: Added.
* media/video-test.js:
(compare):
(testExpected):
(sleepFor):
(testArraysEqual): Deleted.

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

2 years agoProvide UIView and UIImage for zoom transition
dino@apple.com [Tue, 15 May 2018 20:38:01 +0000 (20:38 +0000)]
Provide UIView and UIImage for zoom transition
https://bugs.webkit.org/show_bug.cgi?id=185655
<rdar://problem/40267224>

Reviewed by Antoine Quint.

Provide a UIView* for the frameForPreviewItem to use as a source view.
Also implement the transitionImageForPreviewItem delegate, even though
we're returning nil.

* UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
(-[_WKPreviewControllerDelegate previewController:frameForPreviewItem:inSourceView:]):
(-[_WKPreviewControllerDelegate previewController:transitionImageForPreviewItem:contentRect:]):

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

2 years agoAdd the PerformanceServerTiming Interface which makes Server-Timing header timing...
commit-queue@webkit.org [Tue, 15 May 2018 19:24:30 +0000 (19:24 +0000)]
Add the PerformanceServerTiming Interface which makes Server-Timing header timing values available to JavaScript running in the browser.
https://bugs.webkit.org/show_bug.cgi?id=175569

Patch by Charles Vazac <cvazac@gmail.com> on 2018-05-15
Reviewed by Youenn Fablet.

Tests were imported from web-platform-tests: WebKit/LayoutTests/imported/w3c/web-platform-tests/server-timing/*

LayoutTests/imported/w3c:

* web-platform-tests/server-timing/cross_origin.html: Added.
* web-platform-tests/server-timing/navigation_timing_idl.html: Added.
* web-platform-tests/server-timing/navigation_timing_idl.https.html: Added.
* web-platform-tests/server-timing/resources/blue.png: Added.
* web-platform-tests/server-timing/resources/blue.png.sub.headers: Added.
* web-platform-tests/server-timing/resources/blue_tao.png: Added.
* web-platform-tests/server-timing/resources/blue_tao.png.sub.headers: Added.
* web-platform-tests/server-timing/resources/green.png: Added.
* web-platform-tests/server-timing/resources/green.png.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/0.js: Added.
* web-platform-tests/server-timing/resources/parsing/0.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/1.js: Added.
* web-platform-tests/server-timing/resources/parsing/1.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/10.js: Added.
* web-platform-tests/server-timing/resources/parsing/10.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/11.js: Added.
* web-platform-tests/server-timing/resources/parsing/11.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/12.js: Added.
* web-platform-tests/server-timing/resources/parsing/12.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/13.js: Added.
* web-platform-tests/server-timing/resources/parsing/13.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/14.js: Added.
* web-platform-tests/server-timing/resources/parsing/14.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/15.js: Added.
* web-platform-tests/server-timing/resources/parsing/15.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/16.js: Added.
* web-platform-tests/server-timing/resources/parsing/16.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/17.js: Added.
* web-platform-tests/server-timing/resources/parsing/17.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/18.js: Added.
* web-platform-tests/server-timing/resources/parsing/18.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/19.js: Added.
* web-platform-tests/server-timing/resources/parsing/19.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/2.js: Added.
* web-platform-tests/server-timing/resources/parsing/2.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/20.js: Added.
* web-platform-tests/server-timing/resources/parsing/20.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/21.js: Added.
* web-platform-tests/server-timing/resources/parsing/21.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/22.js: Added.
* web-platform-tests/server-timing/resources/parsing/22.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/23.js: Added.
* web-platform-tests/server-timing/resources/parsing/23.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/24.js: Added.
* web-platform-tests/server-timing/resources/parsing/24.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/25.js: Added.
* web-platform-tests/server-timing/resources/parsing/25.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/26.js: Added.
* web-platform-tests/server-timing/resources/parsing/26.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/27.js: Added.
* web-platform-tests/server-timing/resources/parsing/27.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/28.js: Added.
* web-platform-tests/server-timing/resources/parsing/28.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/29.js: Added.
* web-platform-tests/server-timing/resources/parsing/29.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/3.js: Added.
* web-platform-tests/server-timing/resources/parsing/3.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/30.js: Added.
* web-platform-tests/server-timing/resources/parsing/30.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/31.js: Added.
* web-platform-tests/server-timing/resources/parsing/31.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/32.js: Added.
* web-platform-tests/server-timing/resources/parsing/32.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/33.js: Added.
* web-platform-tests/server-timing/resources/parsing/33.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/34.js: Added.
* web-platform-tests/server-timing/resources/parsing/34.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/35.js: Added.
* web-platform-tests/server-timing/resources/parsing/35.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/36.js: Added.
* web-platform-tests/server-timing/resources/parsing/36.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/37.js: Added.
* web-platform-tests/server-timing/resources/parsing/37.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/38.js: Added.
* web-platform-tests/server-timing/resources/parsing/38.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/39.js: Added.
* web-platform-tests/server-timing/resources/parsing/39.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/4.js: Added.
* web-platform-tests/server-timing/resources/parsing/4.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/40.js: Added.
* web-platform-tests/server-timing/resources/parsing/40.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/41.js: Added.
* web-platform-tests/server-timing/resources/parsing/41.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/42.js: Added.
* web-platform-tests/server-timing/resources/parsing/42.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/43.js: Added.
* web-platform-tests/server-timing/resources/parsing/43.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/44.js: Added.
* web-platform-tests/server-timing/resources/parsing/44.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/45.js: Added.
* web-platform-tests/server-timing/resources/parsing/45.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/46.js: Added.
* web-platform-tests/server-timing/resources/parsing/46.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/47.js: Added.
* web-platform-tests/server-timing/resources/parsing/47.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/48.js: Added.
* web-platform-tests/server-timing/resources/parsing/48.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/49.js: Added.
* web-platform-tests/server-timing/resources/parsing/49.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/5.js: Added.
* web-platform-tests/server-timing/resources/parsing/5.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/50.js: Added.
* web-platform-tests/server-timing/resources/parsing/50.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/51.js: Added.
* web-platform-tests/server-timing/resources/parsing/51.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/52.js: Added.
* web-platform-tests/server-timing/resources/parsing/52.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/53.js: Added.
* web-platform-tests/server-timing/resources/parsing/53.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/54.js: Added.
* web-platform-tests/server-timing/resources/parsing/54.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/55.js: Added.
* web-platform-tests/server-timing/resources/parsing/55.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/56.js: Added.
* web-platform-tests/server-timing/resources/parsing/56.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/57.js: Added.
* web-platform-tests/server-timing/resources/parsing/57.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/58.js: Added.
* web-platform-tests/server-timing/resources/parsing/58.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/59.js: Added.
* web-platform-tests/server-timing/resources/parsing/59.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/6.js: Added.
* web-platform-tests/server-timing/resources/parsing/6.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/60.js: Added.
* web-platform-tests/server-timing/resources/parsing/60.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/61.js: Added.
* web-platform-tests/server-timing/resources/parsing/61.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/62.js: Added.
* web-platform-tests/server-timing/resources/parsing/62.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/63.js: Added.
* web-platform-tests/server-timing/resources/parsing/63.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/64.js: Added.
* web-platform-tests/server-timing/resources/parsing/64.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/65.js: Added.
* web-platform-tests/server-timing/resources/parsing/65.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/66.js: Added.
* web-platform-tests/server-timing/resources/parsing/66.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/67.js: Added.
* web-platform-tests/server-timing/resources/parsing/67.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/68.js: Added.
* web-platform-tests/server-timing/resources/parsing/68.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/69.js: Added.
* web-platform-tests/server-timing/resources/parsing/69.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/7.js: Added.
* web-platform-tests/server-timing/resources/parsing/7.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/70.js: Added.
* web-platform-tests/server-timing/resources/parsing/70.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/71.js: Added.
* web-platform-tests/server-timing/resources/parsing/71.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/72.js: Added.
* web-platform-tests/server-timing/resources/parsing/72.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/73.js: Added.
* web-platform-tests/server-timing/resources/parsing/73.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/74.js: Added.
* web-platform-tests/server-timing/resources/parsing/74.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/75.js: Added.
* web-platform-tests/server-timing/resources/parsing/75.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/76.js: Added.
* web-platform-tests/server-timing/resources/parsing/76.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/77.js: Added.
* web-platform-tests/server-timing/resources/parsing/77.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/78.js: Added.
* web-platform-tests/server-timing/resources/parsing/78.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/79.js: Added.
* web-platform-tests/server-timing/resources/parsing/79.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/8.js: Added.
* web-platform-tests/server-timing/resources/parsing/8.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/80.js: Added.
* web-platform-tests/server-timing/resources/parsing/80.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/81.js: Added.
* web-platform-tests/server-timing/resources/parsing/81.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/82.js: Added.
* web-platform-tests/server-timing/resources/parsing/82.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/83.js: Added.
* web-platform-tests/server-timing/resources/parsing/83.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/9.js: Added.
* web-platform-tests/server-timing/resources/parsing/9.js.sub.headers: Added.
* web-platform-tests/server-timing/resources/parsing/w3c-import.log: Added.
* web-platform-tests/server-timing/resources/w3c-import.log: Added.
* web-platform-tests/server-timing/resource_timing_idl.html: Added.
* web-platform-tests/server-timing/resource_timing_idl.https.html: Added.
* web-platform-tests/server-timing/server_timing_header-parsing.html: Added.
* web-platform-tests/server-timing/server_timing_header-parsing.https.html: Added.
* web-platform-tests/server-timing/test_server_timing.html: Added.
* web-platform-tests/server-timing/test_server_timing.html.sub.headers: Added.
* web-platform-tests/server-timing/test_server_timing.https.html: Added.
* web-platform-tests/server-timing/test_server_timing.https.html.sub.headers: Added.
* web-platform-tests/server-timing/w3c-import.log: Added.

Source/WebCore:

* Sources.txt: Added references to HeaderFieldTokenizer.cpp, ServerTiming.cpp, and ServerTimingParser.cpp.
* WebCore.xcodeproj/project.pbxproj: Added various files.
* loader/HeaderFieldTokenizer.cpp: Added.
(WebCore::HeaderFieldTokenizer::HeaderFieldTokenizer): Added class for tokenizing header values.
(WebCore::HeaderFieldTokenizer::consume): Added method to consume a specified character.
(WebCore::HeaderFieldTokenizer::consumeQuotedString): Added method to consume a quote-string.
(WebCore::HeaderFieldTokenizer::consumeToken): Added a method to consume a token.
(WebCore::HeaderFieldTokenizer::consumeTokenOrQuotedString): Added method to consume a quote-string or quote-string, depending on net character.
(WebCore::HeaderFieldTokenizer::skipSpaces): Added method to skip whitespace.
(WebCore::HeaderFieldTokenizer::consumeBeforeAnyCharMatch): Added method to advance the cursor up until any of a list of characters.
* loader/HeaderFieldTokenizer.h: Added.
* loader/HTTPHeaderField.cpp: Expose isTokenCharacter and isWhitespace.
* loader/HTTPHeaderField.h: Expose isTokenCharacter and isWhitespace.
* loader/PolicyChecker.cpp: Added #include so source compiled on my machine.
* loader/ResourceTiming.cpp:
(WebCore::ResourceTiming::ResourceTiming): Added call to initServerTiming to parse the header.
(WebCore::ResourceTiming::initServerTiming): Added method to parse the header.
(WebCore::ResourceTiming::populateServerTiming): Added method to populate the server timing entries on a PerformanceResourceTiming object.
(WebCore::ResourceTiming::isolatedCopy const): Added code to copy over the server timing entries.
* loader/ResourceTiming.h:
(WebCore::ResourceTiming::ResourceTiming): Accept collection of server timing entries in c'tor.
* loader/ServerTiming.cpp: Added.
(WebCore::ServerTiming::setParameter): Set named parameters, ignoring unrecognized or duplicates.
(WebCore::ServerTiming::isolatedCopy const): Return a new pointer to the object.
* loader/ServerTiming.h: Added.
(WebCore::ServerTiming::ServerTiming): Added struct for the data needed by a server timing entry.
(WebCore::ServerTiming::name const): Added name field of a server timing entry.
(WebCore::ServerTiming::duration const): Added duration field of a server timing entry.
(WebCore::ServerTiming::description const): Added description field of a server timing entry.
* loader/ServerTimingParser.cpp: Added.
(WebCore::ServerTimingParser::parseServerTiming): Parses the header generating a collection of server timing structs.
* loader/ServerTimingParser.h: Added.
* loader/WorkerThreadableLoader.h: Fix build.
* page/Performance.cpp:
(WebCore::Performance::addResourceTiming): Fixed a typo.
* page/PerformanceResourceTiming.cpp:
(WebCore::PerformanceResourceTiming::PerformanceResourceTiming): Given a ResourceTiming object, populate our collection of PerformanceServerTiming objects.
* page/PerformanceResourceTiming.h: Added serverTiming member and getter.
* page/PerformanceResourceTiming.idl: Added serverTiming member to interface.
* platform/network/HTTPHeaderNames.in: Added "Server-Timing" to the header enum.
* platform/network/ResourceResponseBase.cpp: Added "Server-Timing" to isSafeCrossOriginResponseHeader whitelist.

LayoutTests:

* imported/w3c/web-platform-tests/server-timing/cross_origin-expected.txt: Added.
* imported/w3c/web-platform-tests/server-timing/resource_timing_idl-expected.txt: Added.
* imported/w3c/web-platform-tests/server-timing/resource_timing_idl.https-expected.txt: Added.
* imported/w3c/web-platform-tests/server-timing/server_timing_header-parsing-expected.txt: Added.
* imported/w3c/web-platform-tests/server-timing/server_timing_header-parsing.https-expected.txt: Added.

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

2 years agoFix crash after a Worker terminates but there are still IDB transactions the server...
beidson@apple.com [Tue, 15 May 2018 19:07:13 +0000 (19:07 +0000)]
Fix crash after a Worker terminates but there are still IDB transactions the server is trying to open for it.
<rdar://problem/33744241> and https://bugs.webkit.org/show_bug.cgi?id=185653

Reviewed by Andy Estes.

Source/WebCore:

Test: storage/indexeddb/modern/worker-transaction-open-after-worker-stop.html

* Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::didStartTransaction): It's okay to not be able to find a pending TX
  that the server has started. e.g. When it was a WebWorker that asked for the TX but it has since terminated.

LayoutTests:

* storage/indexeddb/modern/resources/worker-transaction-open-after-worker-stop.js: Added.
(const.errorHandler):
(openRequest.onupgradeneeded):
(tx.oncomplete):
(openRequest.onsuccess):
(deleteRequest.onerror.deleteRequest.onblocked.deleteRequest.onsuccess):
* storage/indexeddb/modern/worker-transaction-open-after-worker-stop-expected.txt: Added.
* storage/indexeddb/modern/worker-transaction-open-after-worker-stop.html: Added.

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

2 years agoFix the Apple Internal build
dbates@webkit.org [Tue, 15 May 2018 19:04:22 +0000 (19:04 +0000)]
Fix the Apple Internal build

Make a similar change to WebKit as I did for LegacyWebKit in r231777. See <rdar://problem/40237873> for more details.

* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController enterFullScreen:]):
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
(-[WKFullScreenWindowController exitFullScreen]):
(-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
(-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]):
(-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):
(-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]):

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

2 years agoClear selections from web content with single tap
megan_gardner@apple.com [Tue, 15 May 2018 18:48:11 +0000 (18:48 +0000)]
Clear selections from web content with single tap
https://bugs.webkit.org/show_bug.cgi?id=185634

Reviewed by Tim Horton.

With the switch to the single text selection assistant, we were not correctly clearing the selection when a
single tap happened.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _singleTapCommited:]):

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

2 years agoUnreviewed, rolling out r231763.
ryanhaddad@apple.com [Tue, 15 May 2018 17:20:40 +0000 (17:20 +0000)]
Unreviewed, rolling out r231763.

The test added with this change is failing an assertion.

Reverted changeset:

"NSEvent event trackers don't work from WebKitTestRunner"
https://bugs.webkit.org/show_bug.cgi?id=185383
https://trac.webkit.org/changeset/231763

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

2 years agoTestWebKitAPI: Fix warnings found by new clang compiler
ddkilzer@apple.com [Tue, 15 May 2018 16:44:58 +0000 (16:44 +0000)]
TestWebKitAPI: Fix warnings found by new clang compiler
<https://webkit.org/b/185631>

Reviewed by Michael Catanzaro.

* TestWebKitAPI/Tests/WTF/NakedPtr.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/Poisoned.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/PoisonedRefPtr.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/RefPtr.cpp:
(TestWebKitAPI::TEST):
- Add #pragma statements to ignore the new
  -Wself-assign-overloaded warning and to ignore
  this as an unknown warning on older clang versions.  We want
  to keep these self assigments as this code is designed to test
  that use case.

* TestWebKitAPI/Tests/WebKit/FindMatches.mm:
(TestWebKitAPI::didFindStringMatches):
- Replace the "rect = rect;" statement that was used to avoid an
  unused variable warning with two expectations.

* TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
(-[PinnedStateObserver observeValueForKeyPath:ofObject:change:context:]):
- Switch from -integerValue to -unsignedIntegerValue when
  comparing against _WKRectEdgeAll since it's an enum declared
  as an NSUInteger.

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

2 years agoAdd test to verify behavior of -webkit-text-fill-color when inherited.
commit-queue@webkit.org [Tue, 15 May 2018 16:40:35 +0000 (16:40 +0000)]
Add test to verify behavior of -webkit-text-fill-color when inherited.
https://bugs.webkit.org/show_bug.cgi?id=185427

Patch by Aditya Keerthi <akeerthi@apple.com> on 2018-05-15
Reviewed by Daniel Bates.

* fast/css/webkit-text-fill-color-inherit-expected.html: Added.
* fast/css/webkit-text-fill-color-inherit.html: Added.

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

2 years agoAdd missing header to fix build.
mcatanzaro@igalia.com [Tue, 15 May 2018 16:29:15 +0000 (16:29 +0000)]
Add missing header to fix build.
https://bugs.webkit.org/show_bug.cgi?id=185378

Patch by Thomas Klausner <tk@giga.or.at> on 2018-05-15
Reviewed by Michael Catanzaro.

* platform/network/soup/SoupNetworkSession.h:

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

2 years ago[WPE] Build failure with RPi userland drivers and gstreamer-gl
clopez@igalia.com [Tue, 15 May 2018 15:14:12 +0000 (15:14 +0000)]
[WPE] Build failure with RPi userland drivers and gstreamer-gl
https://bugs.webkit.org/show_bug.cgi?id=185639

Reviewed by Philippe Normand.

When building for the RPi with userland drivers (dispmanx) override the
value of GST_GL_HAVE_GLSYNC to 1 to avoid that the gstreamer-gl headers
try to redefine the GLsync type that is already defined in libepoxy.

Defining __gl2_h_ is also needed to avoid other conflicting type
definitions that happen between libepoxy and RPi GLES2 userland
headers when the gstreamer-gl headers are included.

The issue doesn't happen with 1.14.0, so a check for that is added
as well.

No new tests, no behavior change. It is a build fix.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

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

2 years agoUnreviewed, rolling out r230749
mcatanzaro@igalia.com [Tue, 15 May 2018 14:24:10 +0000 (14:24 +0000)]
Unreviewed, rolling out r230749

This did not work as desired.

Source/WebCore:

* platform/UserAgentQuirks.cpp:
(WebCore::urlRequiresMacintoshPlatform):

Tools:

* TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
(TestWebKitAPI::TEST):

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

2 years agoAdd new SVGDOM SVGFEBLEND constants
krit@webkit.org [Tue, 15 May 2018 13:49:06 +0000 (13:49 +0000)]
Add new SVGDOM SVGFEBLEND constants
https://bugs.webkit.org/show_bug.cgi?id=185581

Reviewed by Simon Fraser.

Provide new SVG DOM constants for the new blend modes added to feBlend.

https://drafts.fxtf.org/filter-effects-1/#InterfaceSVGFEBlendElement

Source/WebCore:

* platform/graphics/GraphicsTypes.cpp:
(WebCore::blendModeName):
* platform/graphics/GraphicsTypes.h:
* svg/SVGFEBlendElement.h:
(WebCore::SVGPropertyTraits<BlendMode>::highestEnumValue):
(WebCore::SVGPropertyTraits<BlendMode>::toString):
* svg/SVGFEBlendElement.idl:

LayoutTests:

* svg/custom/js-svg-constructors-expected.txt:
* svg/custom/js-svg-constructors.svg:
* svg/dom/SVGAnimatedEnumeration-SVGFEBlendElement-expected.txt:
* svg/dom/SVGAnimatedEnumeration-SVGFEBlendElement.html:
* svg/dom/SVGAnimatedEnumeration-case-sensitive-expected.txt:
* svg/dom/SVGAnimatedEnumeration-case-sensitive.html:

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

2 years ago[Web Animations] Expose Web Animations CSS integration as an experimental feature
graouts@webkit.org [Tue, 15 May 2018 11:01:46 +0000 (11:01 +0000)]
[Web Animations] Expose Web Animations CSS integration as an experimental feature
https://bugs.webkit.org/show_bug.cgi?id=185647

Reviewed by Dean Jackson.

LayoutTests/imported/mozilla:

Change the name of the Web Animations CSS integration flag so that tests can opt into this feature.

* css-animations/test_animation-cancel.html:
* css-animations/test_animation-computed-timing.html:
* css-animations/test_animation-currenttime.html:
* css-animations/test_animation-finish.html:
* css-animations/test_animation-finished.html:
* css-animations/test_animation-id.html:
* css-animations/test_animation-pausing.html:
* css-animations/test_animation-playstate.html:
* css-animations/test_animation-ready.html:
* css-animations/test_animation-reverse.html:
* css-animations/test_animation-starttime.html:
* css-animations/test_animations-dynamic-changes.html:
* css-animations/test_cssanimation-animationname.html:
* css-animations/test_document-get-animations.html:
* css-animations/test_effect-target.html:
* css-animations/test_element-get-animations.html:
* css-animations/test_event-dispatch.html:
* css-animations/test_event-order.html:
* css-animations/test_keyframeeffect-getkeyframes.html:
* css-animations/test_pseudoElement-get-animations.html:
* css-animations/test_setting-effect.html:
* css-transitions/test_animation-cancel.html:
* css-transitions/test_animation-computed-timing.html:
* css-transitions/test_animation-currenttime.html:
* css-transitions/test_animation-finished.html:
* css-transitions/test_animation-pausing.html:
* css-transitions/test_animation-ready.html:
* css-transitions/test_animation-starttime.html:
* css-transitions/test_csstransition-transitionproperty.html:
* css-transitions/test_document-get-animations.html:
* css-transitions/test_effect-target.html:
* css-transitions/test_element-get-animations.html:
* css-transitions/test_event-dispatch.html:
* css-transitions/test_keyframeeffect-getkeyframes.html:
* css-transitions/test_pseudoElement-get-animations.html:
* css-transitions/test_setting-effect.html:

LayoutTests/imported/w3c:

Change the name of the Web Animations CSS integration flag so that tests can opt into this feature.

* web-platform-tests/css-timing-1/frames-timing-functions-output.html:
* web-platform-tests/web-animations/interfaces/Animation/ready.html:
* web-platform-tests/web-animations/timing-model/animations/playing-an-animation.html:
* web-platform-tests/web-animations/timing-model/animations/reversing-an-animation.html:

Source/WebCore:

Make the Web Animations CSS integration flag an experimental feature, and only indicate that it is on if the Web Animations
experimental feature is also enabled.

* dom/Document.cpp:
(WebCore::Document::didBecomeCurrentDocumentInFrame):
(WebCore::Document::resume):
* dom/Element.cpp:
(WebCore::Element::removedFromAncestor):
* dom/PseudoElement.cpp:
(WebCore::PseudoElement::clearHostElement):
* history/CachedFrame.cpp:
(WebCore::CachedFrameBase::restore):
* page/Frame.cpp:
(WebCore::Frame::clearTimers):
* page/FrameView.cpp:
(WebCore::FrameView::didDestroyRenderTree):
* page/Page.cpp:
(WebCore::Page::handleLowModePowerChange):
(WebCore::Page::setIsVisibleInternal):
(WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setWebAnimationsCSSIntegrationEnabled):
(WebCore::RuntimeEnabledFeatures::webAnimationsCSSIntegrationEnabled const):
(WebCore::RuntimeEnabledFeatures::setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::cssAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled const): Deleted.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::currentTransform const):
(WebCore::RenderLayer::calculateClipRects const):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGeometry):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForAnimation const):
(WebCore::RenderLayerCompositor::isRunningTransformAnimation const):
* rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::tearDownRenderers):
* style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::createAnimatedElementUpdate):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::webAnimationsCSSIntegrationEnabled):
(WebCore::InternalSettings::cssAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): Deleted.
* testing/InternalSettings.h:
* testing/InternalSettings.idl:
* testing/Internals.cpp:
(WebCore::Internals::numberOfActiveAnimations const):
(WebCore::Internals::animationsAreSuspended const):
(WebCore::Internals::animationsInterval const):
(WebCore::Internals::suspendAnimations const):
(WebCore::Internals::resumeAnimations const):

Source/WebKit:

Rename the Web Animations CSS integration flag.

* Shared/WebPreferences.yaml:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetWebAnimationsCSSIntegrationEnabled):
(WKPreferencesGetWebAnimationsCSSIntegrationEnabled):
(WKPreferencesSetCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): Deleted.
(WKPreferencesGetCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): Deleted.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _setWebAnimationsCSSIntegrationEnabled:]):
(-[WKPreferences _webAnimationsCSSIntegrationEnabled]):
(-[WKPreferences _setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled:]): Deleted.
(-[WKPreferences _cssAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled]): Deleted.
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
(WebKit::InjectedBundle::setWebAnimationsCSSIntegrationEnabled):
(WebKit::InjectedBundle::setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): Deleted.
* WebProcess/InjectedBundle/InjectedBundle.h:

Source/WebKitLegacy/mac:

Rename the Web Animations CSS integration flag.

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences webAnimationsCSSIntegrationEnabled]):
(-[WebPreferences setWebAnimationsCSSIntegrationEnabled:]):
(-[WebPreferences cssAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled]): Deleted.
(-[WebPreferences setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled:]): Deleted.
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Source/WebKitLegacy/win:

Rename the Web Animations CSS integration flag.

* Interfaces/IWebPreferencesPrivate.idl:
* WebPreferenceKeysPrivate.h:
* WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings):
(WebPreferences::webAnimationsCSSIntegrationEnabled):
(WebPreferences::setWebAnimationsCSSIntegrationEnabled):
(WebPreferences::cssAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): Deleted.
(WebPreferences::setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): Deleted.
* WebPreferences.h:
* WebView.cpp:
(WebView::notifyPreferencesChanged):

Tools:

Rename the Web Animations CSS integration flag.

* DumpRenderTree/TestOptions.cpp:
(TestOptions::TestOptions):
* DumpRenderTree/TestOptions.h:
* DumpRenderTree/mac/DumpRenderTree.mm:
(setWebPreferencesForTestOptions):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::updateTestOptionsFromTestHeader):
* WebKitTestRunner/TestOptions.h:
(WTR::TestOptions::hasSameInitializationOptions const):

LayoutTests:

Change the name of the Web Animations CSS integration flag so that tests can opt into this feature.

* animations/3d/matrix-transform-type-animation.html:
* animations/3d/replace-filling-transform.html:
* animations/3d/transform-origin-vs-functions.html:
* animations/3d/transform-perspective.html:
* animations/additive-transform-animations.html:
* animations/animation-border-overflow.html:
* animations/animation-callback-timestamp.html:
* animations/animation-controller-drt-api.html:
* animations/animation-direction-reverse-fill-mode-hardware.html:
* animations/animation-direction-reverse-hardware-opacity.html:
* animations/animation-direction-reverse-hardware.html:
* animations/animation-direction-reverse-non-hardware.html:
* animations/animation-direction-reverse-timing-functions-hardware.html:
* animations/animation-direction-reverse-timing-functions.html:
* animations/animation-direction.html:
* animations/animation-followed-by-transition.html:
* animations/animation-hit-test-transform.html:
* animations/animation-hit-test.html:
* animations/animation-offscreen-to-onscreen.html:
* animations/change-completed-animation-transform.html:
* animations/change-keyframes.html:
* animations/combo-transform-rotate+scale.html:
* animations/cross-fade-background-image.html:
* animations/cross-fade-border-image-source.html:
* animations/cross-fade-list-style-image.html:
* animations/cross-fade-webkit-mask-box-image.html:
* animations/duplicate-keys-expected.html:
* animations/duplicate-keys.html:
* animations/font-variations/font-stretch.html:
* animations/font-variations/font-style.html:
* animations/font-variations/font-variation-settings-order.html:
* animations/font-variations/font-variation-settings-unlike.html:
* animations/font-variations/font-variation-settings.html:
* animations/font-variations/font-weight.html:
* animations/generic-from-to.html:
* animations/import.html:
* animations/keyframe-multiple-timing-functions-transform.html:
* animations/keyframe-timing-functions-transform.html:
* animations/keyframe-timing-functions.html:
* animations/keyframe-timing-functions2.html:
* animations/keyframes-comma-separated.html:
* animations/keyframes-dynamic.html:
* animations/keyframes-infinite-iterations.html:
* animations/keyframes-invalid-keys.html:
* animations/keyframes-out-of-order.html:
* animations/keyframes.html:
* animations/lineheight-animation.html:
* animations/longhand-timing-function.html:
* animations/matrix-anim.html:
* animations/missing-from-to-transforms.html:
* animations/missing-from-to.html:
* animations/missing-keyframe-properties-repeating.html:
* animations/missing-keyframe-properties-timing-function.html:
* animations/missing-keyframe-properties.html:
* animations/missing-values-first-keyframe.html:
* animations/missing-values-last-keyframe.html:
* animations/multiple-animations-timing-function.html:
* animations/multiple-animations.html:
* animations/multiple-keyframes.html:
* animations/negative-delay.html:
* animations/pause-crash.html:
* animations/play-state-start-paused.html:
* animations/resources/animation-test-helpers.js:
(pauseAnimationAtTimeOnElement):
* animations/simultaneous-start-left.html:
* animations/simultaneous-start-transform.html:
* animations/spring-function.html:
* animations/stacking-context-unchanged-while-running.html:
* animations/timing-functions.html:
* animations/transition-and-animation-1.html:
* animations/transition-and-animation-2.html:
* animations/transition-and-animation-3.html:
* animations/unanimated-style.html:
* animations/unprefixed-keyframes.html:
* animations/width-using-ems.html:
* compositing/animation/animated-composited-inside-hidden.html:
* compositing/animation/computed-style-during-delay.html:
* compositing/animation/layer-for-filling-animation.html:
* compositing/backing/backface-visibility-flip.html:
* compositing/contents-scale/animating.html:
* compositing/layer-creation/animation-overlap-with-children.html:
* compositing/layer-creation/mismatched-rotated-transform-animation-overlap.html:
* compositing/layer-creation/multiple-keyframes-animation-overlap.html:
* compositing/layer-creation/overlap-animation-clipping.html:
* compositing/layer-creation/overlap-animation-container.html:
* compositing/layer-creation/overlap-animation.html:
* compositing/layer-creation/scale-rotation-animation-overlap.html:
* compositing/layer-creation/translate-animation-overlap.html:
* compositing/layer-creation/translate-scale-animation-overlap.html:
* compositing/overflow/overflow-positioning.html:
* compositing/reflections/animation-inside-reflection.html:
* compositing/reflections/nested-reflection-animated.html:
* compositing/reflections/nested-reflection-transition.html:
* compositing/transitions/scale-transition-no-start.html:
* compositing/transitions/singular-scale-transition.html:
* compositing/visible-rect/animated.html:
* css3/calc/transitions-dependent.html:
* css3/calc/transitions.html:
* css3/filters/backdrop/animation.html:
* css3/filters/composited-during-animation.html:
* css3/filters/filter-animation-from-none-hw.html:
* css3/filters/filter-animation-from-none-multi-hw.html:
* css3/filters/filter-animation-from-none-multi.html:
* css3/filters/filter-animation-from-none.html:
* css3/filters/filter-animation-hw.html:
* css3/filters/filter-animation-multi-hw.html:
* css3/filters/filter-animation-multi.html:
* css3/filters/filter-animation.html:
* css3/masking/clip-path-animation.html:
* fast/animation/css-animation-resuming-when-visible-with-style-change.html:
* fast/animation/css-animation-resuming-when-visible.html:
* fast/animation/css-animation-throttling-lowPowerMode.html:
* fast/css-generated-content/pseudo-animation.html:
* fast/filter-image/filter-image-animation.html:
* fast/shapes/shape-outside-floats/shape-outside-animation.html:
* fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html:
* fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation.html:
* imported/blink/transitions/unprefixed-transform.html:
* transitions/background-position-transitions.html:
* transitions/background-transitions.html:
* transitions/blendmode-transitions.html:
* transitions/border-radius-transition.html:
* transitions/clip-path-path-transitions.html:
* transitions/clip-path-transitions.html:
* transitions/clip-transition.html:
* transitions/color-transition-all.html:
* transitions/color-transition-premultiplied.html:
* transitions/color-transition-rounding.html:
* transitions/cross-fade-background-image.html:
* transitions/cross-fade-border-image.html:
* transitions/cubic-bezier-overflow-color.html:
* transitions/cubic-bezier-overflow-length.html:
* transitions/cubic-bezier-overflow-shadow.html:
* transitions/cubic-bezier-overflow-svg-length.html:
* transitions/cubic-bezier-overflow-transform.html:
* transitions/default-timing-function.html:
* transitions/delay.html:
* transitions/flex-transitions.html:
* transitions/font-family-during-transition.html:
* transitions/frames-timing-function.html:
* transitions/interrupted-all-transition.html:
* transitions/longhand-vs-shorthand-initial.html:
* transitions/mask-transitions.html:
* transitions/min-max-width-height-transitions.html:
* transitions/mismatched-shadow-styles.html:
* transitions/mismatched-shadow-transitions.html:
* transitions/mixed-type.html:
* transitions/move-after-transition.html:
* transitions/multiple-background-size-transitions.html:
* transitions/multiple-background-transitions.html:
* transitions/multiple-mask-transitions.html:
* transitions/multiple-shadow-transitions.html:
* transitions/negative-delay.html:
* transitions/opacity-transition-zindex.html:
* transitions/resources/transition-test-helpers.js:
* transitions/shape-outside-transitions.html:
* transitions/shorthand-border-transitions.html:
* transitions/shorthand-transitions.html:
* transitions/steps-timing-function.html:
* transitions/svg-layout-transition.html:
* transitions/svg-text-shadow-transition.html:
* transitions/svg-transitions.html:
* transitions/text-indent-transition.html:
* transitions/transform-op-list-match.html:
* transitions/transform-op-list-no-match.html:
* transitions/transition-end-event-rendering.html:
* transitions/transition-hit-test-transform.html:
* transitions/transition-hit-test.html:
* transitions/transition-in-delay-phase.html:
* transitions/transition-on-element-with-content.html:
* transitions/transition-shorthand-delay.html:
* transitions/transition-timing-function.html:
* transitions/transition-to-from-auto.html:
* transitions/transition-to-from-undefined.html:
* transitions/visited-link-color.html:
* transitions/zero-duration-in-list.html:
* transitions/zero-duration-with-non-zero-delay-start.html:
* webanimations/css-animations.html:
* webanimations/css-transitions.html:

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

2 years agoUpdate animation when presenting QuickLook
dino@apple.com [Tue, 15 May 2018 10:36:07 +0000 (10:36 +0000)]
Update animation when presenting QuickLook
https://bugs.webkit.org/show_bug.cgi?id=185648
<rdar://problem/39652624>

Reviewed by Antoine Quint.

Implement the QuickLook delegate on _WKPreviewControllerDelegate that
produces a zoom-like animation when the QLPreviewController appears.

* UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
(-[_WKPreviewControllerDelegate previewController:frameForPreviewItem:inSourceView:]):
* UIProcess/SystemPreviewController.h: Add a reference back to the page, so that
the delegate implementation can access the presentingViewController.
(WebKit::SystemPreviewController::page):

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

2 years agoFix -Wreturn-std-move warnings in WebKit found by new clang compiler
ddkilzer@apple.com [Tue, 15 May 2018 10:24:24 +0000 (10:24 +0000)]
Fix -Wreturn-std-move warnings in WebKit found by new clang compiler
<https://webkit.org/b/185621>

Reviewed by Youenn Fablet.

Fix warnings like the following:

    In file included from DerivedSources/WebCore/unified-sources/UnifiedSource139.cpp:5:
    ./Modules/mediastream/PeerConnectionBackend.cpp:412:16: error: local variable 'sdp' will be copied despite being returned by name [-Werror,-Wreturn-std-move]
            return sdp;
                   ^~~
    ./Modules/mediastream/PeerConnectionBackend.cpp:412:16: note: call 'std::move' explicitly to avoid copying
            return sdp;
                   ^~~
                   std::move(sdp)
    1 error generated.

* Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::PeerConnectionBackend::filterSDP const):
* accessibility/AccessibilityObject.cpp:
(WebCore::rangeClosestToRange):
* bindings/js/JSDOMConvertSequences.h:
(WebCore::Detail::GenericSequenceConverter::convert):
(WebCore::Detail::NumericSequenceConverter::convertArray):
* bindings/js/JSDOMConvertStrings.cpp:
(WebCore::stringToByteString):
(WebCore::stringToUSVString):
- Use WTFMove() in return statements to fix the warnings.

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

2 years agoDownload and present System Preview
dino@apple.com [Tue, 15 May 2018 09:50:07 +0000 (09:50 +0000)]
Download and present System Preview
https://bugs.webkit.org/show_bug.cgi?id=185459
<rdar://problem/40079228>

Reviewed by Tim Horton.

Source/WebCore:

If an <a> is a system preview, tell the resource request about it.

* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::handleClick):

Source/WebKit:

Extend DownloadClient so that it can handle the case where
the download was triggered by a System Preview. In this situation
the result (and progress) are piped into QuickLook via the SystemPreviewController.

The DownloadProxy class is also extended to handle the destination
filename and the size of the content.

Lastly, SystemPreviewController is updated to have a start(), show()
and cancel() interface, and no longer adjusts page navigation.

* UIProcess/Cocoa/DownloadClient.h:
* UIProcess/Cocoa/DownloadClient.mm: Handle the SystemPreview case, which
doesn't have a download delegate, but instead needs to communicate with
the SystemPreviewController, if one exists.
(WebKit::DownloadClient::didStart):
(WebKit::DownloadClient::didReceiveResponse):
(WebKit::DownloadClient::didReceiveData):
(WebKit::DownloadClient::didCreateDestination):
(WebKit::DownloadClient::processDidCrash):
(WebKit::DownloadClient::decideDestinationWithSuggestedFilename):
(WebKit::DownloadClient::didFinish):
(WebKit::DownloadClient::didFail):
(WebKit::DownloadClient::didCancel):
(WebKit::DownloadClient::releaseActivityToken):

* UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: Implement the new API.
(-[_WKPreviewControllerDataSource initWithMIMEType:]):
(-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]):
(-[_WKPreviewControllerDataSource setProgress:]):
(-[_WKPreviewControllerDataSource finish:]):
(-[_WKPreviewControllerDelegate previewControllerDidDismiss:]):
(WebKit::SystemPreviewController::start):
(WebKit::SystemPreviewController::updateProgress):
(WebKit::SystemPreviewController::finish):
(WebKit::SystemPreviewController::cancel):
(-[_WKPreviewControllerDataSource initWithURL:]): Deleted.
(-[_WKPreviewControllerDelegate previewControllerWillDismiss:]): Deleted.
(WebKit::SystemPreviewController::canPreview const): Deleted.
(WebKit::SystemPreviewController::showPreview): Deleted.
* UIProcess/Downloads/DownloadProxy.h: Track the destination file by name
and size. Also expose a helper to identify system preview downloads.
(WebKit::DownloadProxy::destinationFilename const):
(WebKit::DownloadProxy::setDestinationFilename):
(WebKit::DownloadProxy::expectedContentLength const):
(WebKit::DownloadProxy::setExpectedContentLength):
(WebKit::DownloadProxy::bytesLoaded const):
(WebKit::DownloadProxy::setBytesLoaded):
(WebKit::DownloadProxy::isSystemPreviewDownload const):

* UIProcess/SystemPreviewController.cpp: New API.
(WebKit::SystemPreviewController::canPreview const):
(WebKit::SystemPreviewController::sendPageBack): Deleted.
(WebKit::SystemPreviewController::showPreview): Deleted.
* UIProcess/SystemPreviewController.h:

* UIProcess/WebPageProxy.cpp:
(WebKit::m_configurationPreferenceValues):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::resetState):
* UIProcess/WebPageProxy.h:

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

2 years agoanimation-play-state: paused causes very high cpu load because of style invalidation...
antti@apple.com [Tue, 15 May 2018 08:59:53 +0000 (08:59 +0000)]
animation-play-state: paused causes very high cpu load because of style invalidation loop
https://bugs.webkit.org/show_bug.cgi?id=182436
<rdar://problem/37182562>

Reviewed by Dean Jackson.

Source/WebCore:

Test: animations/animation-playstate-paused-style-resolution.html

If the style of an element with 'animation-play-state: paused' is recomputed so it stays
paused we would enter zero-duration animation timer loop.

* page/animation/AnimationBase.cpp:
(WebCore::AnimationBase::updateStateMachine):

Don't move to AnimationState::PausedWaitResponse unless we get AnimationStateInput::StyleAvailable
(matching the comments). Otherwise just stay in the existing paused state.

Remove AnimationStateInput::StartAnimation from assertion as the case can't happen.

LayoutTests:

* animations/animation-playstate-paused-style-resolution-expected.txt: Added.
* animations/animation-playstate-paused-style-resolution.html: Added.

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

2 years agoreadableStreamDefaultControllerError should return early if stream is not readable
youenn@apple.com [Tue, 15 May 2018 05:35:25 +0000 (05:35 +0000)]
readableStreamDefaultControllerError should return early if stream is not readable
https://bugs.webkit.org/show_bug.cgi?id=185602

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

* web-platform-tests/streams/readable-streams/bad-underlying-sources-expected.txt:
* web-platform-tests/streams/readable-streams/bad-underlying-sources.dedicatedworker-expected.txt:
* web-platform-tests/streams/readable-streams/bad-underlying-sources.serviceworker.https-expected.txt:
* web-platform-tests/streams/readable-streams/garbage-collection-expected.txt:
* web-platform-tests/streams/readable-streams/garbage-collection.dedicatedworker-expected.txt:
* web-platform-tests/streams/readable-streams/garbage-collection.serviceworker.https-expected.txt:
* web-platform-tests/streams/readable-streams/tee-expected.txt:

Source/WebCore:

Return early if stream is not readable in @readableStreamDefaultControllerError.
Update call sites to no longer check for ReadableStream state.
Covered by unflaked and rebased tests.

* Modules/streams/ReadableStreamDefaultController.js:
(error):
* Modules/streams/ReadableStreamInternals.js:
(readableStreamDefaultControllerError):
(readableStreamDefaultControllerCallPullIfNeeded):

LayoutTests:

* TestExpectations:

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

2 years agoimported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-6.html...
youenn@apple.com [Tue, 15 May 2018 05:31:49 +0000 (05:31 +0000)]
imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-6.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=185549

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Catch any potential rejected promise.

* web-platform-tests/fetch/api/response/response-stream-disturbed-6.html:

LayoutTests:

* TestExpectations:

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

2 years agoRemove butterflyMask from DFGAbstractHeap
keith_miller@apple.com [Tue, 15 May 2018 05:27:29 +0000 (05:27 +0000)]
Remove butterflyMask from DFGAbstractHeap
https://bugs.webkit.org/show_bug.cgi?id=185640

Reviewed by Saam Barati.

We don't have a butterfly indexing mask anymore so we don't need
the abstract heap information for it anymore.

* dfg/DFGAbstractHeap.h:
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):

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

2 years ago[LFC] Implement width computation for non-replaced block level inflow elements.
zalan@apple.com [Tue, 15 May 2018 05:23:28 +0000 (05:23 +0000)]
[LFC] Implement width computation for non-replaced block level inflow elements.
https://bugs.webkit.org/show_bug.cgi?id=185641

Reviewed by Sam Weinig.

Block level inflow elements participate in block formatting context.

* layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeWidth const):
* layout/FormattingContext.h:
* layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::computeInFlowWidth const):
* layout/blockformatting/BlockFormattingContext.h:
* layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeInFlowWidth const):
* layout/inlineformatting/InlineFormattingContext.h:

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

2 years agoAdd an API test to guard against regressions while re-entering setDefersLoading:.
beidson@apple.com [Tue, 15 May 2018 03:09:19 +0000 (03:09 +0000)]
Add an API test to guard against regressions while re-entering setDefersLoading:.
<rdar://problem/37033737> and https://bugs.webkit.org/show_bug.cgi?id=185630

Reviewed by Chris Dumez.

Source/WebKit:

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setDefersLoadingForTesting:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setDefersLoadingForTesting):
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.messages.in:

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/DoubleDefersLoading.mm: Added.
(-[DoubleDefersNavigationDelegate _webView:navigation:didSameDocumentNavigation:]):
(-[DoubleDefersNavigationDelegate webView:didFinishNavigation:]):
(-[DefersScheme initWithBytes:]):
(-[DefersScheme webView:startURLSchemeTask:]):
(-[DefersScheme webView:stopURLSchemeTask:]):
* TestWebKitAPI/Tests/WebKitCocoa/DoubleDefersLoadingPlugin.mm: Added.
(-[DoubleDefersLoadingPlugIn webProcessPlugIn:didCreateBrowserContextController:]):
(-[DoubleDefersLoadingPlugIn webProcessPlugInBrowserContextController:didSameDocumentNavigation:forFrame:]):
(-[DoubleDefersLoadingPlugIn dealloc]):

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

2 years agoUnreviewed, fix the iOS build after r231779
wenson_hsieh@apple.com [Tue, 15 May 2018 03:00:27 +0000 (03:00 +0000)]
Unreviewed, fix the iOS build after r231779

Also address a minor in-person review comment by returning "extrazoom" instead of the empty string.

* page/DisabledAdaptations.cpp:
(WebCore::extraZoomModeAdaptationName):

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

2 years agoUse the system font by default in extra zoom mode
timothy_horton@apple.com [Tue, 15 May 2018 02:24:59 +0000 (02:24 +0000)]
Use the system font by default in extra zoom mode
https://bugs.webkit.org/show_bug.cgi?id=185638
<rdar://problem/40230277>

Reviewed by Wenson Hsieh.

* Shared/WebPreferencesDefaultValues.h:

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

2 years agoWeb Inspector: Canvas: Remove unused --value-visual-highlight CSS variable
nvasilyev@apple.com [Tue, 15 May 2018 01:52:26 +0000 (01:52 +0000)]
Web Inspector: Canvas: Remove unused --value-visual-highlight CSS variable
https://bugs.webkit.org/show_bug.cgi?id=185636

Reviewed by Matt Baker.

* UserInterface/Views/Variables.css:
(:root):

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

2 years agoUnreviewed, rolling out r231755.
mcatanzaro@igalia.com [Tue, 15 May 2018 01:44:26 +0000 (01:44 +0000)]
Unreviewed, rolling out r231755.

Change is not correct

Reverted changeset:

"-Wmemset-elt-size warning in LibWebRTCSocket constructor"
https://bugs.webkit.org/show_bug.cgi?id=185555
https://trac.webkit.org/changeset/231755

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

2 years ago[LFC] FormattingContext:computeOutOfFlowNonReplacedHeight/Width should use the comput...
zalan@apple.com [Tue, 15 May 2018 01:31:21 +0000 (01:31 +0000)]
[LFC] FormattingContext:computeOutOfFlowNonReplacedHeight/Width should use the computed margins/paddings/borders
https://bugs.webkit.org/show_bug.cgi?id=185633

Reviewed by Sam Weinig.

By the time we start computing height and width, DisplayBox should already have the computed values for margin/padding/border.

* layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeOutOfFlowNonReplacedHeight const):
(WebCore::Layout::FormattingContext::computeOutOfFlowNonReplacedWidth const):
* layout/displaytree/DisplayBox.h:
(WebCore::Display::Box::paddingTop const):
(WebCore::Display::Box::paddingLeft const):
(WebCore::Display::Box::paddingBottom const):
(WebCore::Display::Box::paddingRight const):
(WebCore::Display::Box::borderTop const):
(WebCore::Display::Box::borderLeft const):
(WebCore::Display::Box::borderBottom const):
(WebCore::Display::Box::borderRight const):

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

2 years ago[Extra zoom mode] Google search results are excessively zoomed in
wenson_hsieh@apple.com [Tue, 15 May 2018 01:07:36 +0000 (01:07 +0000)]
[Extra zoom mode] Google search results are excessively zoomed in
https://bugs.webkit.org/show_bug.cgi?id=185347
<rdar://problem/39999778>

Reviewed by Tim Horton.

Source/WebCore:

It turns out that basing minimum layout size and shrink-to-fit behaviors off of the `shrink-to-fit` viewport
argument poses compatibility risks with web pages that already specify `shrink-to-fit` to opt out of default
viewport shrinking behaviors in 1/3 multitasking mode on iPad.

One way to resolve this is to introduce a new viewport meta content attribute to disable viewport heuristics in
extra zoom mode. However, combined shrink-to-fit and minimum device width behaviors are difficult to describe
using a single backwards-compatible viewport meta content attribute, and the need to suppress the default
behavior of `shrink-to-fit=no` if such an attribute is not disabled further muddles our viewport story.

After some internal deliberation, we’ve decided to experiment with a new meta tag named "disabled-adaptations".
The content of this meta tag is a comma-separated list of adaptation names; if an adaptation name matches a
known adaptation type (for instance, extra zoom mode), we disable the class of behaviors used to adapt web
content. The first and only known adaptation type is extra zoom mode, which affects `shrink-to-fit` and layout
size adjustments.

See per-method changes below for more details.

Test: fast/viewport/extrazoom/viewport-disable-extra-zoom-adaptations.html

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* dom/Document.cpp:
(WebCore::Document::processDisabledAdaptations):
* dom/Document.h:
(WebCore::Document::disabledAdaptations const):

Add disabled adaptations to Document. Changes to disabled adaptations are not propagated if the parsed disabled
adaptation types don't change; upon changing adaptation types, notify the client to adjust for the new disabled
adaptations (currently, this only affects the viewport configuration).

* dom/ViewportArguments.h:
* html/HTMLMetaElement.cpp:
(WebCore::HTMLMetaElement::process):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::StartTagScanner::StartTagScanner):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad):

Restore the set of disabled adaptations when restoring a page from the cache.

* page/Chrome.cpp:
(WebCore::Chrome::dispatchDisabledAdaptationsDidChange const):
* page/Chrome.h:
* page/ChromeClient.h:

Add plumbing for changes to the set of disabled adaptations.

* page/DisabledAdaptations.cpp: Added.
(WebCore::extraZoomModeAdaptationName):
* page/DisabledAdaptations.h: Added.

Introduce a header containing a new enum for the extra zoom mode adaptation, as well as a helper function to
return the extra zoom mode adaptation name.

* page/Page.cpp:
(WebCore::Page::disabledAdaptations const):

Returns the mainframe's set of adaptations to disable.

* page/Page.h:
* page/RemoteFrame.h:
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setDisabledAdaptationsMetaTagEnabled):
(WebCore::RuntimeEnabledFeatures::disabledAdaptationsMetaTagEnabled const):

Add a new runtime feature to gate handling the "disabled-adaptations" meta tag.

* page/ViewportConfiguration.cpp:
(WebCore::shouldOverrideShrinkToFitArgument):
(WebCore::needsUpdateAfterChangingDisabledAdaptations):
(WebCore::ViewportConfiguration::setDisabledAdaptations):
(WebCore::ViewportConfiguration::shouldOverrideDeviceWidthAndShrinkToFit const):

Consult whether or not extra zoom mode adaptations are disabled, instead of the shrink-to-fit attribute value.

(WebCore::ViewportConfiguration::updateConfiguration):
* page/ViewportConfiguration.h:

Add an OptionSet of disabled adaptation types to ViewportConfiguration. Updates to the adaptation type are
propagated to the ViewportConfiguration from Document, through the ChromeClient and the client layer (refer to
changes in WebKit). Once the OptionSet is changed, we recompute the viewport configuration only if needed by the
platform.

(WebCore::ViewportConfiguration::viewLayoutSize const):
(WebCore::ViewportConfiguration::disabledAdaptations const):
* page/WindowFeatures.cpp:
(WebCore::parseDisabledAdaptations):
* page/WindowFeatures.h:

Add a new helper to parse the meta content of a "disabled-adaptations" tag as an OptionSet of disabled
adaptation types. The string is parsed by first splitting on the comma character, and then iterating over lower
case, whitespace-stripped tokens to look for known adaptation names. So far, only extra zoom mode is supported.

* testing/Internals.cpp:
(WebCore::Internals::extraZoomModeAdaptationName const):
* testing/Internals.h:
* testing/Internals.idl:

Expose the extra zoom mode adaptation name to the DOM, only when running layout tests.

Source/WebKit:

Adds a new experimental feature for the "disabled-adaptations" meta tag, and adds plumbing in WebKit to
propagate disabled adaptation changes to the ViewportConfiguration. The experimental feature is on by default in
extra zoom mode.

* Shared/WebPreferences.yaml:
* Shared/WebPreferencesDefaultValues.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::dispatchDisabledAdaptationsDidChange const):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::disabledAdaptationsDidChange):
* WebProcess/WebPage/WebPage.h:

Source/WebKitLegacy/ios:

Adds a WebKitLegacy method stub for disabled adaptation plumbing.

* WebCoreSupport/WebChromeClientIOS.h:
* WebCoreSupport/WebChromeClientIOS.mm:
(WebChromeClientIOS::dispatchDisabledAdaptationsDidChange const):

LayoutTests:

Refactor an existing layout test to exercise disabled adaptations in extra zoom mode.

* fast/viewport/extrazoom/viewport-change-min-device-width.html: Removed.
* fast/viewport/extrazoom/viewport-disable-extra-zoom-adaptations.html: Added.

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

2 years agoAX: Listbox and Combobox roles embedded in labels should participate in name calculation
jdiggs@igalia.com [Tue, 15 May 2018 00:32:06 +0000 (00:32 +0000)]
AX: Listbox and Combobox roles embedded in labels should participate in name calculation
https://bugs.webkit.org/show_bug.cgi?id=185521

Reviewed by Chris Fleizach.

Source/WebCore:

Take selected children into account when computing the name in accessibleNameForNode.
Add ListBox to the roles for which accessibleNameDerivesFromContent returns false so
that native select elements with size > 1 are treated the same way as ARIA listbox.
Also add ListBox to the roles which are treated as controls when used in ARIA. Finally,
prevent labels which contain unrelated controls from being used as an AXTitleUIElement.
This causes us to build a string from the label and its descendants, ensuring the latter
participate in the name calculation.

Test: accessibility/text-alternative-calculation-from-listbox.html

* accessibility/AccessibilityLabel.cpp:
(WebCore::childrenContainUnrelatedControls):
(WebCore::AccessibilityLabel::containsUnrelatedControls const):
* accessibility/AccessibilityLabel.h:
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::accessibleNameForNode):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::accessibleNameDerivesFromContent const):
(WebCore::AccessibilityObject::isARIAControl):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::exposesTitleUIElement const):
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):

LayoutTests:

* accessibility/label-with-pseudo-elements-expected.txt: Updated for new behavior.
* accessibility/text-alternative-calculation-from-listbox-expected.txt: Added.
* accessibility/text-alternative-calculation-from-listbox.html: Added.
* platform/mac/accessibility/label-with-pseudo-elements-expected.txt: Updated for new behavior.
* platform/win/accessibility/label-with-pseudo-elements-expected.txt: Updated for new behavior.

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

2 years agoFix the Apple Internal build
dbates@webkit.org [Mon, 14 May 2018 23:34:06 +0000 (23:34 +0000)]
Fix the Apple Internal build

See <rdar://problem/40237873> for more details.

* WebView/WebFullScreenController.mm:
(-[WebFullScreenController enterFullScreen:]):
(-[WebFullScreenController finishedEnterFullScreenAnimation:]):
(-[WebFullScreenController exitFullScreen]):
(-[WebFullScreenController finishedExitFullScreenAnimation:]):
(-[WebFullScreenController _startEnterFullScreenAnimationWithDuration:]):
(-[WebFullScreenController _startExitFullScreenAnimationWithDuration:]):

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

2 years ago[iOS] Add a test to ensure that setTimeout() does not fire more than expected when...
dbates@webkit.org [Mon, 14 May 2018 23:19:29 +0000 (23:19 +0000)]
[iOS] Add a test to ensure that setTimeout() does not fire more than expected when using UIWebView
https://bugs.webkit.org/show_bug.cgi?id=185599
<rdar://problem/22493890>

Reviewed by Simon Fraser.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/ios/SetTimeoutFunction.mm: Added.
(-[SetTimeoutFunctionWebViewDelegate webViewDidFinishLoad:]):
(-[SetTimeoutFunctionWebViewDelegate webView:didFailLoadWithError:]):
(-[SetTimeoutFunctionWebViewDelegate webView:shouldStartLoadWithRequest:navigationType:]):
(TestWebKitAPI::TEST):
* TestWebKitAPI/ios/set-timeout-function.html: Added.

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

2 years agotest262/Runner.pm: small bugs in CLI and error codes
commit-queue@webkit.org [Mon, 14 May 2018 23:18:17 +0000 (23:18 +0000)]
test262/Runner.pm: small bugs in CLI and error codes
https://bugs.webkit.org/show_bug.cgi?id=185629

Patch by Valerie R Young <valerie@bocoup.com> on 2018-05-14
Reviewed by Michael Saboff.

Fix two commandline args with use '-f', correct
error code of failures.

* Scripts/test262/Runner.pm:
(processCLI):
(main):

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

2 years agoDisable API tests that time out after pointer poisioning was disabled.
ryanhaddad@apple.com [Mon, 14 May 2018 23:16:05 +0000 (23:16 +0000)]
Disable API tests that time out after pointer poisioning was disabled.
https://bugs.webkit.org/show_bug.cgi?id=185586

Unreviewed test gardening.

* TestWebKitAPI/Tests/WTF/Poisoned.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/PoisonedUniquePtr.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForNonTriviallyDestructibleArrays.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForTriviallyDestructibleArrays.cpp:
(TestWebKitAPI::TEST):

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

2 years agoWeb Inspector: Canvas tab: don't automatically select a recording when viewing a...
webkit@devinrousso.com [Mon, 14 May 2018 23:01:25 +0000 (23:01 +0000)]
Web Inspector: Canvas tab: don't automatically select a recording when viewing a canvas
https://bugs.webkit.org/show_bug.cgi?id=182950

Reviewed by Matt Baker.

* UserInterface/Views/CanvasSidebarPanel.js:
(WI.CanvasSidebarPanel):
(WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange):
(WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
(WI.CanvasSidebarPanel.prototype._canvasChanged):
(WI.CanvasSidebarPanel.prototype._recordingChanged):
(WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
Add a "dummy" ScopeBarItem to the recording ScopeBar that is selected whenever a TreeElement
that doesn't correspond to a Recording is selected. This way, the Recording ScopeBar will
become deselected, and the list of actions will disappear. Clicking on the Recording ScopeBar
will show the previously selected Recording.

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

2 years ago[INTL] Handle error in defineProperty for supported locales length
commit-queue@webkit.org [Mon, 14 May 2018 22:38:26 +0000 (22:38 +0000)]
[INTL] Handle error in defineProperty for supported locales length
https://bugs.webkit.org/show_bug.cgi?id=185623

Patch by Andy VanWagoner <andy@vanwagoner.family> on 2018-05-14
Reviewed by Saam Barati.

Adds the missing RETURN_IF_EXCEPTION after defineOwnProperty for the
length of the supported locales array.

* runtime/IntlObject.cpp:
(JSC::supportedLocales):

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

2 years agoOverly aggressive timer throttling in service workers
cdumez@apple.com [Mon, 14 May 2018 22:31:40 +0000 (22:31 +0000)]
Overly aggressive timer throttling in service workers
https://bugs.webkit.org/show_bug.cgi?id=185575
<rdar://problem/40219038>

Reviewed by Geoff Garen.

After ~30 seconds, the system would put the service worker process in "App Nap",
causing its timers to get aggressively throttled. This happens because the
service worker processes are WebProcesses that have no visible WebPages.

To address the issue, we now disable process suppression for all service worker
processes. This causes those processes to construct a UserActivity which prevents
App Nap.

This patch also refactors the code a bit to avoid duplication. The ProcessSuppression
suppression logic in now all on ChildProcessProxy / ChildProcess.

* NetworkProcess/NetworkProcess.messages.in:
* PluginProcess/PluginProcess.messages.in:
* Shared/ChildProcess.messages.in:
* UIProcess/ChildProcessProxy.cpp:
(WebKit::ChildProcessProxy::setProcessSuppressionEnabled):
* UIProcess/ChildProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Network/mac/NetworkProcessProxyMac.mm: Removed.
* UIProcess/Plugins/PluginProcessProxy.h:
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
* UIProcess/ServiceWorkerProcessProxy.cpp:
(WebKit::ServiceWorkerProcessProxy::didFinishLaunching):
* UIProcess/ServiceWorkerProcessProxy.h:
* UIProcess/WebProcessProxy.h:
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/WebProcess.messages.in:

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

2 years ago[Wi-Fi Assertions] Allow clients to specify a context identifier
aestes@apple.com [Mon, 14 May 2018 22:14:40 +0000 (22:14 +0000)]
[Wi-Fi Assertions] Allow clients to specify a context identifier
https://bugs.webkit.org/show_bug.cgi?id=185620
<rdar://problem/39915196>

Reviewed by Brady Eidson.

Added an SPI on _WKProcessPoolConfiguration that allows clients to specify a
context identifier.

* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration wirelessContextIdentifier]):
(-[_WKProcessPoolConfiguration setWirelessContextIdentifier:]):
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):

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

2 years agoWeb Automation: Automation.getBrowsingContext returns window origin that differs...
bburg@apple.com [Mon, 14 May 2018 21:26:51 +0000 (21:26 +0000)]
Web Automation: Automation.getBrowsingContext returns window origin that differs from window.screenX/Y
https://bugs.webkit.org/show_bug.cgi?id=185571
<rdar://problem/40180785>

Reviewed by Timothy Hatcher.

This code path was refactored to use completion handlers. It seems that the window.screenX/Y
code path converts back to user coordinates but the WebDriver code path does not. Make them
consistent since that is how it is spec'd and tested.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::getWindowFrameWithCallback):
Convert the window frame to user coordinate space so it's the same as window.screenY.

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

2 years agoTest262-Runner: Fix RegExp for capturing tests metadata"
commit-queue@webkit.org [Mon, 14 May 2018 21:19:28 +0000 (21:19 +0000)]
Test262-Runner: Fix RegExp for capturing tests metadata"
https://bugs.webkit.org/show_bug.cgi?id=185622

Patch by Leo Balter <leonardo.balter@gmail.com> on 2018-05-14
Reviewed by Michael Saboff.

This patch fixes the RegExp used to capture each test metadata regarding their EOL characters for
both LF and CRLF forms.

The fix also allows the runner to capture the proper results from two specific files using CR and
CRLF line terminators. They are updated in the expectations file.
* Scripts/test262/Runner.pm:
(parseData):

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

2 years agoWebDriver: W3C test case actions/key.py::test_lone_keyup_sends_no_events is failing
bburg@apple.com [Mon, 14 May 2018 19:09:12 +0000 (19:09 +0000)]
WebDriver: W3C test case actions/key.py::test_lone_keyup_sends_no_events is failing
https://bugs.webkit.org/show_bug.cgi?id=185577
<rdar://problem/40185478>

Reviewed by Timothy Hatcher.

This test is failing because it expects Release Actions to not emit any
events if nothing has changed from the initial state. Because the two code paths
for creating empty states don't actually produce the same empty state, a difference
in location was detected between the two empty states. This generates a mousemove.

To fix this, unify the code that creates an empty state. For mouse input sources, always
initialize the location to (0, 0) so that the mouse input source always has
a location that is valid to click at.

* UIProcess/Automation/SimulatedInputDispatcher.h:
Extract the type enum out of the class to avoid circular definitions of
SimulatedInputSource and SimulatedInputSourceState.

* UIProcess/Automation/SimulatedInputDispatcher.cpp:
(WebKit::SimulatedInputSourceState::emptyStateForSourceType):
Take the input source type when generating an empty state. We always want location
set for a mouse input source, but not set it for other input sources like keys.

(WebKit::SimulatedInputKeyFrame::keyFrameToResetInputSources):
(WebKit::SimulatedInputDispatcher::transitionInputSourceToState):
(WebKit::SimulatedInputSource::create):
(WebKit::SimulatedInputSource::SimulatedInputSource):
(WebKit::SimulatedInputSourceState::emptyState): Deleted.
* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::WebAutomationSession):
(WebKit::WebAutomationSession::inputSourceForType const):
(WebKit::simulatedInputSourceTypeFromProtocolSourceType):
(WebKit::WebAutomationSession::performInteractionSequence):
* UIProcess/Automation/WebAutomationSession.h:

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

2 years ago[Web Animations] Tests using the new animation engine may crash under WebCore::FrameV...
graouts@webkit.org [Mon, 14 May 2018 18:19:30 +0000 (18:19 +0000)]
[Web Animations] Tests using the new animation engine may crash under WebCore::FrameView::didDestroyRenderTree when using internals methods
https://bugs.webkit.org/show_bug.cgi?id=185612
<rdar://problem/39579344>

Reviewed by Dean Jackson.

Source/WebCore:

Add a new internals.pseudoElement() method to obtain a pseudo element matching a given pseudo-id. This is necessary to be able to move off
internals.pauseTransitionAtTimeOnPseudoElement() and internals.pauseAnimationAtTimeOnPseudoElement() for Web Animations testing.

* testing/Internals.cpp:
(WebCore::Internals::pseudoElement):
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

Some tests that were opting into the new animation engine were using internals methods (pauseAnimationAtTimeOnElement, pauseTransitionAtTimeOnElement, etc.)
that enforce the creation of animations in the old animation engine. Meanwhile, the code that toggles the animation engine used based on HTML comments is run
prior to teardown of the previous test and so a test running with the new engine would run with the legacy engine during teardown. These two factors would
cause `ASSERT(!frame().animation().hasAnimations())` to fail under FrameView::didDestroyRenderTree().

We update tests that use these internals method to use the Web Animations API instead and opt into the new animation engine if they didn't already do that.

* animations/animation-hit-test-transform.html:
* animations/keyframes-dynamic-expected.txt:
* animations/keyframes-dynamic.html:
* animations/missing-from-to-expected.txt:
* animations/missing-from-to-transforms-expected.txt:
* animations/missing-from-to-transforms.html:
* animations/missing-from-to.html:
* fast/css-generated-content/pseudo-animation.html:
* transitions/transition-hit-test-transform.html:

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

2 years agoREGRESSION (r230574): Interrupted hardware transitions don't behave correctly
graouts@webkit.org [Mon, 14 May 2018 18:15:57 +0000 (18:15 +0000)]
REGRESSION (r230574): Interrupted hardware transitions don't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=185299
<rdar://problem/39630230>

Reviewed by Simon Fraser.

Source/WebCore:

In r230574, the fix for webkit.org/b/184518, we changed the processing order in GraphicsLayerCA::updateAnimations() to first
process m_uncomittedAnimations and then m_animationsToProcess, so we are guaranteed animations exist before we attempt to pause
or seek them. This broke interrupting and resuming hardware animations (such as an interrupted CSS Transition or an animation
running in a non-visible tab) since a pause operation recorded _before_ an animation was added would be paused anyway since
the animation was now first added, and then paused. The fix is simply to clear any pending AnimationProcessingAction for a
newly-uncommitted animation.

Test: transitions/interrupted-transition-hardware.html

* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
* platform/graphics/ca/GraphicsLayerCA.h:
(WebCore::GraphicsLayerCA::LayerPropertyAnimation::LayerPropertyAnimation):

LayoutTests:

Add a new test where we interrupt a transition and check that upon returning to the original value,
an animated value is still used and not the initial value. This test fails prior to this patch.

* transitions/interrupted-transition-hardware-expected.html: Added.
* transitions/interrupted-transition-hardware.html: Added.

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

2 years agoFix a legacy CRLF eol from Test262
commit-queue@webkit.org [Mon, 14 May 2018 17:39:16 +0000 (17:39 +0000)]
Fix a legacy CRLF eol from Test262
https://bugs.webkit.org/show_bug.cgi?id=185565

Patch by Leo Balter <leonardo.balter@gmail.com> on 2018-05-14
Reviewed by Yusuke Suzuki.

* test262/config.yaml:
* test262/test/built-ins/Math/cbrt/prop-desc.js:

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

2 years agoNSEvent event trackers don't work from WebKitTestRunner
commit-queue@webkit.org [Mon, 14 May 2018 17:26:25 +0000 (17:26 +0000)]
NSEvent event trackers don't work from WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=185383
rdar://problem/40025045

Patch by Jeremy Jones <jeremyj@apple.com> on 2018-05-14
Reviewed by Simon Fraser.

Tools:

Post simulated wheel events to _sendEventToObservers: so they can be handled by NSEvent observers.
NSEvent swipe tracking is used for webkit swipe navigation.

* WebKitTestRunner/mac/EventSenderProxy.mm:
(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases):

LayoutTests:

This test initiates back navigation with wheel events.

* swipe/wheel-event-initiated-back-navigation-expected.txt: Added.
* swipe/wheel-event-initiated-back-navigation.html: Added.

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

2 years ago[JSC] timeClip(-0) should produce +0
utatane.tea@gmail.com [Mon, 14 May 2018 17:18:05 +0000 (17:18 +0000)]
[JSC] timeClip(-0) should produce +0
https://bugs.webkit.org/show_bug.cgi?id=185589

Reviewed by Saam Barati.

JSTests:

Fix several test262 failures.

* stress/date-negative-zero.js: Added.
(shouldBe):
* test262/expectations.yaml:

Source/WTF:

According to the spec[1], timeClip(-0) should produce +0.
We achieve this by adding 0.0 to the result of trunc(t).

[1]: https://tc39.github.io/ecma262/#sec-timeclip

* wtf/DateMath.cpp:
(WTF::timeClip):

LayoutTests:

* sputnik/Implementation_Diagnostics/S15.9.1.14_D1-expected.txt:

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

2 years ago[JSC] Tweak LiteralParser to improve lexing performance
utatane.tea@gmail.com [Mon, 14 May 2018 16:47:35 +0000 (16:47 +0000)]
[JSC] Tweak LiteralParser to improve lexing performance
https://bugs.webkit.org/show_bug.cgi?id=185541

Reviewed by Saam Barati.

This patch attemps to improve LiteralParser performance.

This patch improves Kraken/json-parse-financial by roughly ~10%.
                                   baseline                  patched

    json-parse-financial        65.810+-1.591      ^      59.943+-1.784         ^ definitely 1.0979x faster

* parser/Lexer.cpp:
(JSC::Lexer<T>::Lexer):
* runtime/ArgList.h:
(JSC::MarkedArgumentBuffer::takeLast):
Add takeLast() for idiomatic last() + removeLast() calls.

* runtime/LiteralParser.cpp:
(JSC::LiteralParser<CharType>::Lexer::lex):
Do not have mode in its template parameter. While lex function is large, this mode is not used in a critical path.
We should not include this mode in its template parameter to reduce the code size.
And we do not use template parameter for a terminator since duplicating ' and " code for lexString is not good.
Also, we construct TokenType table to remove bunch of unnecessary switch cases.

(JSC::LiteralParser<CharType>::Lexer::next):
(JSC::isSafeStringCharacter):
Take mode in its template parameter. But do not take terminator character in its template parameter.

(JSC::LiteralParser<CharType>::Lexer::lexString):
(JSC::LiteralParser<CharType>::Lexer::lexStringSlow):
Duplicate while statements manually since this is a critical path.

(JSC::LiteralParser<CharType>::parse):
Use takeLast().

* runtime/LiteralParser.h:

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

2 years agoSimplified Mach exception handling
ggaren@apple.com [Mon, 14 May 2018 16:45:09 +0000 (16:45 +0000)]
Simplified Mach exception handling
https://bugs.webkit.org/show_bug.cgi?id=185595

Reviewed by Keith Miller.

* wtf/threads/Signals.cpp:
(WTF::startMachExceptionHandlerThread): Use mach_msg_server_once instead
of duplicating its functionality. Separate error handling logic from
program logic to help program logic stand out. Use
DISPATCH_TARGET_QUEUE_* instead of explicitly fetching a queue.

Also, we don't need the high priority queue. The kernel donates a
priority voucher from the exception thread to the receiver thread, and
mach_msg_server_once takes care to forward that voucher.

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

2 years ago[GStreamer] Fix style issue in MediaPlayerPrivateGStreamerBase
commit-queue@webkit.org [Mon, 14 May 2018 16:18:36 +0000 (16:18 +0000)]
[GStreamer] Fix style issue in MediaPlayerPrivateGStreamerBase
https://bugs.webkit.org/show_bug.cgi?id=185510

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-05-14
Reviewed by Philippe Normand.

ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:629:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:684:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:807:  More than one command on the same line  [whitespace/newline] [4]

Indentation and style issue fixed only.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::volumeChangedCallback):
(WebCore::MediaPlayerPrivateGStreamerBase::muteChangedCallback):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):

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

2 years ago[LFC] Implement height computation for non-replaced out of flow elements.
zalan@apple.com [Mon, 14 May 2018 15:59:56 +0000 (15:59 +0000)]
[LFC] Implement height computation for non-replaced out of flow elements.
https://bugs.webkit.org/show_bug.cgi?id=185585

Reviewed by Antti Koivisto.

* layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeHeight const):
(WebCore::Layout::FormattingContext::computeOutOfFlowHeight const):
(WebCore::Layout::FormattingContext::layoutOutOfFlowDescendants const):
(WebCore::Layout::FormattingContext::computeOutOfFlowNonReplacedHeight const):
(WebCore::Layout::FormattingContext::computeHeightForBlockFormattingContextRootWithAutoHeight const):
* layout/FormattingContext.h:
* layout/blockformatting/BlockFormattingContext.h:
* layout/displaytree/DisplayBox.h:

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

2 years agoRenaming of overrides in LayoutBox
rego@igalia.com [Mon, 14 May 2018 15:20:47 +0000 (15:20 +0000)]
Renaming of overrides in LayoutBox
https://bugs.webkit.org/show_bug.cgi?id=185609

Reviewed by Javier Fernandez.

The names of the methods for the overrides were not consistent,
this patch fixes it by using the same structure in all the cases.

No new tests, no change of behavior.

* rendering/GridLayoutFunctions.cpp:
(WebCore::GridLayoutFunctions::hasOverrideContainingBlockContentSizeForChild):
* rendering/GridTrackSizingAlgorithm.cpp:
(WebCore::GridTrackSizingAlgorithmStrategy::logicalHeightForChild const):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeChildPreferredLogicalWidths const):
(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::fitBorderToLinesIfNeeded):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::updateRubyForJustifiedText):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::willBeDestroyed):
(WebCore::RenderBox::hasOverrideContentLogicalHeight const):
(WebCore::RenderBox::hasOverrideContentLogicalWidth const):
(WebCore::RenderBox::setOverrideContentLogicalHeight):
(WebCore::RenderBox::setOverrideContentLogicalWidth):
(WebCore::RenderBox::clearOverrideContentLogicalHeight):
(WebCore::RenderBox::clearOverrideContentLogicalWidth):
(WebCore::RenderBox::clearOverrideContentSize):
(WebCore::RenderBox::overrideContentLogicalWidth const):
(WebCore::RenderBox::overrideContentLogicalHeight const):
(WebCore::RenderBox::overrideContainingBlockContentLogicalWidth const):
(WebCore::RenderBox::overrideContainingBlockContentLogicalHeight const):
(WebCore::RenderBox::hasOverrideContainingBlockContentLogicalWidth const):
(WebCore::RenderBox::hasOverrideContainingBlockContentLogicalHeight const):
(WebCore::RenderBox::setOverrideContainingBlockContentLogicalWidth):
(WebCore::RenderBox::setOverrideContainingBlockContentLogicalHeight):
(WebCore::RenderBox::clearOverrideContainingBlockContentSize):
(WebCore::RenderBox::clearOverrideContainingBlockContentLogicalHeight):
(WebCore::RenderBox::containingBlockLogicalWidthForContent const):
(WebCore::RenderBox::containingBlockLogicalHeightForContent const):
(WebCore::RenderBox::perpendicularContainingBlockLogicalHeight const):
(WebCore::RenderBox::computeLogicalWidthInFragment const):
(WebCore::RenderBox::computeLogicalHeight const):
(WebCore::RenderBox::computePercentageLogicalHeight const):
(WebCore::RenderBox::computeReplacedLogicalHeightUsing const):
(WebCore::RenderBox::availableLogicalHeightUsing const):
(WebCore::RenderBox::containingBlockLogicalWidthForPositioned const):
(WebCore::RenderBox::containingBlockLogicalHeightForPositioned const):
* rendering/RenderBox.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight const):
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::contentWidthForChild):
(WebCore::contentHeightForChild):
(WebCore::gatherFlexChildrenInfo):
(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
(WebCore::RenderDeprecatedFlexibleBox::clearLineClamp):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild):
(WebCore::RenderFlexibleBox::crossSizeForPercentageResolution):
(WebCore::RenderFlexibleBox::mainSizeForPercentageResolution):
(WebCore::RenderFlexibleBox::constructFlexItem):
(WebCore::RenderFlexibleBox::setOverrideMainAxisContentSizeForChild):
(WebCore::RenderFlexibleBox::applyStretchAlignmentToChild):
* rendering/RenderFullScreen.cpp:
(WebCore::RenderFullScreen::unwrapRenderer):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):
* rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::adjustInlineDirectionLineBounds const):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::setOverrideContentLogicalHeightFromRowHeight):
* rendering/RenderTableCell.h:
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::calcRowLogicalHeight):
(WebCore::RenderTableSection::relayoutCellIfFlexed):

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

2 years ago[LFC] Implement width computation for non-replaced out of flow elements.
zalan@apple.com [Mon, 14 May 2018 14:52:50 +0000 (14:52 +0000)]
[LFC] Implement width computation for non-replaced out of flow elements.
https://bugs.webkit.org/show_bug.cgi?id=185598

Reviewed by Antti Koivisto.

* layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeWidth const):
(WebCore::Layout::FormattingContext::computeOutOfFlowWidth const):
(WebCore::Layout::FormattingContext::layoutOutOfFlowDescendants const):
(WebCore::Layout::FormattingContext::computeOutOfFlowNonReplacedWidth const):
(WebCore::Layout::FormattingContext::shrinkToFitWidth const):
* layout/FormattingContext.h:
* layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layout const):
* layout/displaytree/DisplayBox.h:

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

2 years ago-Wmemset-elt-size warning in LibWebRTCSocket constructor
mcatanzaro@igalia.com [Mon, 14 May 2018 14:39:18 +0000 (14:39 +0000)]
-Wmemset-elt-size warning in LibWebRTCSocket constructor
https://bugs.webkit.org/show_bug.cgi?id=185555

Reviewed by Youenn Fablet.

Add missing multiplication.

* WebProcess/Network/webrtc/LibWebRTCSocket.cpp:
(WebKit::LibWebRTCSocket::LibWebRTCSocket):

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

2 years agoDrop the m_compositorTexture member variable in TextureMapperGC3DPlatformLayer.
zandobersek@gmail.com [Mon, 14 May 2018 12:57:56 +0000 (12:57 +0000)]
Drop the m_compositorTexture member variable in TextureMapperGC3DPlatformLayer.
It's not used at all inside the class or outside it.

Rubber-stamped by Michael Catanzaro.

* platform/graphics/texmap/TextureMapperGC3DPlatformLayer.h:

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

2 years ago[GTK] REGRESSION(r231170) Build broken with Clang 5.0
zandobersek@gmail.com [Mon, 14 May 2018 12:52:25 +0000 (12:52 +0000)]
[GTK] REGRESSION(r231170) Build broken with Clang 5.0
https://bugs.webkit.org/show_bug.cgi?id=185198

Reviewed by Michael Catanzaro.

.:

* Source/cmake/WebKitCompilerFlags.cmake: Fall back to the -std=c++1z
compiler flag if -std=c++17 is not supported. If that flag is not
supported either, bail with an error message.

Source/WebCore:

Avoid gperf files using the register keyword which has been made
reserved and as such unusable in C++17.

* css/makeSelectorPseudoClassAndCompatibilityElementMap.py:
* css/makeSelectorPseudoElementsMap.py:
* css/makeprop.pl:
* css/makevalues.pl:
* platform/ColorData.gperf:
* platform/ReferrerPolicy.h: With std::optional forward declaration
gone, explicitly include the WTF Optional.h header.
* platform/Theme.h: Ditto.
* platform/network/create-http-header-name-table:

Source/WebKit:

* Shared/RTCNetwork.h: With std::optional forward declaration gone,
explicitly include the WTF Optional.h header.

Source/WTF:

* wtf/Compiler.h:
* wtf/Forward.h: Delete the std::optional forward declaration that is
potentially incompatible with definition provided by the standard library.
* wtf/Hasher.h:
* wtf/StdLibExtras.h: In addition to the remaining C++14 configurations,
also use custom std::in_place_t implementation when compiling with
libstdc++ 6.x, which doesn't provide its own.

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

2 years agoEnable service-worker/navigation-redirect-body.https.html and service-worker/postmess...
youenn@apple.com [Mon, 14 May 2018 10:41:07 +0000 (10:41 +0000)]
Enable service-worker/navigation-redirect-body.https.html and service-worker/postmessage.https.html
https://bugs.webkit.org/show_bug.cgi?id=185605

Unreviewed.

LayoutTests/imported/w3c:

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

LayoutTests:

* TestExpectations:

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

2 years ago[MIPS] Use btpz to compare against 0 instead of bpeq
commit-queue@webkit.org [Mon, 14 May 2018 10:20:24 +0000 (10:20 +0000)]
[MIPS] Use btpz to compare against 0 instead of bpeq
https://bugs.webkit.org/show_bug.cgi?id=185607

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-14
Reviewed by Yusuke Suzuki.

Fixes build on MIPS since MIPS doesn't have an instruction to
compare a register against an immediate. Since the immediate is just 0
in this case the simplest solution is just to use btpz instead of bpeq
to compare to 0.

* llint/LowLevelInterpreter.asm:

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

2 years agoMark imported/w3c/web-platform-tests/service-workers/service-worker/redirected-respon...
youenn@apple.com [Mon, 14 May 2018 08:32:43 +0000 (08:32 +0000)]
Mark imported/w3c/web-platform-tests/service-workers/service-worker/redirected-response.https.html as slow in debug
https://bugs.webkit.org/show_bug.cgi?id=185604

Unreviewed.

* TestExpectations:

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

2 years agoUnreviewed, rolling out r219515.
commit-queue@webkit.org [Mon, 14 May 2018 07:33:55 +0000 (07:33 +0000)]
Unreviewed, rolling out r219515.
https://bugs.webkit.org/show_bug.cgi?id=185603

It sometimes makes AudioUnitInitialize call to fail in
CoreAudioCaptureSource (Requested by youenn on #webkit).

Reverted changeset:

"Remove CoreAudioCaptureSource speaker configuration"
https://bugs.webkit.org/show_bug.cgi?id=174512
https://trac.webkit.org/changeset/219515

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

2 years agoWebKit2_Sim-7606.1.17.4 introduced dep cycle
dino@apple.com [Sun, 13 May 2018 19:29:38 +0000 (19:29 +0000)]
WebKit2_Sim-7606.1.17.4 introduced dep cycle
https://bugs.webkit.org/show_bug.cgi?id=185588
<rdar://problem/40196581>

Reviewed by Tim Horton.

Soft link AssetViewer.framework to avoid a dependency cycle.

* Configurations/WebKit.xcconfig:
* UIProcess/ios/WKSystemPreviewView.mm:
(-[WKSystemPreviewView web_setContentProviderData:suggestedFilename:]):

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