WebKit-https.git
2 years agoFunction object should convert params to string before throw a parsing error
yusukesuzuki@slowstart.org [Sat, 1 Sep 2018 08:03:43 +0000 (08:03 +0000)]
Function object should convert params to string before throw a parsing error
https://bugs.webkit.org/show_bug.cgi?id=188874

Reviewed by Darin Adler.

JSTests:

* stress/function-body-to-string-before-parameter-syntax-check.js: Added.
(shouldThrow):

Source/JavaScriptCore:

ToString operation onto the `body` of the Function constructor should be performed
before checking syntax correctness of the parameters.

* runtime/FunctionConstructor.cpp:
(JSC::constructFunctionSkippingEvalEnabledCheck):

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

2 years agoAdd support for USDZ to webkit.org for a sample file
dino@apple.com [Sat, 1 Sep 2018 00:16:57 +0000 (00:16 +0000)]
Add support for USDZ to webkit.org for a sample file
https://bugs.webkit.org/show_bug.cgi?id=189217

Rubber-stamped by Anders Carlsson.

Use the accepted MIME-type for USDZ files, and provide a
simple example file.

* .htaccess: Serve USD with a MIME-type that we will accept.
* demos/ar/heart.usdz: Added.

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

2 years agoUnreviewed, add an alternate email for Aditya Keerthi.
akeerthi@apple.com [Sat, 1 Sep 2018 00:02:12 +0000 (00:02 +0000)]
Unreviewed, add an alternate email for Aditya Keerthi.

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

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

2 years agoAdded a CSS rule to DarkMode.css to fix color on sidebar toggle.
commit-queue@webkit.org [Fri, 31 Aug 2018 23:28:26 +0000 (23:28 +0000)]
Added a CSS rule to DarkMode.css to fix color on sidebar toggle.
<https://webkit.org/b/189139>

Patch by Jamal Nasser <xnasser@outlook.com> on 2018-08-31
Reviewed by Matt Baker.

* UserInterface/Views/DarkMode.css:
(@media (prefers-dark-interface)):
(.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle):

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

2 years agoMove stats gathering out of LibWebRTCMediaEndpoint
youenn@apple.com [Fri, 31 Aug 2018 23:27:20 +0000 (23:27 +0000)]
Move stats gathering out of LibWebRTCMediaEndpoint
https://bugs.webkit.org/show_bug.cgi?id=189180

Reviewed by Alejandro G. Castro.

Move stats gathering in LibWebRTCStatsCollector.
Make sure that the lambda given to the collector is always called and destroyed from the main thread.
This allows capturing the promise here instead of storing it into the peer connection backend.
No change of behavior.

* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::getStats):
* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
* Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::LibWebRTCPeerConnectionBackend::getStats):
(WebCore::LibWebRTCPeerConnectionBackend::doStop):
* Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
* Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp: Added.
(WebCore::LibWebRTCStatsCollector::LibWebRTCStatsCollector):
(WebCore::LibWebRTCStatsCollector::~LibWebRTCStatsCollector):
(WebCore::fromStdString):
(WebCore::fillRTCStats):
(WebCore::fillRTCRTPStreamStats):
(WebCore::fillInboundRTPStreamStats):
(WebCore::fillOutboundRTPStreamStats):
(WebCore::fillRTCMediaStreamTrackStats):
(WebCore::fillRTCDataChannelStats):
(WebCore::iceCandidatePairState):
(WebCore::fillRTCIceCandidatePairStats):
(WebCore::fillRTCCertificateStats):
(WebCore::LibWebRTCStatsCollector::OnStatsDelivered):
* Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.h: Added.
(WebCore::LibWebRTCStatsCollector::create):
* WebCore.xcodeproj/project.pbxproj:

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

2 years agoCompile error in RealtimeOutgoingVideoSource.cpp; unused parameter in libwebrtc header
jer.noble@apple.com [Fri, 31 Aug 2018 23:22:47 +0000 (23:22 +0000)]
Compile error in RealtimeOutgoingVideoSource.cpp; unused parameter in libwebrtc header
https://bugs.webkit.org/show_bug.cgi?id=189203

Reviewed by Youenn Fablet.

If RealtimeOutgoingVideoSource.cpp is compiled alone (non-unified) or if it is the first file compiled in
a unified build, there is no pragma set to ignore unused parameter warnings in place.

* platform/mediastream/RealtimeOutgoingVideoSource.cpp:

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

2 years ago[iOS] Consolidate the implementations of readString, stringForType, and readURL in...
wenson_hsieh@apple.com [Fri, 31 Aug 2018 23:18:30 +0000 (23:18 +0000)]
[iOS] Consolidate the implementations of readString, stringForType, and readURL in PlatformPasteboardIOS.mm
https://bugs.webkit.org/show_bug.cgi?id=189054
<rdar://problem/43819779>

Reviewed by Tim Horton.

Source/WebCore:

Remove redundant and unnecessary logic for reading from the pasteboard on iOS.

* platform/PlatformPasteboard.h:
* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::stringForType const):

This currently grabs a string corresponding to the given type from the first item in the pasteboard. Make
stringForType instead call readString with pasteboard item index 0.

(WebCore::PlatformPasteboard::count const):
(WebCore::PlatformPasteboard::readBuffer const):
(WebCore::PlatformPasteboard::readString const):

Make readString with "public.url" call readURL.

(WebCore::PlatformPasteboard::readURL const):

Remove logic for reading URLs from the pasteboard as property lists deserialized from properly lists. This was
added in r223195 due to fix a case "when UIPasteboard serializes NSURL as a plist" when grabbing pasteboard data
using -valuesForPasteboardType:inItemSet:. However, this case only arises in non-UI applications (i.e. when
UIApplicationInitialize() has not been invoked); this is currently exercised by the test CopyURL.ValidURL, but
doesn't really correspond to a real-world use case, since all UI applications where a user would be able to
paste in a web view already invoke UIApplicationInitialize().

Instead of handling the case where the pasteboard contains a property list that has not been coerced to an
NSURL, simply remove the code from PlatformPasteboard::readURL and allow UIKit to perform the coercion when
running the test.

(WebCore::PlatformPasteboard::count): Deleted.
(WebCore::PlatformPasteboard::readBuffer): Deleted.
(WebCore::PlatformPasteboard::readString): Deleted.
(WebCore::PlatformPasteboard::readURL): Deleted.

Mark these functions as `const`.

* platform/wpe/PlatformPasteboardWPE.cpp:
(WebCore::PlatformPasteboard::readString const):
(WebCore::PlatformPasteboard::readString): Deleted.

Mark this function as const.

Tools:

See WebCore/ChangeLog for more detail.

* TestWebKitAPI/Tests/WebKitCocoa/CopyURL.mm:
(createWebViewWithCustomPasteboardDataEnabled):

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

2 years agoCompilation error in FormData.cpp: incomplete type 'WebCore::SharedBuffer'
jer.noble@apple.com [Fri, 31 Aug 2018 23:14:06 +0000 (23:14 +0000)]
Compilation error in FormData.cpp: incomplete type 'WebCore::SharedBuffer'
https://bugs.webkit.org/show_bug.cgi?id=189207

Reviewed by Youenn Fablet.

If FormData.cpp is compiled alone (non-unified) or if it is the first file compiled in
a unified build, SharedBuffer.h is not included.

* platform/network/FormData.cpp:

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

2 years agoUnreviewed, rolling out r235565.
commit-queue@webkit.org [Fri, 31 Aug 2018 22:50:08 +0000 (22:50 +0000)]
Unreviewed, rolling out r235565.
https://bugs.webkit.org/show_bug.cgi?id=189212

Broke the WHLSL build (Requested by litherum on #webkit).

Reverted changeset:

"[WHLSL] Remove useless code in NameResolver"
https://bugs.webkit.org/show_bug.cgi?id=189176
https://trac.webkit.org/changeset/235565

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

2 years agoClean up TestExpectations so that ./Tools/Scripts/lint-test-expectations
simon.fraser@apple.com [Fri, 31 Aug 2018 22:23:22 +0000 (22:23 +0000)]
Clean up TestExpectations so that ./Tools/Scripts/lint-test-expectations
succeeds now.

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

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

2 years ago[ WK2 ] http/tests/workers/service/client-*-page-cache.html LayoutTests are flaky
cdumez@apple.com [Fri, 31 Aug 2018 21:48:18 +0000 (21:48 +0000)]
[ WK2 ] http/tests/workers/service/client-*-page-cache.html LayoutTests are flaky
https://bugs.webkit.org/show_bug.cgi?id=183705
<rdar://problem/42440606>

Reviewed by Youenn Fablet.

Source/WebCore:

Add internals.serviceWorkerClientIdentifier() utility function so that a layout test can get the
service worker client identifier of a document.

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

LayoutTests:

Update Layout tests to not rely on the total number of clients as this is flaky. Instead, check for specific client
identifiers to see if they are present or not.

* http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html:
* http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html:
* http/tests/workers/service/resources/getClientIds-worker.js: Renamed from LayoutTests/http/tests/workers/service/resources/getClientCount-worker.js.
(event.then):
* http/tests/workers/service/serviceworkerclients-matchAll-worker.js:
(async.doTestAfterMessage):
* http/tests/workers/service/serviceworkerclients-matchAll.https.html:

* platform/ios-wk2/TestExpectations:
* platform/mac-wk2/TestExpectations:
Unskip tests as they should no longer be flaky.

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

2 years agoStorage Access API: Maintain access through same-site navigations
wilander@apple.com [Fri, 31 Aug 2018 21:09:36 +0000 (21:09 +0000)]
Storage Access API: Maintain access through same-site navigations
https://bugs.webkit.org/show_bug.cgi?id=188564
<rdar://problem/43445160>

Reviewed by Alex Christensen.

Source/WebCore:

Tests: http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.html
       http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access.html

* dom/Document.h:
    Removed unused member variable m_hasFrameSpecificStorageAccess.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::willSendRequest):
* loader/FrameLoaderClient.h:

Source/WebKit:

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchWillChangeDocument):
    Now takes the current URL and the new URL as parameters
    and only clears out storage access if the navigation is
    cross-site, i.e. with differing eTLD+1s.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

LayoutTests:

* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame-expected.txt:
* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame.html:
    Added both a same-site and a cross-site navigation to the sub frame to test maintained and cleared access.
* http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access-expected.txt: Copied from LayoutTests/http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access-expected.txt.
* http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.html: Copied from LayoutTests/http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access.html.
* http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access-expected.txt.
* http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access.html: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access.html.
* http/tests/storageAccess/resources/get-cookies.php:
    Support for the new test scenarios.
* http/tests/storageAccess/resources/self-navigating-frame-after-granted-access.html:
    Support for the new test scenarios.
* platform/mac-wk2/TestExpectations:
    Marked the new and the renamed tests as [ Pass ].

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

2 years agoslotchange-event-bubbling.html fails in Chrome & Firefox
rniwa@webkit.org [Fri, 31 Aug 2018 20:41:57 +0000 (20:41 +0000)]
slotchange-event-bubbling.html fails in Chrome & Firefox
https://bugs.webkit.org/show_bug.cgi?id=189183

Reviewed by Chris Dumez.

slotchange event is supposed to fire when a slot element is inserted and there are assigned nodes.

Firefox and Chrome implement this behavior and fail this test since the test doesn't let microstask
check point run before start mutating the DOM.

Fixed the test by manually waiting for the current microtask queue to be emptied after constructing
the test shadow tree so that slotchange event from the initial tree construction doesn't get merged
with slotchange event fired for the actual DOM mutation being tested.

Also fixed typos in slotchange-in-fallback.html and a bug that we were removing the slot instead
of the shadow host at the end of each test case.

* fast/shadow-dom/slotchange-event-bubbling.html:
* fast/shadow-dom/slotchange-in-fallback.html:

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

2 years agoUnreviewed Windows build fix after r235562.
cdumez@apple.com [Fri, 31 Aug 2018 20:15:28 +0000 (20:15 +0000)]
Unreviewed Windows build fix after r235562.

* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::dispatchWillSubmitForm):

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

2 years ago[WHLSL] Remove useless code in NameResolver
mmaxfield@apple.com [Fri, 31 Aug 2018 20:08:08 +0000 (20:08 +0000)]
[WHLSL] Remove useless code in NameResolver
https://bugs.webkit.org/show_bug.cgi?id=189176

Reviewed by Dean Jackson and Thomas Denney.

The check will always pass becase the standard library contains at least one function with the correct name.

* WebGPUShadingLanguageRI/NameResolver.js:
(NameResolver.prototype.visitDotExpression):
(NameResolver.prototype._handlePropertyAccess): Deleted.
(NameResolver.prototype.visitIndexExpression): Deleted.

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

2 years agoMake it possible to mark tests as leaks in TestExpectations
simon.fraser@apple.com [Fri, 31 Aug 2018 20:00:22 +0000 (20:00 +0000)]
Make it possible to mark tests as leaks in TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=189088

Reviewed by Jon Lee.

Have webkitpy parse out "Leak" expectations in TestExpectations, and do the right
thing if the test run did not use --world-leaks. Add unit tests for leaks combined
with various other result combinations.

* Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
(LayoutTestRunner._update_summary_with_result):
(LayoutTestRunner._annotate_results_with_additional_failures):
* Scripts/webkitpy/layout_tests/models/test_expectations.py:
(TestExpectationParser):
(TestExpectations): The 'Leak' line was duplicated here, so remove a copy.
(TestExpectations.remove_leak_failures):
(TestExpectations.matches_an_expected_result):
* Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:
(Base.get_basic_tests):
* Scripts/webkitpy/port/test.py:
(TestList.add_reftest):
(unit_test_list):

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

2 years agoWebAudioBufferList.cpp/.h is named as cocoa/WebAudioBufferList.cpp/.h
youenn@apple.com [Fri, 31 Aug 2018 19:13:04 +0000 (19:13 +0000)]
WebAudioBufferList.cpp/.h is named as cocoa/WebAudioBufferList.cpp/.h
https://bugs.webkit.org/show_bug.cgi?id=189160

Reviewed by Jer Noble.

Add WebAudioBufferList.cpp to unified build.
Update XCode project so that the file names are right.
No change of behavior.

* PlatformMac.cmake:
* SourcesCocoa.txt:
* WebCore.xcodeproj/project.pbxproj:

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

2 years agoAssertion hit in ~CompletionHandler() from ~WebFrame()
cdumez@apple.com [Fri, 31 Aug 2018 19:00:23 +0000 (19:00 +0000)]
Assertion hit in ~CompletionHandler() from ~WebFrame()
https://bugs.webkit.org/show_bug.cgi?id=189199
<rdar://problem/42657233>

Reviewed by Youenn Fablet.

Source/WebCore:

The issue was caused by WebFrame::m_willSubmitFormCompletionHandlers implicitly containing
CompletionHandlers (wrapped in WTF::Functions) and not calling them upon WebFrame
destruction.

No new tests, covered by fast/frames/iframe-target.html.

* loader/EmptyClients.cpp:
(WebCore::EmptyFrameLoaderClient::dispatchWillSubmitForm):
* loader/EmptyFrameLoaderClient.h:
* loader/FrameLoaderClient.h:

Source/WebKit:

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::~WebFrame):
(WebKit::WebFrame::setUpWillSubmitFormListener):
(WebKit::WebFrame::invalidatePolicyListener):
* WebProcess/WebPage/WebFrame.h:

Source/WebKitLegacy/mac:

* WebCoreSupport/WebFrameLoaderClient.h:
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::dispatchWillSubmitForm):

Source/WebKitLegacy/win:

* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::dispatchWillSubmitForm):
* WebCoreSupport/WebFrameLoaderClient.h:

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

2 years ago[LFC] Add margin box verification back now that Display::Box has non-computed horizon...
zalan@apple.com [Fri, 31 Aug 2018 18:07:46 +0000 (18:07 +0000)]
[LFC] Add margin box verification back now that Display::Box has non-computed horizontal margin.
https://bugs.webkit.org/show_bug.cgi?id=189193

Reviewed by Antti Koivisto.

Source/WebCore:

Use the non-computed margin values to verify correctness.
This patch also fixes a margin collapsing issue when the inflow box has a float sibling. The float
sibling does not prevent collapsing with the parent's top/bottom margin.

Test: fast/block/block-only/floating-and-next-previous-inflow-with-margin-with-no-border.html

* layout/Verification.cpp:
(WebCore::Layout::outputMismatchingBlockBoxInformationIfNeeded):
(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree const):
* layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::isMarginTopCollapsedWithParent):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::isMarginBottomCollapsedWithParent):

Tools:

* LayoutReloaded/misc/LFC-passing-tests.txt:

LayoutTests:

* fast/block/block-only/floating-and-next-previous-inflow-with-margin-with-no-border-expected.txt: Added.
* fast/block/block-only/floating-and-next-previous-inflow-with-margin-with-no-border.html: Added.

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

2 years agoReplace OptionSet |= and -= operators with add() and remove() functions
antti@apple.com [Fri, 31 Aug 2018 17:59:01 +0000 (17:59 +0000)]
Replace OptionSet |= and -= operators with add() and remove() functions
https://bugs.webkit.org/show_bug.cgi?id=189169

Reviewed by Anders Carlsson.

Source/WebCore:

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::rangeOfStringClosestToRangeInDirection const):
* css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertTextDecoration):
(WebCore::StyleBuilderConverter::convertTextEmphasisPosition):
(WebCore::StyleBuilderConverter::convertTextUnderlinePosition):
(WebCore::StyleBuilderConverter::convertTextDecorationSkip):
(WebCore::StyleBuilderConverter::convertSpeakAs):
(WebCore::StyleBuilderConverter::convertHangingPunctuation):
* css/parser/CSSParser.cpp:
(WebCore::CSSParser::parseSystemColor):
* dom/Document.cpp:
(WebCore::Document::styleColorOptions const):
* dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::addMarker):
(WebCore::DocumentMarkerController::removeMarkers):
* dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::addThrottlingReason):
(WebCore::ScriptedAnimationController::removeThrottlingReason):
* dom/SecurityContext.h:
(WebCore::SecurityContext::setFoundMixedContent):
* dom/UIEventWithKeyState.cpp:
(WebCore::UIEventWithKeyState::modifiersFromInitializer):
(WebCore::UIEventWithKeyState::setModifierKeys):
* dom/UserActionElementSet.cpp:
(WebCore::UserActionElementSet::setFlags):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs):
* editing/Editor.cpp:
(WebCore::Editor::replaceSelectionWithFragment):
(WebCore::Editor::appliedEditing):
(WebCore::Editor::markMisspellingsAfterTypingToWord):
(WebCore::Editor::markMisspellingsAndBadGrammar):
(WebCore::Editor::resolveTextCheckingTypeMask):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::moveWithoutValidationTo):
(WebCore::FrameSelection::setSelectedRange):
* editing/FrameSelection.h:
(WebCore::FrameSelection::defaultSetSelectionOptions):
* editing/MoveSelectionCommand.cpp:
(WebCore::MoveSelectionCommand::doApply):
* editing/SpellChecker.cpp:
(WebCore::SpellChecker::didCheckSucceed):
* editing/TextCheckingHelper.cpp:
(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):
(WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange const):
* editing/TextIterator.cpp:
(WebCore::SearchBuffer::SearchBuffer):
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::parseAttribute):
* inspector/agents/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::reload):
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::find const):
* page/DragController.cpp:
(WebCore::DragController::concludeEditDrag):
* page/FrameSnapshotting.cpp:
(WebCore::snapshotFrameRectWithClip):
* page/FrameView.cpp:
(WebCore::updateLayerPositionFlags):
(WebCore::FrameView::willPaintContents):
* page/Page.cpp:
(WebCore::Page::setIsVisible):
* page/PerformanceObserver.cpp:
(WebCore::PerformanceObserver::observe):
* page/TextIndicator.cpp:
(WebCore::TextIndicator::createWithRange):
* page/WindowFeatures.cpp:
(WebCore::parseDisabledAdaptations):
* page/csp/ContentSecurityPolicy.h:
(WebCore::ContentSecurityPolicy::addHashAlgorithmsForInlineScripts):
(WebCore::ContentSecurityPolicy::addHashAlgorithmsForInlineStylesheets):
* page/csp/ContentSecurityPolicySourceList.cpp:
(WebCore::ContentSecurityPolicySourceList::parseHashSource):
* platform/PlatformEvent.h:
(WebCore::PlatformEvent::PlatformEvent):
* platform/ios/PlatformEventFactoryIOS.mm:
(WebCore::modifiersForEvent):
* platform/mac/PlatformEventFactoryMac.mm:
(WebCore::modifiersForEvent):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::updateLayerPositionsAfterScroll):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::paintLayerContentsAndReflection):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintForegroundForFragments):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintIntoLayer):
(WebCore::RenderLayerBacking::paintContents):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::reasonsForCompositing const):
(WebCore::RenderLayerCompositor::updateScrollCoordinatedStatus):
* rendering/TextDecorationPainter.cpp:
(WebCore::collectStylesForRenderer):
* rendering/TextPaintStyle.cpp:
(WebCore::computeTextPaintStyle):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout const):
(WebCore::RenderStyle::changeRequiresLayerRepaint const):
(WebCore::RenderStyle::changeRequiresRepaint const):
* testing/Internals.cpp:
(WebCore::parseFindOptions):
(WebCore::Internals::forceReload):
(WebCore::Internals::setPageVisibility):
(WebCore::Internals::setPageIsFocusedAndActive):

Source/WebKit:

* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
* Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::notePropertiesChanged):
* Shared/WebEventConversion.cpp:
(WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent):
(WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent):
(WebKit::WebKit2PlatformKeyboardEvent::WebKit2PlatformKeyboardEvent):
(WebKit::WebKit2PlatformTouchEvent::WebKit2PlatformTouchEvent):
(WebKit::WebKit2PlatformGestureEvent::WebKit2PlatformGestureEvent):
* Shared/WebsitePoliciesData.cpp:
(WebKit::WebsitePoliciesData::applyToDocumentLoader):
* UIProcess/API/C/WKPage.cpp:
(WKPageReload):
* UIProcess/API/C/WKResourceCacheManager.cpp:
(toWebsiteDataTypes):
* UIProcess/API/C/WKWebsitePolicies.cpp:
(WKWebsitePoliciesSetAllowedAutoplayQuirks):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView reload]):
* UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:
(WebKit::toWebsiteDataTypes):
* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _fetchDataRecordsOfTypes:withOptions:completionHandler:]):
* UIProcess/API/Cocoa/_WKWebsitePolicies.mm:
(-[_WKWebsitePolicies setAllowedAutoplayQuirks:]):
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::viewDidMoveToWindow):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::updateActivityState):
(WebKit::WebPageProxy::activityStateDidChange):
(WebKit::WebPageProxy::dispatchActivityStateChange):
* UIProcess/WebsiteData/WebsiteDataRecord.cpp:
(WebKit::WebsiteDataRecord::add):
(WebKit::WebsiteDataRecord::addCookieHostName):
(WebKit::WebsiteDataRecord::addPluginDataHostName):
(WebKit::WebsiteDataRecord::addHSTSCacheHostname):
(WebKit::WebsiteDataRecord::addOriginWithCredential):
* UIProcess/mac/WKInspectorViewController.mm:
(-[WKInspectorViewController inspectorWKWebViewReload:]):
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
(WebKit::imageForRect):
* WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
(WebKit::InjectedBundleRangeHandle::renderedImage):
* WebProcess/WebPage/FindController.cpp:
(WebKit::core):
(WebKit::FindController::findString):

Source/WebKitLegacy/mac:

* WebView/WebFrame.mm:
(-[WebFrame _drawRect:contentsOnly:]):
* WebView/WebView.mm:
(coreOptions):

Source/WTF:

Improve code readability.

* wtf/OptionSet.h:
(WTF::OptionSet::add):
(WTF::OptionSet::remove):
(WTF::OptionSet::operator==):
(WTF::OptionSet::operator!=):
(WTF::OptionSet::operator|=): Deleted.
(WTF::OptionSet::operator-=): Deleted.
* wtf/ProcessPrivilege.cpp:
(WTF::addProcessPrivilege):
(WTF::removeProcessPrivilege):

Tools:

* TestWebKitAPI/Tests/WTF/OptionSet.cpp:
(TestWebKitAPI::TEST):

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

2 years agoRename ShouldProcessSwapIfPossible to ProcessSwapRequestedByClient for clarity
cdumez@apple.com [Fri, 31 Aug 2018 17:41:32 +0000 (17:41 +0000)]
Rename ShouldProcessSwapIfPossible to ProcessSwapRequestedByClient for clarity
https://bugs.webkit.org/show_bug.cgi?id=189195

Reviewed by Alex Christensen.

Rename ShouldProcessSwapIfPossible to ProcessSwapRequestedByClient for clarity, since it indicates the client
requested a process swap via its navigation policy decision.

* UIProcess/API/C/WKFramePolicyListener.cpp:
(WKFramePolicyListenerUseInNewProcess):
(useWithPolicies):
(WKFramePolicyListenerUseWithPolicies):
(WKFramePolicyListenerUseInNewProcessWithPolicies):
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
* UIProcess/WebFramePolicyListenerProxy.cpp:
(WebKit::WebFramePolicyListenerProxy::use):
(WebKit::WebFramePolicyListenerProxy::download):
(WebKit::WebFramePolicyListenerProxy::ignore):
* UIProcess/WebFramePolicyListenerProxy.h:
* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::setUpPolicyListenerProxy):
* UIProcess/WebFrameProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):
* UIProcess/WebPageProxy.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processForNavigation):
(WebKit::WebProcessPool::processForNavigationInternal):
* UIProcess/WebProcessPool.h:

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

2 years agoFix exception check accounting in constructJSWebAssemblyCompileError().
mark.lam@apple.com [Fri, 31 Aug 2018 17:12:32 +0000 (17:12 +0000)]
Fix exception check accounting in constructJSWebAssemblyCompileError().
https://bugs.webkit.org/show_bug.cgi?id=189185
<rdar://problem/39786007>

Reviewed by Michael Saboff.

JSTests:

* stress/regress-189185.js: Added.
(new.WebAssembly.CompileError.valueOf):

Source/JavaScriptCore:

Also add an exception check in JSWebAssemblyModule::createStub() so that we don't
inadvertently overwrite a pre-existing exception (if present).

* wasm/js/JSWebAssemblyModule.cpp:
(JSC::JSWebAssemblyModule::createStub):
* wasm/js/WebAssemblyCompileErrorConstructor.cpp:
(JSC::constructJSWebAssemblyCompileError):

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

2 years agoGardening: ARMv7 build fix.
mark.lam@apple.com [Fri, 31 Aug 2018 17:06:28 +0000 (17:06 +0000)]
Gardening: ARMv7 build fix.
https://bugs.webkit.org/show_bug.cgi?id=158911

Not reviewed.

* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::patchableBranch8):

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

2 years ago[Datalist][iOS] Add suggestions UI for TextFieldInputTypes
akeerthi@apple.com [Fri, 31 Aug 2018 16:49:21 +0000 (16:49 +0000)]
[Datalist][iOS] Add suggestions UI for TextFieldInputTypes
https://bugs.webkit.org/show_bug.cgi?id=186714

Reviewed by Wenson Hsieh.

Source/WebCore:

On iOS, the datalist button should appear as a downward triangle. Furthermore, the
button should only be displayed if the input has focus and there are suggested
values.

* css/html.css:
(input::-webkit-list-button): Draw the triangle using an SVG.
* html/DataListSuggestionInformation.h:
* html/HTMLInputElement.h:
* html/TextFieldInputType.cpp: Added logic to show and hide the datalist button as necessary.
(WebCore::TextFieldInputType::handleFocusEvent):
(WebCore::TextFieldInputType::handleBlurEvent):
(WebCore::TextFieldInputType::didSetValueByUserEdit):
(WebCore::TextFieldInputType::listAttributeTargetChanged):
(WebCore::TextFieldInputType::displaySuggestions):

Source/WebKit:

On iOS, we have less space to display suggestions from a datalist element compared
to macOS. Furthermore, iPhones and iPads have different form factors, leading to a
different approach on each device. The commonalities of the two implementations
can be found in WKDataListSuggestionsControl. This class is subclassed by the
device specific implementations.

On iPhone, we display the suggestions in a UIPickerView. This view is accessible
only after tapping on the datalist button element to the side of the input field.
This approach was chosen in order to avoid tricking the user into thinking that
the values displayed in the picker are the only accepted values.
WKDataListSuggestionsPicker is responsible for managing the interface shown on
iPhones.

On iPad, we display the suggestions in a popover, that is visible alongside the
keyboard. The suggestions in the popover update as the user types.
WKDataListSuggestionsPopover is responsible for managing the interface shown on
iPads.

Both devices display predictive text suggestions, taking the first three values
from the filtered suggestions list. In order to prevent other clients from
overwriting the suggestions provided by the datalist element, we prevent writing
to the predictive text bar if an input with the list attribute is the currently
assisted node.

* Shared/AssistedNodeInformation.cpp:
(WebKit::AssistedNodeInformation::encode const):
(WebKit::AssistedNodeInformation::decode):
* Shared/AssistedNodeInformation.h:
* Shared/ios/InteractionInformationAtPosition.h:
* Shared/ios/InteractionInformationAtPosition.mm:
(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):
* SourcesCocoa.txt:
* UIProcess/WebDataListSuggestionsDropdownIOS.h: Added.
* UIProcess/WebDataListSuggestionsDropdownIOS.mm: Added.
(WebKit::WebDataListSuggestionsDropdownIOS::create):
(WebKit::WebDataListSuggestionsDropdownIOS::WebDataListSuggestionsDropdownIOS):
(WebKit::WebDataListSuggestionsDropdownIOS::show):
(WebKit::WebDataListSuggestionsDropdownIOS::handleKeydownWithIdentifier):
(WebKit::WebDataListSuggestionsDropdownIOS::close):
(WebKit::WebDataListSuggestionsDropdownIOS::didSelectOption):
(-[WKDataListSuggestionsControl initWithInformation:inView:]):
(-[WKDataListSuggestionsControl updateWithInformation:]):
(-[WKDataListSuggestionsControl showSuggestionsDropdown:activationType:]):
(-[WKDataListSuggestionsControl didSelectOptionAtIndex:]):
(-[WKDataListSuggestionsControl invalidate]):
(-[WKDataListSuggestionsControl textSuggestions]):
(-[WKDataListSuggestionsControl suggestionsCount]):
(-[WKDataListSuggestionsControl suggestionAtIndex:]):
(-[WKDataListSuggestionsControl textAlignment]):
(-[WKDataListSuggestionsPicker initWithInformation:inView:]):
(-[WKDataListSuggestionsPicker updateWithInformation:]):
(-[WKDataListSuggestionsPicker showSuggestionsDropdown:activationType:]):
(-[WKDataListSuggestionsPicker numberOfComponentsInPickerView:]):
(-[WKDataListSuggestionsPicker pickerView:numberOfRowsInComponent:]):
(-[WKDataListSuggestionsPicker pickerView:titleForRow:forComponent:]):
(-[WKDataListSuggestionsPicker invalidate]):
(-[WKDataListSuggestionsPickerView controlView]):
(-[WKDataListSuggestionsPickerView controlBeginEditing]):
(-[WKDataListSuggestionsPickerView controlEndEditing]):
(-[WKDataListSuggestionsPopover initWithInformation:inView:]):
(-[WKDataListSuggestionsPopover updateWithInformation:]):
(-[WKDataListSuggestionsPopover showSuggestionsDropdown:activationType:]):
(-[WKDataListSuggestionsPopover invalidate]):
(-[WKDataListSuggestionsPopover didSelectOptionAtIndex:]):
(-[WKDataListSuggestionsViewController reloadData]):
(-[WKDataListSuggestionsViewController tableView:numberOfRowsInSection:]):
(-[WKDataListSuggestionsViewController tableView:cellForRowAtIndexPath:]):
(-[WKDataListSuggestionsViewController tableView:didSelectRowAtIndexPath:]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::pageDidScroll):
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::createDataListSuggestionsDropdown):
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKFormInputSession endEditing]):
(-[WKFormInputSession setSuggestions:]):
(-[WKContentView _formInputSession]):
(-[WKContentView resignFirstResponderForWebView]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
(-[WKContentView accessoryTab:]):
(-[WKContentView insertTextSuggestion:]):
* UIProcess/mac/WebDataListSuggestionsDropdownMac.h:
* UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:
(WebKit::WebDataListSuggestionsDropdownMac::didSelectOption):
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didCloseSuggestions):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPositionInformation):
(WebKit::WebPage::getAssistedNodeInformation):

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

2 years agolldb-webkit: KeyError thrown for OptionSet with invalid value
dbates@webkit.org [Fri, 31 Aug 2018 16:44:23 +0000 (16:44 +0000)]
lldb-webkit: KeyError thrown for OptionSet with invalid value
https://bugs.webkit.org/show_bug.cgi?id=189070

Update comment to explain that we return early and do not compute the set of enumerators in the
OptionSet when the underlying value of the set is an invalid value.

Additionally, update the change log entry for r235482 to reflect the updated title for the bug
and to better describe the change that was made.

* lldb/lldb_webkit.py:
(WTFOptionSetProvider.update):

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

2 years agoFix exception check accounting in JSDataView::defineOwnProperty().
mark.lam@apple.com [Fri, 31 Aug 2018 16:05:22 +0000 (16:05 +0000)]
Fix exception check accounting in JSDataView::defineOwnProperty().
https://bugs.webkit.org/show_bug.cgi?id=189186
<rdar://problem/39786049>

Reviewed by Michael Saboff.

JSTests:

* stress/regress-189186.js: Added.

Source/JavaScriptCore:

* runtime/JSDataView.cpp:
(JSC::JSDataView::defineOwnProperty):

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

2 years agoREGRESSION(r235484) _WKPreferencesGetWebRTCLegacyAPIEnabled symbol not found when...
commit-queue@webkit.org [Fri, 31 Aug 2018 15:52:45 +0000 (15:52 +0000)]
REGRESSION(r235484) _WKPreferencesGetWebRTCLegacyAPIEnabled symbol not found when running Safari with external SDK build
https://bugs.webkit.org/show_bug.cgi?id=189188

Patch by Frederic Wang <fwang@igalia.com> on 2018-08-31
Reviewed by Youenn Fablet.

WebRTCLegacyAPI preference has been removed in r235484. However, the API is still used by
Safari when running external SDK builds. Hence we restore some dummy getter/setter for now.

* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetWebRTCLegacyAPIEnabled): no-op.
(WKPreferencesGetWebRTCLegacyAPIEnabled): Always return false.
* UIProcess/API/C/WKPreferencesRef.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _webRTCLegacyAPIEnabled]): Always return false.
(-[WKPreferences _setWebRTCLegacyAPIEnabled:]): no-op.
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:

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

2 years agoMove LibWebRTCMediaEndpoint data channel code to LibWebRTCDataChannelHandler
youenn@apple.com [Fri, 31 Aug 2018 15:51:53 +0000 (15:51 +0000)]
Move LibWebRTCMediaEndpoint data channel code to LibWebRTCDataChannelHandler
https://bugs.webkit.org/show_bug.cgi?id=189182

Reviewed by Alejandro G. Castro.

Moving data channel code outside of LibWebRTCMediaEndpoint.
This will allow future development to support unified plan.
No change of behavior.

* Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp:
(WebCore::LibWebRTCDataChannelHandler::fromRTCDataChannelInit):
(WebCore::LibWebRTCDataChannelHandler::channelEvent):
* Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h:
* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::createDataChannel):
(WebCore::LibWebRTCMediaEndpoint::OnDataChannel):
* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:

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

2 years agoMove session observers outside LibWebRTCMediaEndpoint
youenn@apple.com [Fri, 31 Aug 2018 15:50:10 +0000 (15:50 +0000)]
Move session observers outside LibWebRTCMediaEndpoint
https://bugs.webkit.org/show_bug.cgi?id=189181

Reviewed by Alejandro G. Castro.

Move classes of LibWebRTCMediaEndpoint to a separate file.
No change of behavior.

* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
* Modules/mediastream/libwebrtc/LibWebRTCObservers.h: Added.
* WebCore.xcodeproj/project.pbxproj:

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

2 years ago[Win] Some tests are failing on ews200 after upgrading iTunes.
pvollan@apple.com [Fri, 31 Aug 2018 15:29:42 +0000 (15:29 +0000)]
[Win] Some tests are failing on ews200 after upgrading iTunes.
https://bugs.webkit.org/show_bug.cgi?id=189194

Unreviewed test gardening.

* platform/win/TestExpectations:

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

2 years ago[MediaStream] Remove AVMediaCaptureSource
eric.carlson@apple.com [Fri, 31 Aug 2018 12:43:31 +0000 (12:43 +0000)]
[MediaStream] Remove AVMediaCaptureSource
https://bugs.webkit.org/show_bug.cgi?id=189159

Reviewed by Youenn Fablet.

No new tests, no change in functionality.

Refactor video capture to get rid of a base class we don't
need any more.

* WebCore.xcodeproj/project.pbxproj:
* platform/mediastream/mac/AVMediaCaptureSource.h: Removed.
* platform/mediastream/mac/AVMediaCaptureSource.mm: Removed.
* platform/mediastream/mac/AVVideoCaptureSource.h:
(WebCore::AVVideoCaptureSource::session const):
(WebCore::AVVideoCaptureSource::device const):
* platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::globaVideoCaptureSerialQueue):
(WebCore::AVVideoCaptureSource::AVVideoCaptureSource):
(WebCore::AVVideoCaptureSource::~AVVideoCaptureSource):
(WebCore::AVVideoCaptureSource::startProducingData):
(WebCore::AVVideoCaptureSource::stopProducingData):
(WebCore::AVVideoCaptureSource::beginConfiguration):
(WebCore::AVVideoCaptureSource::commitConfiguration):
(WebCore::AVVideoCaptureSource::settingsDidChange):
(WebCore::AVVideoCaptureSource::settings const):
(WebCore::AVVideoCaptureSource::capabilities const):
(WebCore::AVVideoCaptureSource::setPreset):
(WebCore::AVVideoCaptureSource::setupSession):
(WebCore::AVVideoCaptureSource::setupCaptureSession):
(WebCore::AVVideoCaptureSource::captureSessionIsRunningDidChange):
(WebCore::AVVideoCaptureSource::interrupted const):
(WebCore::AVVideoCaptureSource::captureSessionRuntimeError):
(WebCore::AVVideoCaptureSource::captureSessionBeginInterruption):
(WebCore::AVVideoCaptureSource::captureSessionEndInterruption):
(-[WebCoreAVVideoCaptureSourceObserver initWithCallback:]):
(-[WebCoreAVVideoCaptureSourceObserver disconnect]):
(-[WebCoreAVVideoCaptureSourceObserver addNotificationObservers]):
(-[WebCoreAVVideoCaptureSourceObserver removeNotificationObservers]):
(-[WebCoreAVVideoCaptureSourceObserver captureOutput:didOutputSampleBuffer:fromConnection:]):
(-[WebCoreAVVideoCaptureSourceObserver observeValueForKeyPath:ofObject:change:context:]):
(-[WebCoreAVVideoCaptureSourceObserver sessionRuntimeError:]):
(-[WebCoreAVVideoCaptureSourceObserver beginSessionInterrupted:]):
(-[WebCoreAVVideoCaptureSourceObserver endSessionInterrupted:]):
(WebCore::AVVideoCaptureSource::initializeCapabilities): Deleted.
(WebCore::AVVideoCaptureSource::initializeSupportedConstraints): Deleted.
(WebCore::AVVideoCaptureSource::updateSettings): Deleted.

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

2 years agoUnreviewed, GTK Ubuntu LTS build fix after r235543.
philn@webkit.org [Fri, 31 Aug 2018 12:02:46 +0000 (12:02 +0000)]
Unreviewed, GTK Ubuntu LTS build fix after r235543.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

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

2 years agoREGRESSION (r226407): Remove unused BlockStack.h
ddkilzer@apple.com [Fri, 31 Aug 2018 11:47:51 +0000 (11:47 +0000)]
REGRESSION (r226407): Remove unused BlockStack.h
<https://webkit.org/b/189189>

Reviewed by Yusuke Suzuki.

* WTF.xcodeproj/project.pbxproj: Remove references to BlockStack.h.
* wtf/BlockStack.h: Remove.
* wtf/CMakeLists.txt: Remove references to BlockStack.h.

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

2 years agoWebKitLauncher: Move WebKitLauncher.entitlements into Configurations directory
ddkilzer@apple.com [Fri, 31 Aug 2018 10:54:22 +0000 (10:54 +0000)]
WebKitLauncher: Move WebKitLauncher.entitlements into Configurations directory

This makes the Configurations folder in the Xcode project match
what's in the Configurations directory on disk.  Found by
tidy-Xcode-project-file (see Bug 188754).

* WebKitLauncher/Configurations/WebKitLauncher.entitlements: Rename from Tools/WebKitLauncher/WebKitLauncher.entitlements.
* WebKitLauncher/WebKitLauncher.xcodeproj/project.pbxproj:
- Update project for file move.

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

2 years agoWebKitLauncher: Fix build failures
ddkilzer@apple.com [Fri, 31 Aug 2018 10:54:16 +0000 (10:54 +0000)]
WebKitLauncher: Fix build failures

* WebKitLauncher/Configurations/Base.xcconfig:
(ARCHS): Use $(ARCHS_STANDARD_32_64_BIT).
(MACOSX_DEPLOYMENT_TARGET): Update from Snow Leopard to Sierra.

* WebKitLauncher/WebKitNightlyEnabler.m:
(myApplicationWillFinishLaunching):
* WebKitLauncher/main.m:
(displayErrorAndQuit):
(locateSafariBundle):
- Use pragma to ignore deprecation warnings.

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

2 years agoUnreviewed, fix compilation warning in EME GStreamer backend.
philn@webkit.org [Fri, 31 Aug 2018 10:47:22 +0000 (10:47 +0000)]
Unreviewed, fix compilation warning in EME GStreamer backend.

Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:1293:19:
warning: format ‘%lu’ expects argument of type ‘long unsigned
int’, but argument 9 has type ‘unsigned int’ [-Wformat=]

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::initializationDataEncountered):

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

2 years ago[GStreamer][GL] useless ifdef in pushTextureToCompositor
philn@webkit.org [Fri, 31 Aug 2018 10:22:57 +0000 (10:22 +0000)]
[GStreamer][GL] useless ifdef in pushTextureToCompositor
https://bugs.webkit.org/show_bug.cgi?id=188552

Patch by Philippe Normand <philn@igalia.com> on 2018-08-31
Reviewed by Xabier Rodriguez-Calvar.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor):
There's no need for an ifdef because the frame holder already
ensures a valid texture ID will be set if it maps a GL video frame.

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

2 years agoREGRESSION (r235190): Fix name of WebAudioBufferList.{cpp,h} in Xcode project
ddkilzer@apple.com [Fri, 31 Aug 2018 10:19:43 +0000 (10:19 +0000)]
REGRESSION (r235190): Fix name of WebAudioBufferList.{cpp,h} in Xcode project

* WebCore.xcodeproj/project.pbxproj:
- Add the 'name' parameter to the file references, then fix the
  visual name everywhere else, so these files don't appear as
  "cocoa/WebAudioBufferList.{cpp,h}" in the project.

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

2 years agoMobileMiniBrowser: Move test2s.mp4 into Resources directory
ddkilzer@apple.com [Fri, 31 Aug 2018 10:19:38 +0000 (10:19 +0000)]
MobileMiniBrowser: Move test2s.mp4 into Resources directory

This makes the Resources folder in the Xcode project match
what's in the Resources directory on disk.  Found by
tidy-Xcode-project-file (see Bug 188754).

* MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj:
- Update project for file move.
* MobileMiniBrowser/MobileMiniBrowserFramework/Resources/test2s.mp4: Rename from Tools/MobileMiniBrowser/MobileMiniBrowserFramework/test2s.mp4.

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

2 years agoAdd missing exception check in arrayProtoFuncLastIndexOf().
mark.lam@apple.com [Fri, 31 Aug 2018 08:40:35 +0000 (08:40 +0000)]
Add missing exception check in arrayProtoFuncLastIndexOf().
https://bugs.webkit.org/show_bug.cgi?id=189184
<rdar://problem/39785959>

Reviewed by Yusuke Suzuki.

JSTests:

* stress/regress-189184.js: Added.

Source/JavaScriptCore:

* runtime/ArrayPrototype.cpp:
(JSC::arrayProtoFuncLastIndexOf):

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

2 years agoBug 182053 - [CSSOM View] Implement standard behavior for scrollingElement
commit-queue@webkit.org [Fri, 31 Aug 2018 07:49:32 +0000 (07:49 +0000)]
Bug 182053 - [CSSOM View] Implement standard behavior for scrollingElement
https://bugs.webkit.org/show_bug.cgi?id=182053

Patch by Frederic Wang <fwang@igalia.com> on 2018-08-31
Reviewed by Simon Fraser.

Source/WebCore:

This commit introduces a new CSSOMViewScrollingAPIEnabled flag that will be used to implement
the standard behavior of DOM scroll* API as specified by the CSSOM View spec (see bug 5991).
It changes the behavior of document.scrollingElement so that it follows the spec when the
flag is enabled. This will allow to pass the WPT test cssom-view/scrollingElement.html when
it becomes the default behavior. WPT tests cssom-view/scrollingElement-quirks-dynamic*.html
still fail; comparing with Chromium's code, we might need to propagate the style of <html>
and <body> to the viewport element. Behaviors for other scrolling attributes will be changed
in follow-up bugs.

Tests: fast/dom/Document/scrollingElement-quirks-mode.html
       fast/dom/Document/scrollingElement-standard-mode.html

* dom/Document.cpp:
(WebCore::Document::isBodyPotentiallyScrollable): Helper function to verify whether the body
is potentially scrollable, as defined by the CSSOM View spec. It seems that
RenderObject::hasOverflowClip() may return incorrect value at this point and we might need
to do something similar to Chromium's style propagation to make it work. For now, we just
use the computed style. See bug 182292.
(WebCore::Document::scrollingElement): When CSSOMViewScrollingAPIEnabled is enabled, we
implement the algorithm of the CSSOM View spec.
(WebCore::Document::body const): Verify that the root is actually a <html> element or
otherwise return null. This is required by the CSSOM View spec and for WPT test
scrollingElement.html. It is consistent  with bodyOrFrameset().
* dom/Document.h: Add spec references for body() and bodyOrFrameset() and declare
isBodyPotentiallyScrollable().
* page/Settings.yaml: Add developer option for enabling the CSSOM View behavior.
* rendering/style/RenderStyle.h:
(WebCore::RenderStyle::isOverflowVisible const): Add helper function to check whether the
style implies visible overflow.

Source/WebKit:

Add developer flag to use standard behavior for scrolling* attributes.

* Shared/WebPreferences.yaml:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetCSSOMViewScrollingAPIEnabled):
(WKPreferencesGetCSSOMViewScrollingAPIEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:

Source/WebKitLegacy/mac:

Add developer flag to use standard behavior for scrolling* attributes.

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences CSSOMViewScrollingAPIEnabled]):
(-[WebPreferences setCSSOMViewScrollingAPIEnabled:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Source/WebKitLegacy/win:

Add developer flag to use standard behavior for scrolling* attributes.

* Interfaces/IWebPreferencesPrivate.idl:
* WebPreferenceKeysPrivate.h:
* WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings):
(WebPreferences::CSSOMViewScrollingAPIEnabled):
(WebPreferences::setCSSOMViewScrollingAPIEnabled):
* WebPreferences.h:
* WebView.cpp:
(WebView::notifyPreferencesChanged):

Tools:

Add FIXMEs comments to add the new developer flag in the future and  disable it for now.

* DumpRenderTree/mac/DumpRenderTree.mm:
(enableExperimentalFeatures):
(resetWebPreferencesToConsistentValues):
* DumpRenderTree/win/DumpRenderTree.cpp:
(enableExperimentalFeatures):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

Add a test to check that in Quirks mode, the <body> element returned by
document.scrollingElement is indeed a child of a <html> root (i.e. in the HTML namespace).
Adjust scrollingElement*.html tests so that they are executed with the flag
CSSOMViewScrollingAPI enabled and update expectations now that these tests pass.

* fast/dom/Document/scrollingElement-quirks-mode.html:
* fast/dom/Document/scrollingElement-quirks-mode-expected.txt:
* fast/dom/Document/scrollingElement-standards-mode.html:
* fast/dom/Document/scrollingElement-standards-mode-expected.txt:

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

2 years agoconvertToRegExpMatchFastGlobal must use KnownString as the child use kind
sbarati@apple.com [Fri, 31 Aug 2018 07:45:02 +0000 (07:45 +0000)]
convertToRegExpMatchFastGlobal must use KnownString as the child use kind
https://bugs.webkit.org/show_bug.cgi?id=189173
<rdar://problem/43501645>

Reviewed by Michael Saboff.

JSTests:

* stress/may-exit-should-be-false-regexp-constant-folding.js: Added.
(foo):
(bar):

Source/JavaScriptCore:

We were crashing during validation because mayExit returned true
at a point in the program when we weren't allowed to exit.

The issue was is in StrengthReduction: we end up emitting code that
had a StringUse on an edge after a node that did side effects and before
an ExitOK/bytecode number transition. However, StrenghReduction did the
right thing here and also emitted the type checks before the node with
side effects. It just did bad bookkeeping. The node we convert to needs
to use KnownStringUse instead of StringUse for the child edge.

* dfg/DFGNode.cpp:
(JSC::DFG::Node::convertToRegExpExecNonGlobalOrStickyWithoutChecks):
(JSC::DFG::Node::convertToRegExpMatchFastGlobalWithoutChecks):
(JSC::DFG::Node::convertToRegExpExecNonGlobalOrSticky): Deleted.
(JSC::DFG::Node::convertToRegExpMatchFastGlobal): Deleted.
* dfg/DFGNode.h:
* dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):

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

2 years agoCounterMaps should hold a unique_ptr of CounterMap.
zalan@apple.com [Fri, 31 Aug 2018 04:27:44 +0000 (04:27 +0000)]
CounterMaps should hold a unique_ptr of CounterMap.
https://bugs.webkit.org/show_bug.cgi?id=189174
<rdar://problem/43686458>

Reviewed by Ryosuke Niwa.

Source/WebCore:

In certain cases calls to CounterMaps might lead to unexpected deletion of the CounterMap object.

Test: fast/css/counters/crash-when-cloning-body.html

* rendering/RenderCounter.cpp:
(WebCore::makeCounterNode):
(WebCore::destroyCounterNodeWithoutMapRemoval):
(WebCore::RenderCounter::destroyCounterNodes):
(WebCore::RenderCounter::destroyCounterNode):
(WebCore::updateCounters):
(showCounterRendererTree):

LayoutTests:

* fast/css/counters/crash-when-cloning-body-expected.txt: Added.
* fast/css/counters/crash-when-cloning-body.html: Added.

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

2 years agoSpeculative build fix for WPE after r235531.
ross.kirsling@sony.com [Fri, 31 Aug 2018 04:17:19 +0000 (04:17 +0000)]
Speculative build fix for WPE after r235531.

* platform/graphics/filters/PointLightSource.cpp:
Add missing include.

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

2 years agoAdd assignedElements to HTMLSlotElement
rniwa@webkit.org [Fri, 31 Aug 2018 02:26:26 +0000 (02:26 +0000)]
Add assignedElements to HTMLSlotElement
https://bugs.webkit.org/show_bug.cgi?id=189146

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaselined the tests now that we're passing all test cases.

* web-platform-tests/shadow-dom/slots-expected.txt:
* web-platform-tests/shadow-dom/slots-fallback-expected.txt:

Source/WebCore:

Added assignedElements to HTMLSlotElement. For now, we simply filter the results returned by assignedNodes.

Also fixed a bug that assignedNodes was returning the fallback content when the slot is not in a shadow tree,
which is specified in step 2 of the concept to find flattened slotables for a slot.

Spec: https://html.spec.whatwg.org/multipage/scripting.html#dom-slot-assignedelements
      https://dom.spec.whatwg.org/#find-flattened-slotables

Tests: imported/w3c/web-platform-tests/shadow-dom/slots.html
       imported/w3c/web-platform-tests/shadow-dom/slots-fallback.html

* html/HTMLSlotElement.cpp:
(WebCore::flattenAssignedNodes): Updated to take Vector<Ref<Node>> for consistency.
(WebCore::HTMLSlotElement::assignedNodes const): Ditto.
(WebCore::HTMLSlotElement::assignedElements const):
* html/HTMLSlotElement.h:
* html/HTMLSlotElement.idl:

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

2 years agoOne more build fix
timothy_horton@apple.com [Fri, 31 Aug 2018 01:03:35 +0000 (01:03 +0000)]
One more build fix

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView shareSheetDidDismiss:]):
Actually tested this time.

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

2 years ago[WHLSL] Fix array indexing behavior
commit-queue@webkit.org [Fri, 31 Aug 2018 00:39:09 +0000 (00:39 +0000)]
[WHLSL] Fix array indexing behavior
https://bugs.webkit.org/show_bug.cgi?id=189175

Array, pointer, and array ref types are now parsed and then constructed
in reverse so that the declaration order matches the indexing order, as
in C/C++.

Patch by Thomas Denney <tdenney@apple.com> on 2018-08-30
Reviewed by Myles C. Maxfield.

* WebGPUShadingLanguageRI/Parse.js:
(parseType):
* WebGPUShadingLanguageRI/Test.js:

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

2 years agoAdd WKPageLoadFile SPI variant which returns a navigation object
cdumez@apple.com [Thu, 30 Aug 2018 23:32:14 +0000 (23:32 +0000)]
Add WKPageLoadFile SPI variant which returns a navigation object
https://bugs.webkit.org/show_bug.cgi?id=189168
<rdar://problem/43899330>

Reviewed by Alex Christensen.

Add WKPageLoadFile SPI variant which returns a navigation object, similarly to WKPageLoadURLRequestReturningNavigation().
This is needed in order to implement <rdar://problem/40309266>.

* UIProcess/API/C/mac/WKPagePrivateMac.h:
* UIProcess/API/C/mac/WKPagePrivateMac.mm:
(WKPageLoadFileReturningNavigation):

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

2 years ago[CMake] Replace AVFoundationSupport.py using CMake
don.olmstead@sony.com [Thu, 30 Aug 2018 23:28:10 +0000 (23:28 +0000)]
[CMake] Replace AVFoundationSupport.py using CMake
https://bugs.webkit.org/show_bug.cgi?id=182891

Reviewed by Per Arne Vollan.

.:

Adds CMake checks for AVFoundation support replacing the functionality
of AVFoundationSupport.py.

CMake is used to detect the symbols expected with the HAVE_* checks for
AVFoundation support. This involves creating source files that will be
built which verifies the presence of symbols. For Apple frameworks it
is customary to include the main framework file which includes the
other associated headers.

The check for HAVE_AVCFPLAYERITEM_CALLBACK_VERSION_2 involves looking
for an enumeration which a symbol check cannot detect. Instead a small
program is used which will compile and link when the version 2
enumeration is present.

* Source/cmake/OptionsAppleWin.cmake:
* Source/cmake/OptionsWin.cmake:
* Source/cmake/WebKitCommon.cmake:
* Source/cmake/WebKitFeatures.cmake:

Source/WebCore:

No new tests. No change in behavior.

Remove refernces to PAL derived sources.

* PlatformWin.cmake:
* config.h:

Source/WebCore/PAL:

Remove AVFoundationSupport.py file and its invocation.

* AVFoundationSupport.py: Removed.
* config.h:
* pal/PlatformWin.cmake:

Source/WebKitLegacy/win:

Remove references to the config.h contained in WebCore as it should
not be accessible from outside of WebCore.

* WebKitPrefix.h:

Source/WTF:

Rely on CMake values for the added HAVE_* checks.

* wtf/Platform.h:

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

2 years agoTry to fix the watchOS and tvOS build
timothy_horton@apple.com [Thu, 30 Aug 2018 23:10:51 +0000 (23:10 +0000)]
Try to fix the watchOS and tvOS build

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _showShareSheet:completionHandler:]):
(-[WKContentView shareSheetDidDismiss:]):

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

2 years ago[GTK] Touchscreen pinch to zoom should scale the page like other platforms
commit-queue@webkit.org [Thu, 30 Aug 2018 22:55:27 +0000 (22:55 +0000)]
[GTK] Touchscreen pinch to zoom should scale the page like other platforms
https://bugs.webkit.org/show_bug.cgi?id=188746

Changes the pinch-to-zoom gesture to magnify/scale the page, rather than zooming in. Also resets this magnification when the zoom level is changed.

Patch by Justin Michaud <justin@justinmichaud.com> on 2018-08-30
Reviewed by Michael Catanzaro.

* UIProcess/API/glib/WebKitWebView.cpp:
(webkit_web_view_set_zoom_level):
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::zoom): Deleted.
* UIProcess/API/gtk/PageClientImpl.h:
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
* UIProcess/gtk/GestureController.cpp:
(WebKit::GestureController::ZoomGesture::handleZoom):
(WebKit::GestureController::ZoomGesture::scaleChanged):
* UIProcess/gtk/GestureController.h:

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

2 years agoFollowup to [iOS] TestWebKitAPI.PasteImage tests are flaky failures
wenson_hsieh@apple.com [Thu, 30 Aug 2018 22:50:33 +0000 (22:50 +0000)]
Followup to [iOS] TestWebKitAPI.PasteImage tests are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=185965

Reviewed by Andy Estes.

The first attempt to fix these flaky tests on iOS caused timeouts on macOS while waiting for a "loaded" message
from the page. To (hopefully) fix this across both platforms, make sure that we first register our script
message handlers in the UI process *before* evaluating script that could propagate the script message.

* TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm:
(-[TestWKWebView waitForMessage:afterEvaluatingScript:]):
(TEST):

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

2 years agoSwitch int8_t to GPRReg in StructureStubInfo because sizeof(GPRReg) == sizeof(int8_t)
sbarati@apple.com [Thu, 30 Aug 2018 22:37:34 +0000 (22:37 +0000)]
Switch int8_t to GPRReg in StructureStubInfo because sizeof(GPRReg) == sizeof(int8_t)
https://bugs.webkit.org/show_bug.cgi?id=189166

Reviewed by Mark Lam.

* bytecode/AccessCase.cpp:
(JSC::AccessCase::generateImpl):
* bytecode/GetterSetterAccessCase.cpp:
(JSC::GetterSetterAccessCase::emitDOMJITGetter):
* bytecode/InlineAccess.cpp:
(JSC::getScratchRegister):
* bytecode/PolymorphicAccess.cpp:
(JSC::PolymorphicAccess::regenerate):
* bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::valueRegs const):
* jit/JITInlineCacheGenerator.cpp:
(JSC::JITByIdGenerator::JITByIdGenerator):
(JSC::JITGetByIdWithThisGenerator::JITGetByIdWithThisGenerator):
(JSC::JITInstanceOfGenerator::JITInstanceOfGenerator):

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

2 years ago[WHLSL] Implement tests to verify array indexing order matches our desires
commit-queue@webkit.org [Thu, 30 Aug 2018 21:53:43 +0000 (21:53 +0000)]
[WHLSL] Implement tests to verify array indexing order matches our desires
https://bugs.webkit.org/show_bug.cgi?id=189099

Patch by Thomas Denney <tdenney@apple.com> on 2018-08-30
Reviewed by Myles C. Maxfield.

* WebGPUShadingLanguageRI/Test.js: Add new test for array indexing order
and the option to explicitly disable tests (this test is disabled by
default).
* WebGPUShadingLanguageRI/TypeRef.js:
(TypeRef.wrap): Fixes  typo.

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

2 years agoREGRESSION(r235489): fast/dom/navigator-detached-no-crash.html crashes under Navigato...
commit-queue@webkit.org [Thu, 30 Aug 2018 21:33:38 +0000 (21:33 +0000)]
REGRESSION(r235489): fast/dom/navigator-detached-no-crash.html crashes under Navigator::share
https://bugs.webkit.org/show_bug.cgi?id=189170

Patch by Olivia Barnett <obarnett@apple.com> on 2018-08-30
Reviewed by Tim Horton.

No new tests; fixing a failing existing test.

* page/Navigator.cpp:
(WebCore::Navigator::share):
Added null check for frame.

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

2 years agoUnreviewed, rolling out r235516.
tsavell@apple.com [Thu, 30 Aug 2018 20:54:35 +0000 (20:54 +0000)]
Unreviewed, rolling out r235516.

Caused 50 Crashes on Sierra

Reverted changeset:

"The width of a nullptr TextRun should be zero"
https://bugs.webkit.org/show_bug.cgi?id=189154
https://trac.webkit.org/changeset/235516

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

2 years agoBundle unified sources more tightly in projects with deep directory structures
timothy_horton@apple.com [Thu, 30 Aug 2018 20:31:32 +0000 (20:31 +0000)]
Bundle unified sources more tightly in projects with deep directory structures
https://bugs.webkit.org/show_bug.cgi?id=189009

Reviewed by Simon Fraser.

* Scripts/generate-unified-source-bundles.rb:
It turns out our plan to switch unified source bundle every time the directory
changes is not a good fit for projects like WebKit2 with many small directories.
It leaves many unified source bundles with only a single source file,
achieving only ~40% density.

Instead, switch unified source bundles every time the top-level directory changes.
This still achieves the goal of *usually* only rebuilding the one top-level
directory you touched, and increases source bundle density wildly, to ~95%.

Fix a variety of unification errors due to reshuffling the bundles.

* Modules/mediastream/RTCController.cpp:
* SourcesCocoa.txt:
* WebCore.xcodeproj/project.pbxproj:
* crypto/algorithms/CryptoAlgorithmECDSA.cpp:
(WebCore::CryptoAlgorithmECDSA::importKey):
* dom/Document.h:
* html/parser/HTMLTreeBuilder.cpp:
* loader/appcache/ApplicationCacheResourceLoader.h:
* page/AlternativeTextClient.h:
* platform/Pasteboard.h:
* platform/graphics/DisplayRefreshMonitor.cpp:
* platform/graphics/FontFamilySpecificationNull.cpp:
* platform/graphics/cocoa/WebGLLayer.mm:
(-[WebGLLayer initWithGraphicsContext3D:]):
(-[WebGLLayer copyImageSnapshotWithColorSpace:]):
(-[WebGLLayer display]):
(-[WebGLLayer allocateIOSurfaceBackingStoreWithSize:usingAlpha:]):
* platform/graphics/cocoa/WebGPULayer.mm:
(-[WebGPULayer initWithGPUDevice:]):
* platform/graphics/metal/GPUCommandQueueMetal.mm:
* platform/mac/PasteboardMac.mm:
* platform/mediastream/mac/DisplayCaptureManagerCocoa.cpp:
* platform/network/ResourceRequestBase.cpp:
* rendering/updating/RenderTreeBuilderBlockFlow.cpp:
* rendering/updating/RenderTreeBuilderInline.cpp:

* Shared/APIWebArchive.mm:
* Shared/APIWebArchiveResource.mm:
* Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
* Shared/Plugins/Netscape/mac/PluginInformationMac.mm:
* SourcesCocoa.txt:
* SourcesGTK.txt:
* UIProcess/API/APIAutomationSessionClient.h:
(API::AutomationSessionClient::sessionIdentifier const):
(API::AutomationSessionClient::messageOfCurrentJavaScriptDialogOnPage):
(API::AutomationSessionClient::setUserInputForCurrentJavaScriptPromptOnPage):
* UIProcess/Cocoa/LegacyCustomProtocolManagerClient.mm:
(-[WKCustomProtocolLoader initWithLegacyCustomProtocolManagerProxy:customProtocolID:request:]):
(-[WKCustomProtocolLoader connection:didFailWithError:]):
(-[WKCustomProtocolLoader connection:didReceiveResponse:]):
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::generatePluginProcessCallbackID):
(WebKit::PluginProcessProxy::fetchWebsiteData):
(WebKit::PluginProcessProxy::deleteWebsiteData):
(WebKit::PluginProcessProxy::deleteWebsiteDataForHostNames):
(WebKit::generateCallbackID): Deleted.
* UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:
(-[WKScrollingNodeScrollViewDelegate scrollViewWillEndDragging:withVelocity:targetContentOffset:]):
* UIProcess/Storage/StorageProcessProxy.cpp:
(WebKit::generateStorageProcessCallbackID):
(WebKit::StorageProcessProxy::fetchWebsiteData):
(WebKit::StorageProcessProxy::deleteWebsiteData):
(WebKit::StorageProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::generateCallbackID): Deleted.
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(-[WKPDFPluginAccessibilityObject accessibilityPerformAction:]):
(-[WKPDFPluginAccessibilityObject accessibilityFocusedUIElement]):
(-[WKPDFPluginAccessibilityObject accessibilityAssociatedControlForAnnotation:]):
(-[WKPDFPluginAccessibilityObject accessibilityHitTest:]):
(-[WKPDFLayerControllerDelegate updateScrollPosition:]):
(WebKit::PDFPlugin::updateCursor):
(WebKit::coreCursor):
(appendValuesInPDFNameSubtreeToVector): Deleted.
(getAllValuesInPDFNameTree): Deleted.
(getAllScriptsInPDFDocument): Deleted.

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

2 years agoFix the watchOS and tvOS build
timothy_horton@apple.com [Thu, 30 Aug 2018 20:01:46 +0000 (20:01 +0000)]
Fix the watchOS and tvOS build

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

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

2 years agoRemove WebRTC legacy API implementation
youenn@apple.com [Thu, 30 Aug 2018 20:01:33 +0000 (20:01 +0000)]
Remove WebRTC legacy API implementation
https://bugs.webkit.org/show_bug.cgi?id=189040
<rdar://problem/43861361>

Unreviewed.

* platform/ios/TestExpectations: Use default expectations for the folder.
This allows skipping imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription.html

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

2 years ago[Payment Request] Implement the PaymentMethodChangeEvent and PaymentMethodChangeEvent...
aestes@apple.com [Thu, 30 Aug 2018 19:57:19 +0000 (19:57 +0000)]
[Payment Request] Implement the PaymentMethodChangeEvent and PaymentMethodChangeEventInit interfaces
https://bugs.webkit.org/show_bug.cgi?id=189100

Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

* web-platform-tests/payment-request/PaymentMethodChangeEvent/methodDetails-attribute.https-expected.txt:
* web-platform-tests/payment-request/PaymentMethodChangeEvent/methodName-attribute.https-expected.txt:
* web-platform-tests/payment-request/onpaymentmenthodchange-attribute.https-expected.txt:

Source/WebCore:

Implement the PaymentMethodChangeEvent interface and PaymentMethodChangeEventInit dictionary
defined in the Payment Request API W3C Editor's Draft of 30 August 2018.

<https://w3c.github.io/payment-request/#paymentmethodchangeevent-interface>

The "payment method changed" algorithm will be implemented in a follow-up.

Covered by existing web platform tests.

* CMakeLists.txt:
* DerivedSources.make:
* Modules/paymentrequest/PaymentMethodChangeEvent.cpp: Added.
(WebCore::PaymentMethodChangeEvent::eventInterface const):
(WebCore::PaymentMethodChangeEvent::PaymentMethodChangeEvent):
* Modules/paymentrequest/PaymentMethodChangeEvent.h: Added.
* Modules/paymentrequest/PaymentMethodChangeEvent.idl: Added.
* Modules/paymentrequest/PaymentMethodChangeEventInit.h: Added.
* Modules/paymentrequest/PaymentMethodChangeEventInit.idl: Added.
* Modules/paymentrequest/PaymentRequest.idl:
* Modules/paymentrequest/PaymentRequestUpdateEvent.cpp:
(WebCore::PaymentRequestUpdateEvent::PaymentRequestUpdateEvent):
* Modules/paymentrequest/PaymentRequestUpdateEvent.h:
* Modules/paymentrequest/PaymentRequestUpdateEventInit.h:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreBuiltinNames.h:
* dom/EventNames.h:
* dom/EventNames.in:

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

2 years agoInlineAccess should do StringLength
sbarati@apple.com [Thu, 30 Aug 2018 19:46:56 +0000 (19:46 +0000)]
InlineAccess should do StringLength
https://bugs.webkit.org/show_bug.cgi?id=158911

Reviewed by Yusuke Suzuki.

This patch extends InlineAccess to support StringLength. This patch also
fixes AccessCase::fromStructureStubInfo to support ArrayLength and StringLength.
I forgot to implement this for ArrayLength in the initial InlineAccess
implementation.  Supporting StringLength is a natural extension of the
InlineAccess machinery.

* assembler/MacroAssembler.h:
(JSC::MacroAssembler::patchableBranch8):
* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::patchableBranch8):
* bytecode/AccessCase.cpp:
(JSC::AccessCase::fromStructureStubInfo):
* bytecode/BytecodeDumper.cpp:
(JSC::BytecodeDumper<Block>::printGetByIdCacheStatus):
* bytecode/InlineAccess.cpp:
(JSC::InlineAccess::dumpCacheSizesAndCrash):
(JSC::InlineAccess::generateSelfPropertyAccess):
(JSC::getScratchRegister):
(JSC::InlineAccess::generateSelfPropertyReplace):
(JSC::InlineAccess::generateArrayLength):
(JSC::InlineAccess::generateSelfInAccess):
(JSC::InlineAccess::generateStringLength):
* bytecode/InlineAccess.h:
* bytecode/PolymorphicAccess.cpp:
(JSC::PolymorphicAccess::regenerate):
* bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::initStringLength):
(JSC::StructureStubInfo::deref):
(JSC::StructureStubInfo::aboutToDie):
(JSC::StructureStubInfo::propagateTransitions):
* bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::baseGPR const):
* jit/Repatch.cpp:
(JSC::tryCacheGetByID):

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

2 years agoThe width of a nullptr TextRun should be zero
bfulgham@apple.com [Thu, 30 Aug 2018 19:37:37 +0000 (19:37 +0000)]
The width of a nullptr TextRun should be zero
https://bugs.webkit.org/show_bug.cgi?id=189154
<rdar://problem/43685926>

Reviewed by Zalan Bujtas.

Source/WebCore:

If a page has an empty TextRun and attempts to paint it we can crash with a nullptr.

This patch recognizes that an empty TextRun should always produce a zero width, rather than
attempt to compute this value from font data.

Test: fast/text/null-string-textrun.html

* platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::widthOfTextRange const): An empty TextRun has zero width.
(WebCore::FontCascade::width const): Ditto.
(WebCore::FontCascade::codePath const): ASSERT that the TextRun is non-empty.

LayoutTests:

* fast/text/null-string-textrun-expected.txt: Added.
* fast/text/null-string-textrun.html: Added.

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

2 years agoCSE DataViewGet* DFG nodes
sbarati@apple.com [Thu, 30 Aug 2018 19:27:56 +0000 (19:27 +0000)]
CSE DataViewGet* DFG nodes
https://bugs.webkit.org/show_bug.cgi?id=188768

Reviewed by Yusuke Suzuki.

JSTests:

* microbenchmarks/dataview-cse.js: Added.
(assert):
(test):
* stress/dataview-get-cse.js: Added.
(assert):
(test1.foo):
(test1):
(test2.foo):
(test2):
(test3.foo):
(test3):
(test4.foo):
(test4):
(test5.foo):
(test5):
(test6.foo):
(test6):

Source/JavaScriptCore:

This patch makes it so that we CSE DataViewGet* accesses. To do this,
I needed to add a third descriptor to HeapLocation to represent the
isLittleEndian child. This patch is neutral on compile time benchmarks,
and is a 50% speedup on a trivial CSE microbenchmark that I added.

* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGHeapLocation.cpp:
(WTF::printInternal):
* dfg/DFGHeapLocation.h:
(JSC::DFG::HeapLocation::HeapLocation):
(JSC::DFG::HeapLocation::hash const):
(JSC::DFG::HeapLocation::operator== const):
(JSC::DFG::indexedPropertyLocForResultType):

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

2 years agooutput of toString() of Generator is wrong
yusukesuzuki@slowstart.org [Thu, 30 Aug 2018 19:05:34 +0000 (19:05 +0000)]
output of toString() of Generator is wrong
https://bugs.webkit.org/show_bug.cgi?id=188952

Reviewed by Saam Barati.

JSTests:

* stress/function-to-string.js: Added.
(shouldBe):
(shouldBe.test):
(test):
(shouldBe.async.test):
(async.test):
(shouldBe.async):
(async):
* test262/expectations.yaml:

Source/JavaScriptCore:

Function#toString does not respect generator and async generator.
This patch fixes them and supports all the function types.

* runtime/FunctionPrototype.cpp:
(JSC::functionProtoFuncToString):

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

2 years agoMock video devices should only support discrete sizes
eric.carlson@apple.com [Thu, 30 Aug 2018 19:03:55 +0000 (19:03 +0000)]
Mock video devices should only support discrete sizes
https://bugs.webkit.org/show_bug.cgi?id=189000
<rdar://problem/43766551>

Reviewed by Youenn Fablet.
Source/WebCore:

While many/most video capture devices only support a finite number of discrete width/height
pairs, our mock video capture devices supported arbitrary width and height combinations which
made it difficult to write realistic tests using them. Change the mock devices to support
finite "presets" like those supported by AVFoundation. Create a RealtimeVideoSource base
class with support for these presets, so the same code will eventually be used by the mock
and real capture devices.

No new tests, existing tests updated for these changes.

* Sources.txt: Add RealtimeVideoSource.cpp, remove MockRealtimeMediaSource.cpp.

* WebCore.xcodeproj/project.pbxproj: Ditto.

* platform/mediastream/MediaConstraints.h: Deal with min constraint less than the supported minimum
and max larger than the supported maximum when there is no ideal.

* platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::selectSettings): Use supportsSizeAndFrameRate for widths,
heights, and framerates in advanced constraints so a width and height that are supported but
in the same preset are filtered out.
(WebCore::RealtimeMediaSource::setSize): New.
* platform/mediastream/RealtimeMediaSource.h:

* platform/mediastream/RealtimeMediaSourceSettings.h: Remove an unneeded include.

* platform/mediastream/RealtimeVideoSource.cpp: Added.
(WebCore::RealtimeVideoSource::RealtimeVideoSource):
(WebCore::RealtimeVideoSource::~RealtimeVideoSource):
(WebCore::RealtimeVideoSource::startProducingData):
(WebCore::RealtimeVideoSource::setSupportedFrameRates):
(WebCore::RealtimeVideoSource::addSupportedCapabilities const):
(WebCore::RealtimeVideoSource::supportsSizeAndFrameRate):
(WebCore::RealtimeVideoSource::bestSupportedCaptureSizeForWidthAndHeight):
(WebCore::RealtimeVideoSource::applySize):
(WebCore::RealtimeVideoSource::applySizeAndFrameRate):
(WebCore::RealtimeVideoSource::videoSampleAvailable):
(WebCore::RealtimeVideoSource::applyFrameRate):
(WebCore::RealtimeVideoSource::supportsFrameRate):

* platform/mediastream/RealtimeVideoSource.h: Copied from Source/WebCore/platform/mock/MockRealtimeAudioSource.h.
(WebCore::RealtimeVideoSource::setSupportedCaptureSizes):
(WebCore::RealtimeVideoSource::setDefaultSize):
(WebCore::RealtimeVideoSource::observedFrameRate const):

* platform/mediastream/mac/AVMediaCaptureSource.mm:
(WebCore::AVMediaCaptureSource::initializeSettings): Don't set label, it isn't used.

* platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
(WebCore::MockRealtimeVideoSourceMac::applySize): Call the base class.

* platform/mock/MockMediaDevice.h:
(WebCore::MockCameraProperties::encode const): Add frame rates, sizes, and facing mode.
(WebCore::MockCameraProperties::decode): Ditto.

* platform/mock/MockRealtimeAudioSource.cpp:
(WebCore::MockRealtimeAudioSource::MockRealtimeAudioSource): No more MockRealtimeMediaSource.
(WebCore::MockRealtimeAudioSource::settings const): Clean up.
(WebCore::MockRealtimeAudioSource::capabilities const): Ditto.
(WebCore::MockRealtimeAudioSource::settingsDidChange): Ditto.
(WebCore::MockRealtimeAudioSource::stopProducingData): m_elapsedTime isn't used, delete it.
(WebCore::MockRealtimeAudioSource::updateSettings): Deleted.
(WebCore::MockRealtimeAudioSource::initializeCapabilities): Deleted.
(WebCore::MockRealtimeAudioSource::initializeSupportedConstraints): Deleted.
(WebCore::MockRealtimeAudioSource::elapsedTime): Deleted.
* platform/mock/MockRealtimeAudioSource.h:

* platform/mock/MockRealtimeMediaSourceCenter.cpp: Moved all of the mock device management
code from MockRealtimeMediaSource.cpp here.
(WebCore::defaultDevices):
(WebCore::devices):
(WebCore::deviceMap):
(WebCore::deviceListForDevice):
(WebCore::createCaptureDevice):
(WebCore::MockRealtimeMediaSourceCenter::resetDevices):
(WebCore::MockRealtimeMediaSourceCenter::setDevices):
(WebCore::MockRealtimeMediaSourceCenter::addDevice):
(WebCore::MockRealtimeMediaSourceCenter::removeDevice):
(WebCore::MockRealtimeMediaSourceCenter::mockDeviceWithPersistentID):
(WebCore::MockRealtimeMediaSourceCenter::captureDeviceWithPersistentID):
(WebCore::MockRealtimeMediaSourceCenter::audioDevices):
(WebCore::MockRealtimeMediaSourceCenter::videoDevices):
(WebCore::MockRealtimeMediaSourceCenter::displayDevices):

* platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource): Use RealtimeVideoSource, no
more MockRealtimeMediaSource.
(WebCore::MockRealtimeVideoSource::capabilities const): Ditto, cleanup.
(WebCore::MockRealtimeVideoSource::settings const): Ditto.
(WebCore::MockRealtimeVideoSource::settingsDidChange): Ditto.
(WebCore::MockRealtimeVideoSource::startCaptureTimer): Ditto.
(WebCore::MockRealtimeVideoSource::startProducingData): Ditto.
(WebCore::MockRealtimeVideoSource::stopProducingData): Ditto.
(WebCore::MockRealtimeVideoSource::elapsedTime): Ditto.
(WebCore::MockRealtimeVideoSource::applySize): Ditto.
(WebCore::MockRealtimeVideoSource::drawText): Render the actual frame rate.
(WebCore::MockRealtimeVideoSource::generateFrame): Use m_fillColor.
(WebCore::MockRealtimeVideoSource::~MockRealtimeVideoSource): Deleted.
(WebCore::MockRealtimeVideoSource::updateSettings): Deleted.
(WebCore::MockRealtimeVideoSource::initializeCapabilities): Deleted.
(WebCore::MockRealtimeVideoSource::initializeSupportedConstraints): Deleted.
(WebCore::MockRealtimeVideoSource::applyFrameRate): Deleted.
* platform/mock/MockRealtimeVideoSource.h:
(WebCore::MockRealtimeVideoSource::updateSampleBuffer): Deleted.

Source/WebKit:

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::resetMockMediaDevices):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::resetMockMediaDevices):

LayoutTests:

Updated tests and results now that we have better support for width and height constraints.

* fast/mediastream/MediaDevices-getUserMedia.html:
* fast/mediastream/MediaStreamTrack-getCapabilities-expected.txt:
* fast/mediastream/apply-constraints-advanced-expected.txt:
* fast/mediastream/apply-constraints-advanced.html:
* fast/mediastream/apply-constraints-video-expected.txt:
* fast/mediastream/apply-constraints-video.html:
* fast/mediastream/getUserMedia-default-expected.txt:
* fast/mediastream/getUserMedia-default.html:
* imported/w3c/web-platform-tests/mediacapture-streams/MediaStreamTrack-getSettings.https-expected.txt:
* webrtc/video-interruption.html:
* webrtc/video.html:

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

2 years agoWeb Share API compatible with AppleTV and WatchOS
commit-queue@webkit.org [Thu, 30 Aug 2018 18:29:58 +0000 (18:29 +0000)]
Web Share API compatible with AppleTV and WatchOS
https://bugs.webkit.org/show_bug.cgi?id=189157

Patch by Olivia Barnett <obarnett@apple.com> on 2018-08-30
Reviewed by Tim Horton.

* Shared/WebPreferencesDefaultValues.h:
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView fileUploadPanelDidDismiss:]):
* UIProcess/ios/forms/WKShareSheet.h:
* UIProcess/ios/forms/WKShareSheet.mm:
(-[WKShareSheet invokeShareSheetWithResolution:]):
Added platform checks.

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

2 years agoUnreviewed, rolling out r235413 and r235444.
commit-queue@webkit.org [Thu, 30 Aug 2018 18:21:45 +0000 (18:21 +0000)]
Unreviewed, rolling out r235413 and r235444.
https://bugs.webkit.org/show_bug.cgi?id=189163

Causes crashes when running layout tests under GuardMalloc
(Requested by ryanhaddad on #webkit).

Reverted changesets:

"NetworkLoad::didReceiveResponse should pass its completion
handler to its client"
https://bugs.webkit.org/show_bug.cgi?id=188701
https://trac.webkit.org/changeset/235413

"Remove assertion introduced in r235413"
https://bugs.webkit.org/show_bug.cgi?id=188701
https://trac.webkit.org/changeset/235444

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

2 years ago[Curl][WebKit] Bugfix on redirect.
Basuke.Suzuki@sony.com [Thu, 30 Aug 2018 18:13:01 +0000 (18:13 +0000)]
[Curl][WebKit] Bugfix on redirect.
https://bugs.webkit.org/show_bug.cgi?id=189056

Reviewed by Alex Christensen.

Forget to call updateFromDelegatePreservingOldProperties in continueWillSendRequest like other ports do.

* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::continueWillSendRequest):

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

2 years agoWKNavigation.ProcessCrashDuringCallback is failing on iOS
sihui_liu@apple.com [Thu, 30 Aug 2018 17:03:01 +0000 (17:03 +0000)]
WKNavigation.ProcessCrashDuringCallback is failing on iOS
https://bugs.webkit.org/show_bug.cgi?id=189148

Reviewed by Chris Dumez.

We should not deference WebView or we may get WKErrorWebViewInvalidated error, because
WebView could be destroyed before Web Process termination is noticed.

* TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm:
(TEST):

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

2 years agofast/mediastream/RTCPeerConnection-overloaded-operations.html is flaky after r235484
youenn@apple.com [Thu, 30 Aug 2018 16:53:01 +0000 (16:53 +0000)]
fast/mediastream/RTCPeerConnection-overloaded-operations.html is flaky after r235484
https://bugs.webkit.org/show_bug.cgi?id=189155

Reviewed by Eric Carlson.

* fast/mediastream/RTCPeerConnection-overloaded-operations.html:
createOffer/createAnswer will now reject promises if callbacks are passed as parameters.
Make sure that these promises are handled.

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

2 years ago[macOS] Color picker layout is broken if suggested colors are specified
akeerthi@apple.com [Thu, 30 Aug 2018 16:35:46 +0000 (16:35 +0000)]
[macOS] Color picker layout is broken if suggested colors are specified
https://bugs.webkit.org/show_bug.cgi?id=189117

Reviewed by Tim Horton.

NSPopoverColorWell recently changed the size of its swatches. We need to update
the width of the swatches we provide to match the width of the other swatches,
in order to avoid breaking the layout.

While such a solution is not a good precedent, we do not have fully-functional SPI
to customize the suggested colors. A FIXME has been added for this reason.
However, even once we obtain SPI, we will need to find a way to support older
clients, making conditional compilation a potential necessity.

* UIProcess/mac/WebColorPickerMac.mm:

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

2 years ago[macOS] Whitelist Network process features for VPN
bfulgham@apple.com [Thu, 30 Aug 2018 16:30:11 +0000 (16:30 +0000)]
[macOS] Whitelist Network process features for VPN
https://bugs.webkit.org/show_bug.cgi?id=189023
<rdar://problem/43310000>

Reviewed by Eric Carlson.

CFNetwork needs access to some VPN preference files to configure networking, and
need to be allowed to communicate with the VPN process from the Network Process
sandbox.

* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:

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

2 years agoSource/WebCore:
zalan@apple.com [Thu, 30 Aug 2018 14:44:59 +0000 (14:44 +0000)]
Source/WebCore:
[LFC][Floating] Block formatting context roots avoid floats.
https://bugs.webkit.org/show_bug.cgi?id=189150

Reviewed by Antti Koivisto.

This patch implements the float avoiding behaviour for block formatting context roots.

When a box establishes a block formatting context, floats from outside of the context can't interfere with content inside. In order
to achive this, such formatting root boxes need to be positioned so that they don't overlap with floats (floats that share the same
context with the formatting root). In ltr block direction, roots start with avoiding floats on the left, while in rtl on the right.

Tests: fast/block/block-only/float-avoider-multiple-roots.html
       fast/block/block-only/float-avoider-simple-left.html
       fast/block/block-only/float-avoider-simple-right.html
       fast/block/block-only/float-avoider-with-margins.html

* layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot const):
(WebCore::Layout::BlockFormattingContext::computeEstimatedMarginTopForAncestors const):
(WebCore::Layout::BlockFormattingContext::computePositionToAvoidFloats const):
* layout/blockformatting/BlockFormattingContext.h:
* layout/floats/FloatAvoider.cpp:
(WebCore::Layout::FloatAvoider::FloatAvoider):
* layout/floats/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::positionForFloatAvoiding const):
* layout/floats/FloatingContext.h:

Tools:
[LFC][Floating] Formatting context roots avoid floats.
https://bugs.webkit.org/show_bug.cgi?id=189150

Reviewed by Antti Koivisto.

* LayoutReloaded/misc/LFC-passing-tests.txt:

LayoutTests:
[LFC][Floating] Formatting context roots avoid floats.
https://bugs.webkit.org/show_bug.cgi?id=189150

Reviewed by Antti Koivisto.

* fast/block/block-only/float-avoider-multiple-roots-expected.txt: Added.
* fast/block/block-only/float-avoider-multiple-roots.html: Added.
* fast/block/block-only/float-avoider-simple-left-expected.txt: Added.
* fast/block/block-only/float-avoider-simple-left.html: Added.
* fast/block/block-only/float-avoider-simple-right-expected.txt: Added.
* fast/block/block-only/float-avoider-simple-right.html: Added.
* fast/block/block-only/float-avoider-with-margins-expected.txt: Added.
* fast/block/block-only/float-avoider-with-margins.html: Added.

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

2 years ago[iOS] TestWebKitAPI.PasteImage tests are flaky failures
wenson_hsieh@apple.com [Thu, 30 Aug 2018 14:35:27 +0000 (14:35 +0000)]
[iOS] TestWebKitAPI.PasteImage tests are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=185965

Reviewed by Andy Estes.

These tests pass reliably when run locally, but sometimes fail in automation when checking that the image
element with its "src" attribute set to a new blob URL has an empty size. It's possible that this is happening
because we're checking the size of the image element prior to image load after setting the blob URL; we can fix
this by waiting for the "load" event (which is also done in some of the other tests in this file).

* TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm:
(TEST):

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

2 years ago[LFC][Floating] Move containing block constraint logic from FloatAvoider to FloatingC...
zalan@apple.com [Thu, 30 Aug 2018 14:32:29 +0000 (14:32 +0000)]
[LFC][Floating] Move containing block constraint logic from FloatAvoider to FloatingContext
https://bugs.webkit.org/show_bug.cgi?id=189145

Reviewed by Antti Koivisto.

When the float avoider is constrained horizontally, simply align it with the left/right edge of its containing block (with the combination of the constraints)
and check the overflow as part of the FloatingContext::floatingPosition() logic. It simplifies the constraint logic/helps implementing the non-float avoider
case.

* layout/floats/FloatAvoider.cpp:
(WebCore::Layout::FloatAvoider::setHorizontalConstraints):
(WebCore::Layout::FloatAvoider::overflowsContainingBlock const):
* layout/floats/FloatAvoider.h:
* layout/floats/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::floatingPosition const):

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

2 years ago[LFC][Floating] Use non-computed horizontal margins when intersecting floats with...
zalan@apple.com [Thu, 30 Aug 2018 14:28:54 +0000 (14:28 +0000)]
[LFC][Floating] Use non-computed horizontal margins when intersecting floats with float avoiders.
https://bugs.webkit.org/show_bug.cgi?id=189143

Reviewed by Antti Koivisto.

* layout/Verification.cpp:
(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree const):
* layout/floats/FloatAvoider.cpp:
(WebCore::Layout::FloatAvoider::setHorizontalConstraints):
(WebCore::Layout::FloatAvoider::initialHorizontalPosition const):
* layout/floats/FloatAvoider.h:
(WebCore::Layout::FloatAvoider::marginTop const):
(WebCore::Layout::FloatAvoider::marginBottom const):
(WebCore::Layout::FloatAvoider::marginLeft const):
(WebCore::Layout::FloatAvoider::marginRight const):
(WebCore::Layout::FloatAvoider::marginBoxWidth const):
* layout/floats/FloatBox.cpp:
(WebCore::Layout::FloatBox::rect const):
(WebCore::Layout::FloatBox::horizontalPositionCandidate):
(WebCore::Layout::FloatBox::verticalPositionCandidate):
(WebCore::Layout::FloatBox::initialVerticalPosition const):
* layout/floats/FloatBox.h:

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

2 years ago[LFC][Margins] Add non-computed horizontal margins to DisplayBox
zalan@apple.com [Thu, 30 Aug 2018 14:25:45 +0000 (14:25 +0000)]
[LFC][Margins] Add non-computed horizontal margins to DisplayBox
https://bugs.webkit.org/show_bug.cgi?id=189141

Reviewed by Antti Koivisto.

Inflow block boxes' horizontal margins extend all the way to the left/right edge of their containing block.
See https://www.w3.org/TR/CSS22/visudet.html#blockwidth for example
"...
10.3.3 Block-level, non-replaced elements in normal flow
'margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' = width of containing block
..."

In certain cases (float avoiding) we need to know the original (non-extended) horiztonal margin values.

* layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeFloatingWidthAndMargin const):
(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry const):
* layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin):
* layout/LayoutContext.cpp:
(WebCore::Layout::LayoutContext::initializeRoot):
* layout/LayoutUnits.h:
* layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::computeInFlowWidthAndMargin const):
* layout/blockformatting/BlockFormattingContextGeometry.cpp:
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowReplacedWidthAndMargin):
* layout/displaytree/DisplayBox.h:
(WebCore::Display::Box::setHasValidHorizontalNonComputedMargin):
(WebCore::Display::Box::setHorizontalNonComputedMargin):
(WebCore::Display::Box::nonComputedMarginLeft const):
(WebCore::Display::Box::nonComputedMarginRight const):

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

2 years agoUnreviewed, rolling out r235114.
mcatanzaro@igalia.com [Thu, 30 Aug 2018 14:21:42 +0000 (14:21 +0000)]
Unreviewed, rolling out r235114.

ostree server deleted our commits?

Reverted changeset:

"[Flatpak] Update to GNOME master runtime"
https://bugs.webkit.org/show_bug.cgi?id=188731
https://trac.webkit.org/changeset/235114

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

2 years ago[ConnectionUnix] Shrink sizeof AttachmentInfo by reordering members
yoshiaki.jitsukawa@sony.com [Thu, 30 Aug 2018 14:01:49 +0000 (14:01 +0000)]
[ConnectionUnix] Shrink sizeof AttachmentInfo by reordering members
https://bugs.webkit.org/show_bug.cgi?id=189149

Reviewed by Michael Catanzaro.

Reorder members to shrink the size of AttachmentInfo so that
we can attach more attachments.

* Platform/IPC/unix/ConnectionUnix.cpp:

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

2 years agoUnreviewed, add comments about enum names to bitfields
yusukesuzuki@slowstart.org [Thu, 30 Aug 2018 10:24:15 +0000 (10:24 +0000)]
Unreviewed, add comments about enum names to bitfields
https://bugs.webkit.org/show_bug.cgi?id=188944

* xml/XMLHttpRequest.h:

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

2 years agoUnreviewed, add comments about enum names to bitfields
yusukesuzuki@slowstart.org [Thu, 30 Aug 2018 10:17:36 +0000 (10:17 +0000)]
Unreviewed, add comments about enum names to bitfields
https://bugs.webkit.org/show_bug.cgi?id=188945

* html/HTMLCollection.h:

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

2 years agoAvoid code duplication in ResourceLoadStatisticsMemoryStore::processStatisticsAndData...
cdumez@apple.com [Thu, 30 Aug 2018 03:39:59 +0000 (03:39 +0000)]
Avoid code duplication in ResourceLoadStatisticsMemoryStore::processStatisticsAndDataRecords()
https://bugs.webkit.org/show_bug.cgi?id=189130

Reviewed by Youenn Fablet.

Move if check inside the lambda instead of outside to avoid code duplication.

* UIProcess/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::processStatisticsAndDataRecords):

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

2 years agoAddressed additional review feedback after r235342.
aestes@apple.com [Thu, 30 Aug 2018 02:26:02 +0000 (02:26 +0000)]
Addressed additional review feedback after r235342.

* Modules/applepay/ApplePayRequestBase.cpp:
(WebCore::convertAndValidate):

Used '"' instead of "\"" with makeString().

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

2 years ago[WHLSL] Test row-majorness of matrices
mmaxfield@apple.com [Thu, 30 Aug 2018 01:50:21 +0000 (01:50 +0000)]
[WHLSL] Test row-majorness of matrices
https://bugs.webkit.org/show_bug.cgi?id=189101

The matrix multiplication functions are temporarily commented out of the standard library,
so I've temporarily copy/pasted them into the test. Matrix multiplication is not
commutative, so it requires the right indexing order.

Reviewed by Dean Jackson and Thomas Denney.

* WebGPUShadingLanguageRI/Intrinsics.js:
* WebGPUShadingLanguageRI/StandardLibrary.js:
(let.standardLibrary):
* WebGPUShadingLanguageRI/Test.js:

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

2 years agoRevert some of r235398
commit-queue@webkit.org [Thu, 30 Aug 2018 01:22:40 +0000 (01:22 +0000)]
Revert some of r235398
https://bugs.webkit.org/show_bug.cgi?id=189133

Patch by Alex Christensen <achristensen@webkit.org> on 2018-08-29
Reviewed by Tim Horton.

* UIProcess/API/APILoaderClient.h:
(API::LoaderClient::processDidCrash):
(API::LoaderClient::didChangeBackForwardList):
(API::LoaderClient::didCommitLoadForFrame):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageLoaderClient):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didChangeBackForwardList):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::dispatchProcessDidTerminate):

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

2 years agoAdd some missing exception checks in JSRopeString::resolveRopeToAtomicString().
mark.lam@apple.com [Thu, 30 Aug 2018 01:20:20 +0000 (01:20 +0000)]
Add some missing exception checks in JSRopeString::resolveRopeToAtomicString().
https://bugs.webkit.org/show_bug.cgi?id=189132
<rdar://problem/42513068>

Reviewed by Saam Barati.

JSTests:

* stress/regress-189132.js: Added.

Source/JavaScriptCore:

* runtime/JSCJSValueInlines.h:
(JSC::JSValue::toPropertyKey const):
* runtime/JSString.cpp:
(JSC::JSRopeString::resolveRopeToAtomicString const):

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

2 years ago[Datalist] Display prefix-matched suggestions first
akeerthi@apple.com [Thu, 30 Aug 2018 00:26:11 +0000 (00:26 +0000)]
[Datalist] Display prefix-matched suggestions first
https://bugs.webkit.org/show_bug.cgi?id=189106

Reviewed by Tim Horton.

Source/WebCore:

In order to increase suggestion relevancy, we should display suggestions that have
the same prefix as the input value first. In order to achieve this, we can place
the suggestions into two buckets, one that contains prefix-matched values and
another that contains only substring-matched values.

TextFieldInputType::suggestions() can be called up to three times before we
display the values. In order to avoid generating the same suggestions multiple
times, the most recent values can be stored and reused. We clear the cached values
whenever the datalist element is modified or when the suggestions view is hidden.

Finally, removed logic to de-duplicate the list of suggested values. This behavior
is not a part of the specification and leads to unnecessary slowdown when
populating the suggestions view.

Test: fast/forms/datalist/datalist-textinput-suggestions-order.html

* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::listAttributeTargetChanged):
(WebCore::TextFieldInputType::suggestions):
(WebCore::TextFieldInputType::didCloseSuggestions):
* html/TextFieldInputType.h:
* platform/DataListSuggestionsClient.h:

LayoutTests:

Added a test to verify that prefix-matched suggestions are shown before other
matches.

* fast/forms/datalist/datalist-textinput-suggestions-order-expected.txt: Added.
* fast/forms/datalist/datalist-textinput-suggestions-order.html: Added.
* platform/ios/TestExpectations:

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

2 years agoImplement the Web Share API
commit-queue@webkit.org [Thu, 30 Aug 2018 00:20:26 +0000 (00:20 +0000)]
Implement the Web Share API
https://bugs.webkit.org/show_bug.cgi?id=171100
<rdar://problem/31751734>

Patch by Olivia Barnett <obarnett@apple.com> on 2018-08-29
Reviewed by Tim Horton.

LayoutTests/imported/w3c:

* web-platform-tests/web-share/idlharness.https-expected.txt:
* web-platform-tests/web-share/share-empty.https-expected.txt:
* web-platform-tests/web-share/share-securecontext.http-expected.txt:
* web-platform-tests/web-share/share-url-invalid.https-expected.txt:
* web-platform-tests/web-share/share-without-user-gesture.https-expected.txt:
Updated expected results.

Source/WebCore:

Added one test in fast/events/ios called share.html; adjusted expectations for existing tests.

* DerivedSources.make:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* features.json:
* loader/EmptyClients.cpp:
(WebCore::EmptyChromeClient::showShareSheet):
* loader/EmptyClients.h:
Added empty showShareSheet function.

* page/Chrome.cpp:
(WebCore::Chrome::showShareSheet):
* page/Chrome.h:
Added call to showShareSheet on client.

* page/ChromeClient.h:
Virtual showShareSheet function.

* page/Navigator.cpp:
(WebCore::Navigator::share):
* page/Navigator.h:
Share function that returns a promise and invokes the share sheet.

* page/Navigator.idl:
Implements NavigatorShare

* page/NavigatorShare.idl: Added.
Added definition of share function returning a promise.

* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setWebShareEnabled):
(WebCore::RuntimeEnabledFeatures::webShareEnabled const):
Added RuntimeEnabledFeature switch.

* page/ShareData.h: Added.
* page/ShareData.idl: Added.
Definition of ShareData struct.

Source/WebKit:

* Platform/spi/ios/UIKitSPI.h:
Added NSURL _title property as in the WebCore UIKitSPI.

* Scripts/webkit/messages.py:
ShareDataWithParsedURL special case for header for type.

* Shared/ShareSheetCallbackID.h:
Added a typedef for a share sheet callback id.

* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<ShareData>::encode):
(IPC::ArgumentCoder<ShareData>::decode):
(IPC::ArgumentCoder<ShareDataWithParsedURL>::encode):
(IPC::ArgumentCoder<ShareDataWithParsedURL>::decode):
* Shared/WebCoreArgumentCoders.h:
Added encoding and decoding functionality for new structs.

* Shared/WebPreferences.yaml:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetWebShareEnabled):
(WKPreferencesGetWebShareEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
Added switch for RuntimeEnabledFeature.

* UIProcess/API/Cocoa/WKWebView.mm:
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
Added hook for share sheet testing.

* UIProcess/PageClient.h:
(WebKit::PageClient::showShareSheet):
Page client call to invoke share sheet.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::showShareSheet):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
Web page proxy handling of call to invoke share sheet.
Creates completion handler to send to WKShareSheet.mm
Completion handler sends message to WebPage with message id.

* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::showShareSheet):
Page client implementation call to invoke share sheet.

* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView cleanupInteraction]):
(-[WKContentView _showShareSheet:completionHandler:]):
(-[WKContentView shareSheetDidDismiss:]):
(-[WKContentView invokeShareSheetWithResolution:resolved):
Call to WKShareSheet to invoke the share sheet and callback.
Hook for share sheet resolution testing.

* UIProcess/ios/forms/WKShareSheet.h: Added.
* UIProcess/ios/forms/WKShareSheet.mm: Added.
(-[WKShareSheet initWithView:]):
(-[WKShareSheet presentWithParameters:completionHandler:]):
(-[WKShareSheet _dispatchDidDismiss]):
(-[WKShareSheet _cancel]):
(-[WKShareSheet dismiss]):
(-[WKShareSheet _dismissDisplayAnimated:]):
(-[WKShareSheet _presentFullscreenViewController:animated:]):
(-[WKShareSheet invokeShareSheetWithResolution:resolved:]):
Completion handler call and creation of share sheet with parameters.
Hook that force resolves the share sheet completion handler for testing.

* WebKit.xcodeproj/project.pbxproj:

* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::showShareSheet):
Call to page to invoke share sheet.

* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::nextShareSheetContextId):
(WebKit::WebPage::showShareSheet):
(WebKit::WebPage::showShareSheetResponse):
WebPage calls proxy and saves context id for promise.

* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
Callback for completed response.

Source/WebKitLegacy/ios:

* WebCoreSupport/WebChromeClientIOS.h:
* WebCoreSupport/WebChromeClientIOS.mm:
(WebChromeClientIOS::showShareSheet):
Empty declaration of showShareSheet.

Source/WebKitLegacy/mac:

* WebCoreSupport/WebChromeClient.h:
* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::showShareSheet):
Empty declaration of showShareSheet.

LayoutTests:

* fast/dom/navigator-detached-no-crash-expected.txt:
Updated expected results.

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

2 years agoLayout Test js/error-should-not-strong-reference-global-object.html is flaky on macOS
ryanhaddad@apple.com [Thu, 30 Aug 2018 00:04:30 +0000 (00:04 +0000)]
Layout Test js/error-should-not-strong-reference-global-object.html is flaky on macOS
https://bugs.webkit.org/show_bug.cgi?id=187103

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:
* platform/mac/TestExpectations: Consolidate expectations.

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

2 years agoCrash under WebKit: WTF::Function<void ()>::CallableWrapper<WebKit::ResourceLoadStati...
cdumez@apple.com [Wed, 29 Aug 2018 23:41:36 +0000 (23:41 +0000)]
Crash under WebKit: WTF::Function<void ()>::CallableWrapper<WebKit::ResourceLoadStatisticsMemoryStore::removeDataRecords(WTF::CompletionHandler<void ()>&&)::$_1>::call()
https://bugs.webkit.org/show_bug.cgi?id=189098
<rdar://problem/43179891>

Reviewed by Youenn Fablet.

The crash was caused by implicitly using |this| on the main thread by accessing member variables, even though
|this| gets destroyed on the statistics queue. To address the issue, capture what we need on the statistics
queue, *before* dispatching to the main thread.

Also stop capturing |this| in the lambdas to make this less error prone.

* UIProcess/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::removeDataRecords):
(WebKit::ResourceLoadStatisticsMemoryStore::grandfatherExistingWebsiteData):
(WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking):

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

2 years agoUnreviewed test gardening; NowPlayingTest API tests require High Sierra.
jer.noble@apple.com [Wed, 29 Aug 2018 23:39:54 +0000 (23:39 +0000)]
Unreviewed test gardening; NowPlayingTest API tests require High Sierra.

* TestWebKitAPI/Tests/WebKitCocoa/NowPlaying.mm:

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

2 years agoREGRESSION (r226138): WebCore::subdivide() may return an empty vector; Web process...
dbates@webkit.org [Wed, 29 Aug 2018 23:35:30 +0000 (23:35 +0000)]
REGRESSION (r226138): WebCore::subdivide() may return an empty vector; Web process can crash when performing find in Epiphany
https://bugs.webkit.org/show_bug.cgi?id=184390
<rdar://problem/41804994>
And
<rdar://problem/39771867>

Reviewed by Simon Fraser.

Source/WebCore:

Speculative fix for Epiphany.

In theory, WebCore::subdivide() should never return an empty vector - no subdivisions - as such a
result represents a programmer error. In practice, InlineTextBox can invoke WebCore::subdivide()
such that it returns an empty vector. One way this can happen is when subdividing an empty inline
text box associated with combined text (RenderCombineText). For now we add a check to bail out of
resolving the style of subdivisions when WebCore::subdivide() returns no subdivisions. In a
subsequent patch we will look to assert that WebCore::subdivide() always returns subdivisions.

Test: fast/text/text-combine-surroundContents-crash.html

* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::subdivideAndResolveStyle):

LayoutTests:

Add a test to ensure that we do not crash when painting an empty inline text box associated
with combined text.

* fast/text/text-combine-surroundContents-crash-expected.txt: Added.
* fast/text/text-combine-surroundContents-crash.html: Added.

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

2 years agoRemove WebRTC legacy API implementation
youenn@apple.com [Wed, 29 Aug 2018 22:42:26 +0000 (22:42 +0000)]
Remove WebRTC legacy API implementation
https://bugs.webkit.org/show_bug.cgi?id=189040

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

* web-platform-tests/mediacapture-streams/MediaDevices-IDL-all-expected.txt:
* web-platform-tests/mediacapture-streams/MediaDevices-IDL-enumerateDevices-expected.txt:
* web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https-expected.txt:
* web-platform-tests/webrtc/historical-expected.txt:
* web-platform-tests/webrtc/no-media-call.html:
* web-platform-tests/webrtc/simplecall.https.html:

Source/WebCore:

This API is no longer needed as the runtime flag is off by default.
Removing this option allows removing some code and will ease future WebRTC improvements.
Covered by existing tests.

* CMakeLists.txt:
* DerivedSources.make:
* Modules/mediastream/MediaStreamEvent.cpp: Removed.
* Modules/mediastream/MediaStreamEvent.h: Removed.
* Modules/mediastream/MediaStreamEvent.idl: Removed.
* Modules/mediastream/NavigatorUserMedia.idl: Removed.
* Modules/mediastream/NavigatorUserMedia.js: Removed.
* Modules/mediastream/PeerConnectionBackend.cpp:
* Modules/mediastream/PeerConnectionBackend.h:
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/RTCPeerConnection.idl:
* Modules/mediastream/RTCPeerConnection.js:
(initializeRTCPeerConnection):
(createOffer):
(createAnswer):
(setLocalDescription):
(setRemoteDescription):
(addIceCandidate):
(getLocalStreams): Deleted.
(getStreamById): Deleted.
(addStream): Deleted.
(): Deleted.
* Modules/mediastream/RTCPeerConnectionInternals.js:
(callbacksAndDictionaryOverload):
(if): Deleted.
* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::mediaStreamFromRTCStream):
(WebCore::LibWebRTCMediaEndpoint::addRemoteStream):
(WebCore::LibWebRTCMediaEndpoint::removeRemoteStream):
* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
* Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::LibWebRTCPeerConnectionBackend::doStop):
(WebCore::LibWebRTCPeerConnectionBackend::removeRemoteStream): Deleted.
(WebCore::LibWebRTCPeerConnectionBackend::addRemoteStream): Deleted.
* Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::addBuiltinGlobals):
(WebCore::isWebRTCLegacyAPIEnabled): Deleted.
* bindings/js/WebCoreBuiltinNames.h:
* dom/EventNames.in:
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setPeerConnectionEnabled):
(WebCore::RuntimeEnabledFeatures::webRTCLegacyAPIEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setWebRTCLegacyAPIEnabled): Deleted.

Source/WebKit:

* Shared/WebPreferences.yaml:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetWebRTCLegacyAPIEnabled): Deleted.
(WKPreferencesGetWebRTCLegacyAPIEnabled): Deleted.
* UIProcess/API/C/WKPreferencesRef.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _webRTCLegacyAPIEnabled]): Deleted.
(-[WKPreferences _setWebRTCLegacyAPIEnabled:]): Deleted.
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

Source/WebKitLegacy/mac:

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences webRTCLegacyAPIEnabled]): Deleted.
(-[WebPreferences setWebRTCLegacyAPIEnabled:]): Deleted.
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Tools:

* DumpRenderTree/mac/DumpRenderTree.mm:
(enableExperimentalFeatures):
* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setWebRTCLegacyAPIEnabled): Deleted.
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

* TestExpectations:
* fast/events/constructors/media-stream-event-constructor-expected.txt: Removed.
* fast/events/constructors/media-stream-event-constructor.html: Removed.
* fast/mediastream/RTCPeerConnection-AddRemoveStream-expected.txt: Removed.
* fast/mediastream/RTCPeerConnection-AddRemoveStream.html: Removed.
* fast/mediastream/RTCPeerConnection-createAnswer-expected.txt:
* fast/mediastream/RTCPeerConnection-createAnswer.html:
* fast/mediastream/RTCPeerConnection-createOffer-expected.txt: Removed.
* fast/mediastream/RTCPeerConnection-createOffer.html: Removed.
* fast/mediastream/RTCPeerConnection-dtmf.html: Removed.
* fast/mediastream/RTCPeerConnection-events-expected.txt: Removed.
* fast/mediastream/RTCPeerConnection-events.html: Removed.
* fast/mediastream/RTCPeerConnection-have-local-offer-expected.txt:
* fast/mediastream/RTCPeerConnection-have-local-offer.html:
* fast/mediastream/RTCPeerConnection-have-local-pranswer-expected.txt:
* fast/mediastream/RTCPeerConnection-have-local-pranswer.html:
* fast/mediastream/RTCPeerConnection-have-remote-offer-expected.txt:
* fast/mediastream/RTCPeerConnection-have-remote-offer.html:
* fast/mediastream/RTCPeerConnection-have-remote-pranswer-expected.txt:
* fast/mediastream/RTCPeerConnection-have-remote-pranswer.html:
* fast/mediastream/RTCPeerConnection-legacy-stream-based-api-expected.txt: Removed.
* fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html: Removed.
* fast/mediastream/RTCPeerConnection-localDescription-expected.txt:
* fast/mediastream/RTCPeerConnection-localDescription.html:
* fast/mediastream/RTCPeerConnection-remoteDescription-expected.txt:
* fast/mediastream/RTCPeerConnection-remoteDescription.html:
* fast/mediastream/RTCPeerConnection-stable-expected.txt:
* fast/mediastream/RTCPeerConnection-stable.html:
* fast/mediastream/RTCPeerConnection-stats.html:
* fast/mediastream/RTCPeerConnection-statsSelector-expected.txt:
* fast/mediastream/RTCPeerConnection-statsSelector.html:
* fast/mediastream/argument-types-expected.txt: Removed.
* fast/mediastream/argument-types.html: Removed.
* fast/mediastream/getusermedia-expected.txt: Removed.
* fast/mediastream/getusermedia.html: Removed.
* fast/mediastream/webkitGetUserMedia-shadowing-then-expected.txt: Removed.
* fast/mediastream/webkitGetUserMedia-shadowing-then.html: Removed.
* platform/mac/TestExpectations:
* webrtc/legacy-api-expected.txt:
* webrtc/legacy-api.html:

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

2 years agoModernize SlotAssignment
rniwa@webkit.org [Wed, 29 Aug 2018 22:23:30 +0000 (22:23 +0000)]
Modernize SlotAssignment
https://bugs.webkit.org/show_bug.cgi?id=189075

Reviewed by Antti Koivisto.

Modernized the code related to SlotAssignment. Namely, use HashMap<>::get instead of HashMap<>::find,
and use HashMap<>::ensure instead of HashMap<>::add. Also use WeakPtr to keep track of HTMLSlotElement
instead of a raw pointer.

* dom/SlotAssignment.cpp:
(WebCore::SlotAssignment::findAssignedSlot):
(WebCore::SlotAssignment::addSlotElementByName):
(WebCore::SlotAssignment::removeSlotElementByName):
(WebCore::SlotAssignment::didChangeSlot):
(WebCore::SlotAssignment::findFirstSlotElement):
(WebCore::SlotAssignment::resolveAllSlotElements):
(WebCore::SlotAssignment::assignToSlot):
* dom/SlotAssignment.h:
(WebCore::SlotAssignment::Slot::Slot): Renamed from SlotInfo since "Info" doesn't add any value.
* html/HTMLSlotElement.h:

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

2 years agolldb-webkit: KeyError thrown for uninitialized OptionSet
dbates@webkit.org [Wed, 29 Aug 2018 22:20:15 +0000 (22:20 +0000)]
lldb-webkit: KeyError thrown for uninitialized OptionSet
https://bugs.webkit.org/show_bug.cgi?id=189070

Reviewed by Simon Fraser.

Do not compute what enumerators are in an uninitialized OptionSet. A local OptionSet variable
is only considered initialized when execution passes over its assignment regardless of whether
the variable is in scope.

The LLDB Python API does not provide a way to determine whether an variable is initialized.
So, we use a simple heuristic: when the value of the OptionSet is greater than the value
of the bitmask with all enumerators set then we consider the OptionSet to be garbage (i.e.
uninitialized memory). When the variable is finally initialized LLDB will notify us to update
our state.

* lldb/lldb_webkit.py:
(WTFOptionSetProvider.update):

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

2 years ago[PSON] We should only process-swap when eTLD+1 changes on navigation
cdumez@apple.com [Wed, 29 Aug 2018 22:01:21 +0000 (22:01 +0000)]
[PSON] We should only process-swap when eTLD+1 changes on navigation
https://bugs.webkit.org/show_bug.cgi?id=189090
<rdar://problem/43799225>

Reviewed by Geoffrey Garen.

Source/WebCore:

Add toRegistrableDomain() utility function to get the eTLD+1 (aka "registrable
domain") from an URL.

* platform/network/ResourceRequestBase.h:
(WebCore::toRegistrableDomain):
(WebCore::registrableDomainsAreEqual):

Source/WebKit:

When navigating cross-origin, only process swap when the eTLD+1 (aka "Registrable
domain") changes, instead of considering the full security origin.

This has performance benefits and is also needed to keep document.domain origin
relaxation working.

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::addProcessToOriginCacheSet):
(WebKit::WebProcessPool::removeProcessFromOriginCacheSet):
(WebKit::WebProcessPool::processForNavigation):
(WebKit::WebProcessPool::processForNavigationInternal):
* UIProcess/WebProcessPool.h:

Tools:

Update existing PSON API tests to use different registrable domains instead of different
protocols, as we now only process-swap when the eTLD+1 (aka "registrable domain") changes.

Add test coverage to make sure that we do not process swap when eTLD+1 does not change.

* TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

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

2 years agoAdd a runtime flag for WebRTC unified plan
youenn@apple.com [Wed, 29 Aug 2018 21:50:28 +0000 (21:50 +0000)]
Add a runtime flag for WebRTC unified plan
https://bugs.webkit.org/show_bug.cgi?id=189068

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

* web-platform-tests/webrtc/RTCPeerConnection-addTrack.https-expected.txt:

Source/WebCore:

Covered by existing updated tests.
Main change is to call addTrack with a stream parameter so that on the other side, the track will be tied to a stream.
Receive-only case in unified plan is not yet supported.
This will be supported in follow-up patches.

* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::setConfiguration): Activate unified plan based on runtime flag.
(WebCore::LibWebRTCMediaEndpoint::addTrack): Do not use AddStream in case of unified plan.
(WebCore::LibWebRTCMediaEndpoint::shouldOfferAllowToReceiveAudio const):
(WebCore::LibWebRTCMediaEndpoint::shouldOfferAllowToReceiveVideo const):
(WebCore::LibWebRTCMediaEndpoint::doCreateOffer): Use legacy webrtc option for receive only cases only in plan B case.
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::webRTCUnifiedPlanEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCUnifiedPlanEnabled):

Source/WebKit:

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

Tools:

* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setWebRTCUnifiedPlanEnabled):
* WebKitTestRunner/InjectedBundle/TestRunner.h:

LayoutTests:

* fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt:
* webrtc/peer-connection-audio-mute2.html:
* webrtc/peer-connection-remote-audio-mute2.html:
* webrtc/video-addTrack-expected.txt:
* webrtc/video-addTrack.html:
* webrtc/video-addTransceiver.html:

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

2 years agoGeneralize suppresion for flaky IntersectionObserver web platform tests
ajuma@chromium.org [Wed, 29 Aug 2018 21:20:16 +0000 (21:20 +0000)]
Generalize suppresion for flaky IntersectionObserver web platform tests
https://bugs.webkit.org/show_bug.cgi?id=189091

Unreviewed test gardening.

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

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

2 years agoFollowup (r235427): Use the null string instead of std::nullopt when no suggestion...
akeerthi@apple.com [Wed, 29 Aug 2018 21:09:43 +0000 (21:09 +0000)]
Followup (r235427): Use the null string instead of std::nullopt when no suggestion is selected
https://bugs.webkit.org/show_bug.cgi?id=189095

Reviewed by Tim Horton.

Followup to r235427 as per Darin's comment.

We can avoid unnecessary use of std::optional by taking advantage of the fact that
WTF::String already has a null value distinct from the empty value.

No change in behavior.

* UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:
(WebKit::WebDataListSuggestionsDropdownMac::selectOption):
(-[WKDataListSuggestionsView currentSelectedString]):

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

2 years ago[CMake] Split Tools/CMakeLists.txt into platform files
don.olmstead@sony.com [Wed, 29 Aug 2018 20:55:28 +0000 (20:55 +0000)]
[CMake] Split Tools/CMakeLists.txt into platform files
https://bugs.webkit.org/show_bug.cgi?id=189093

Reviewed by Michael Catanzaro.

* CMakeLists.txt:
* PlatformGTK.cmake: Added.
* PlatformMac.cmake: Added.
* PlatformWPE.cmake: Added.
* PlatformWin.cmake: Added.

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