WebKit-https.git
16 months agoThe watchdog sometimes fails to terminate a script.
mark.lam@apple.com [Tue, 4 Sep 2018 02:48:13 +0000 (02:48 +0000)]
The watchdog sometimes fails to terminate a script.
https://bugs.webkit.org/show_bug.cgi?id=189227
<rdar://problem/39932857>

Reviewed by Saam Barati.

JSTests:

* stress/regress-189227-watchdog-on-infinite-loop.js: Added.

Source/JavaScriptCore:

Consider the following scenario:

1. We have an infinite loop bytecode sequence as follows:

    [  13] loop_hint
    [  14] check_traps
    [  15] jmp               -2(->13)

2. The VM tiers up from LLInt -> BaselineJIT -> DFG -> FTL.

   Note that op_check_traps is represented as a CheckTraps node in the DFG and FTL.
   When we're not using pollingTraps (JSC_usePollingTraps is false by default),
   we emit no code for CheckTraps, but only record an InvalidationPoint there.

3. The watchdog fires, and invalidates all InvalidationPoints in the FTL CodeBlock.

   InvalidationPoints OSR exits to the next instruction by design.  In this case,
   that means the VM will resumes executing at the op_jmp, which jumps to the
   op_loop_hint opcode.  At the loop_hint, the VM discovers that the function is
   already hot, and attempts to tier up.  It immediately discovers that a replacement
   CodeBlock is available because we still haven't jettisoned the DFG CodeBlock
   nor the FTL CodeBlock that was previously compiled for this function.

   Note that jettisoning a CodeBlock necessarily means the VM will invalidate
   its InvalidationPoints (if the CodeBlock is DFG/FTL).  However, the reverse
   is not true: merely invalidating the InvalidationPoints does not necessarily
   mean that the CodeBlock is jettisoned.

   VMTraps::tryInstallTrapBreakpoints() runs from a separate thread.  Hence,
   it is only safe for it to invalidate a CodeBlock's InvalidationPoints.  It
   is not safe for the CodeBlock to be jettisoned from another thread.  Instead,
   the VMTraps mechanism relies on the script thread running to an op_check_traps
   in the baseline JIT code where it will do the necessary jettisoning of optimized
   CodeBlocks.

Since the op_check_traps never get executed, the VM will perpetually tier up in
the op_loop_hint, OSR exit to the op_jmp, jump to the op_loop_hint, and repeat.
Consequently, the watchdog fails to terminate this script.

In this patch, we fix this by making the DFG BytecodeParser emit an InvalidationPoint
node directly (when the VM is not configured to use polling traps).  This ensures
that the check traps invalidation point will OSR exit to the op_check_traps opcode
in the baseline JIT.

In this patch, we also change VMTraps::tryInstallTrapBreakpoints() to use
CallFrame::unsafeCodeBlock() instead of CallFrame::codeBlock().  This is because
we don't really know if the frame is properly set up.  We're just conservatively
probing the stack.  ASAN does not like this probing.  Using unsafeCodeBlock() here
will suppress the false positive ASAN complaint.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGPredictionPropagationPhase.cpp:
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileCheckTraps):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
* runtime/VMTraps.cpp:
(JSC::VMTraps::tryInstallTrapBreakpoints):

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

16 months ago[Payment Request] MerchantValidationEvent should be enabled by the PaymentRequest...
aestes@apple.com [Mon, 3 Sep 2018 23:48:40 +0000 (23:48 +0000)]
[Payment Request] MerchantValidationEvent should be enabled by the PaymentRequest setting
https://bugs.webkit.org/show_bug.cgi?id=189250

Reviewed by Daniel Bates.

* Modules/paymentrequest/MerchantValidationEvent.idl:

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

16 months agoCallFrame::unsafeCallee() should use an ASAN suppressed Register::asanUnsafePointer().
mark.lam@apple.com [Mon, 3 Sep 2018 23:29:34 +0000 (23:29 +0000)]
CallFrame::unsafeCallee() should use an ASAN suppressed Register::asanUnsafePointer().
https://bugs.webkit.org/show_bug.cgi?id=189247

Reviewed by Saam Barati.

* interpreter/CallFrame.h:
(JSC::ExecState::unsafeCallee const):
* interpreter/Register.h:
(JSC::Register::asanUnsafePointer const):
(JSC::Register::unsafePayload const):

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

16 months agoREGRESSION: Layout Test http/tests/security/bypassing-cors-checks-for-extension-urls...
youenn@apple.com [Mon, 3 Sep 2018 23:17:22 +0000 (23:17 +0000)]
REGRESSION: Layout Test http/tests/security/bypassing-cors-checks-for-extension-urls.html is Flaky
https://bugs.webkit.org/show_bug.cgi?id=187658
<rdar://problem/42306442>

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Test is flaky as a previous test was setting the isRunningUserScripts state on the Page and it was never reset.
This patch moves this state to the topDocument so that it will be reset for every navigation.
Covered by existing test being no longer flaky.

* dom/Document.h:
(WebCore::Document::setAsRunningUserScripts):
(WebCore::Document::isRunningUserScripts const):
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
* page/Frame.cpp:
(WebCore::Frame::injectUserScriptImmediately):
* page/Page.h:
(WebCore::Page::setAsRunningUserScripts): Deleted.
(WebCore::Page::isRunningUserScripts const): Deleted.
* testing/Internals.cpp:
(WebCore::Internals::setAsRunningUserScripts):

LayoutTests:

* platform/mac-wk2/TestExpectations:

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

16 months ago[WPE] Add more WPE bots to dashboard
commit-queue@webkit.org [Mon, 3 Sep 2018 19:18:36 +0000 (19:18 +0000)]
[WPE] Add more WPE bots to dashboard
https://bugs.webkit.org/show_bug.cgi?id=189245

Patch by Pablo Saavedra <psaavedra@igalia.com> on 2018-09-03
Reviewed by Daniel Bates.

There are two missing bots which are not listed in the dashboard for
a while: WPE Linux 64-bit Debug (Build) and WPE Linux 64-bit Debug (Tests)

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
(WebKitBuildbot):

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

16 months ago[Payment Request] Implement the MerchantValidationEvent constructor
aestes@apple.com [Mon, 3 Sep 2018 17:16:00 +0000 (17:16 +0000)]
[Payment Request] Implement the MerchantValidationEvent constructor
https://bugs.webkit.org/show_bug.cgi?id=189235

Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

Updated payment-request web platform tests to 0313d9f.

* resources/TestRepositories:
* resources/import-expectations.json:
* web-platform-tests/payment-request/MerchantValidationEvent/complete-method-manual.https.html: Added.
* web-platform-tests/payment-request/MerchantValidationEvent/constructor.http-expected.txt: Added.
* web-platform-tests/payment-request/MerchantValidationEvent/constructor.http.html: Added.
* web-platform-tests/payment-request/MerchantValidationEvent/constructor.https-expected.txt: Added.
* web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html: Added.
* web-platform-tests/payment-request/MerchantValidationEvent/w3c-import.log: Added.
* web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.http-expected.txt: Added.
* web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.http.html: Added.
* web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.https-expected.txt: Added.
* web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.https.html: Added.
* web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html: Added.
* web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html: Added.
* web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html: Added.
* web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-method-abort-update-manual.https.html: Added.
* web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-state-checks-manual.https.html: Added.
* web-platform-tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https-expected.txt: Added.
* web-platform-tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html: Added.
* web-platform-tests/payment-request/PaymentRequestUpdateEvent/w3c-import.log: Added.
* web-platform-tests/payment-request/allowpaymentrequest/common.sub.js:
(window.onmessage.e.t.step):
(string_appeared_here.forEach):
(window.onmessage): Deleted.
* web-platform-tests/payment-request/allowpaymentrequest/echo-PaymentRequest.html:
* web-platform-tests/payment-request/onmerchantvalidation-attribute.https-expected.txt: Added.
* web-platform-tests/payment-request/onmerchantvalidation-attribute.https.html: Added.
* web-platform-tests/payment-request/w3c-import.log:

Source/WebCore:

Implemented the constructor for MerchantValidationEvent as defined in the Payment Request API W3C Editor's Draft of 30 August 2018.

Updated the payment-request web platform tests to include MerchantValidationEvent tests.

Tests: imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/constructor.http.html
       imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html
       imported/w3c/web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.http.html
       imported/w3c/web-platform-tests/payment-request/PaymentRequestUpdateEvent/constructor.https.html
       imported/w3c/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updatewith-method.https.html
       imported/w3c/web-platform-tests/payment-request/onmerchantvalidation-attribute.https.html

* CMakeLists.txt:
* DerivedSources.make:
* Modules/paymentrequest/MerchantValidationEvent.cpp:
(WebCore::MerchantValidationEvent::create):
(WebCore::MerchantValidationEvent::MerchantValidationEvent):
(WebCore::MerchantValidationEvent::complete):
* Modules/paymentrequest/MerchantValidationEvent.h:
* Modules/paymentrequest/MerchantValidationEvent.idl:
* Modules/paymentrequest/MerchantValidationEventInit.h: Added.
* Modules/paymentrequest/MerchantValidationEventInit.idl: Added.
* Modules/paymentrequest/PaymentRequest.idl:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreBuiltinNames.h:

LayoutTests:

Skipped new manual tests.

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

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

16 months agoRemove duplicate directory web-platform-tests/cssom-view
fred.wang@free.fr [Mon, 3 Sep 2018 13:41:59 +0000 (13:41 +0000)]
Remove duplicate directory web-platform-tests/cssom-view
https://bugs.webkit.org/show_bug.cgi?id=189241

LayoutTests/imported/w3c:

Patch by Frederic Wang <fwang@igalia.com> on 2018-09-03
Reviewed by Daniel Bates.

cssom-view tests were moved into web-platform-tests/css at r232903 but the old
directory and expectation were left. This patch finishes the migration.

* resources/import-expectations.json:
* web-platform-tests/css/cssom-view/scrollingElement-expected.txt: Removed.
* web-platform-tests/cssom-view/CaretPosition-001-expected.txt: Removed.
* web-platform-tests/cssom-view/CaretPosition-001.html: Removed.
* web-platform-tests/cssom-view/DOMRectList-expected.txt: Removed.
* web-platform-tests/cssom-view/DOMRectList.html: Removed.
* web-platform-tests/cssom-view/HTMLBody-ScrollArea_quirksmode-expected.txt: Removed.
* web-platform-tests/cssom-view/HTMLBody-ScrollArea_quirksmode.html: Removed.
* web-platform-tests/cssom-view/MediaQueryList-001-expected.txt: Removed.
* web-platform-tests/cssom-view/MediaQueryList-001.html: Removed.
* web-platform-tests/cssom-view/MediaQueryList-with-empty-string-expected.txt: Removed.
* web-platform-tests/cssom-view/MediaQueryList-with-empty-string.html: Removed.
* web-platform-tests/cssom-view/OWNERS: Removed.
* web-platform-tests/cssom-view/Screen-pixelDepth-Screen-colorDepth001-expected.txt: Removed.
* web-platform-tests/cssom-view/Screen-pixelDepth-Screen-colorDepth001.html: Removed.
* web-platform-tests/cssom-view/cssom-getBoundingClientRect-001-expected.txt: Removed.
* web-platform-tests/cssom-view/cssom-getBoundingClientRect-001.html: Removed.
* web-platform-tests/cssom-view/cssom-getBoundingClientRect-002-expected.txt: Removed.
* web-platform-tests/cssom-view/cssom-getBoundingClientRect-002.html: Removed.
* web-platform-tests/cssom-view/cssom-getClientRects-002-expected.txt: Removed.
* web-platform-tests/cssom-view/cssom-getClientRects-002.html: Removed.
* web-platform-tests/cssom-view/cssom-getClientRects-expected.txt: Removed.
* web-platform-tests/cssom-view/cssom-getClientRects.html: Removed.
* web-platform-tests/cssom-view/cssom-view-img-attributes-001-expected.txt: Removed.
* web-platform-tests/cssom-view/cssom-view-img-attributes-001.html: Removed.
* web-platform-tests/cssom-view/cssom-view-window-screen-interface-expected.txt: Removed.
* web-platform-tests/cssom-view/cssom-view-window-screen-interface.html: Removed.
* web-platform-tests/cssom-view/cssom-view/media-query-list-interface-expected.txt: Removed.
* web-platform-tests/cssom-view/cssom-view/media-query-list-interface.xht: Removed.
* web-platform-tests/cssom-view/cssom-view/w3c-import.log: Removed.
* web-platform-tests/cssom-view/cssom-view/window-interface-expected.txt: Removed.
* web-platform-tests/cssom-view/cssom-view/window-interface.xht: Removed.
* web-platform-tests/cssom-view/elementFromPoint-001-expected.txt: Removed.
* web-platform-tests/cssom-view/elementFromPoint-001.html: Removed.
* web-platform-tests/cssom-view/elementFromPoint-002-expected.txt: Removed.
* web-platform-tests/cssom-view/elementFromPoint-002.html: Removed.
* web-platform-tests/cssom-view/elementFromPoint-003-expected.txt: Removed.
* web-platform-tests/cssom-view/elementFromPoint-003.html: Removed.
* web-platform-tests/cssom-view/elementFromPoint-expected.txt: Removed.
* web-platform-tests/cssom-view/elementFromPoint.html: Removed.
* web-platform-tests/cssom-view/elementFromPosition-expected.txt: Removed.
* web-platform-tests/cssom-view/elementFromPosition.html: Removed.
* web-platform-tests/cssom-view/elementScroll-expected.txt: Removed.
* web-platform-tests/cssom-view/elementScroll.html: Removed.
* web-platform-tests/cssom-view/elementsFromPoint-expected.txt: Removed.
* web-platform-tests/cssom-view/elementsFromPoint-iframes-expected.txt: Removed.
* web-platform-tests/cssom-view/elementsFromPoint-iframes.html: Removed.
* web-platform-tests/cssom-view/elementsFromPoint-invalid-cases-expected.txt: Removed.
* web-platform-tests/cssom-view/elementsFromPoint-invalid-cases.html: Removed.
* web-platform-tests/cssom-view/elementsFromPoint-shadowroot-expected.txt: Removed.
* web-platform-tests/cssom-view/elementsFromPoint-shadowroot.html: Removed.
* web-platform-tests/cssom-view/elementsFromPoint-simple-expected.txt: Removed.
* web-platform-tests/cssom-view/elementsFromPoint-simple.html: Removed.
* web-platform-tests/cssom-view/elementsFromPoint-svg-expected.txt: Removed.
* web-platform-tests/cssom-view/elementsFromPoint-svg.html: Removed.
* web-platform-tests/cssom-view/elementsFromPoint-table-expected.txt: Removed.
* web-platform-tests/cssom-view/elementsFromPoint-table.html: Removed.
* web-platform-tests/cssom-view/elementsFromPoint.html: Removed.
* web-platform-tests/cssom-view/historical-expected.txt: Removed.
* web-platform-tests/cssom-view/historical.html: Removed.
* web-platform-tests/cssom-view/htmlelement-offset-width-001-expected.txt: Removed.
* web-platform-tests/cssom-view/htmlelement-offset-width-001.html: Removed.
* web-platform-tests/cssom-view/iframe.html: Removed.
* web-platform-tests/cssom-view/interfaces-expected.txt: Removed.
* web-platform-tests/cssom-view/interfaces.html: Removed.
* web-platform-tests/cssom-view/matchMedia-expected.txt: Removed.
* web-platform-tests/cssom-view/matchMedia.xht: Removed.
* web-platform-tests/cssom-view/matchMediaAddListener-expected.txt: Removed.
* web-platform-tests/cssom-view/matchMediaAddListener.html: Removed.
* web-platform-tests/cssom-view/mouseEvent-expected.txt: Removed.
* web-platform-tests/cssom-view/mouseEvent.html: Removed.
* web-platform-tests/cssom-view/negativeMargins-expected.txt: Removed.
* web-platform-tests/cssom-view/negativeMargins.html: Removed.
* web-platform-tests/cssom-view/offsetParent_element_test-expected.txt: Removed.
* web-platform-tests/cssom-view/offsetParent_element_test.html: Removed.
* web-platform-tests/cssom-view/offsetTopLeftInScrollableParent-expected.txt: Removed.
* web-platform-tests/cssom-view/offsetTopLeftInScrollableParent.html: Removed.
* web-platform-tests/cssom-view/resources/elementsFromPoint.js: Removed.
* web-platform-tests/cssom-view/resources/iframe1.html: Removed.
* web-platform-tests/cssom-view/resources/iframe2.html: Removed.
* web-platform-tests/cssom-view/resources/w3c-import.log: Removed.
* web-platform-tests/cssom-view/scrollIntoView-shadow-expected.txt: Removed.
* web-platform-tests/cssom-view/scrollIntoView-shadow.html: Removed.
* web-platform-tests/cssom-view/scrollIntoView-smooth-expected.txt: Removed.
* web-platform-tests/cssom-view/scrollIntoView-smooth.html: Removed.
* web-platform-tests/cssom-view/scrollWidthHeight-expected.txt: Removed.
* web-platform-tests/cssom-view/scrollWidthHeight.xht: Removed.
* web-platform-tests/cssom-view/scrollWidthHeightWhenNotScrollable-expected.txt: Removed.
* web-platform-tests/cssom-view/scrollWidthHeightWhenNotScrollable.xht: Removed.
* web-platform-tests/cssom-view/scrolling-no-browsing-context-expected.txt: Removed.
* web-platform-tests/cssom-view/scrolling-no-browsing-context.html: Removed.
* web-platform-tests/cssom-view/scrolling-quirks-vs-nonquirks-expected.txt: Removed.
* web-platform-tests/cssom-view/scrolling-quirks-vs-nonquirks.html: Removed.
* web-platform-tests/cssom-view/scrollingElement-quirks-dynamic-001-expected.html: Removed.
* web-platform-tests/cssom-view/scrollingElement-quirks-dynamic-001.html: Removed.
* web-platform-tests/cssom-view/scrollingElement-quirks-dynamic-002-expected.html: Removed.
* web-platform-tests/cssom-view/scrollingElement-quirks-dynamic-002.html: Removed.
* web-platform-tests/cssom-view/scrollingElement.html: Removed.
* web-platform-tests/cssom-view/scrollintoview-expected.txt: Removed.
* web-platform-tests/cssom-view/scrollintoview.html: Removed.
* web-platform-tests/cssom-view/support/1x1-green.png: Removed.
* web-platform-tests/cssom-view/support/1x1-lime.png: Removed.
* web-platform-tests/cssom-view/support/1x1-maroon.png: Removed.
* web-platform-tests/cssom-view/support/1x1-navy.png: Removed.
* web-platform-tests/cssom-view/support/1x1-red.png: Removed.
* web-platform-tests/cssom-view/support/1x1-white.png: Removed.
* web-platform-tests/cssom-view/support/60x60-gg-rr.png: Removed.
* web-platform-tests/cssom-view/support/60x60-green.png: Removed.
* web-platform-tests/cssom-view/support/60x60-red.png: Removed.
* web-platform-tests/cssom-view/support/README: Removed.
* web-platform-tests/cssom-view/support/a-green.css: Removed.
* web-platform-tests/cssom-view/support/b-green.css: Removed.
* web-platform-tests/cssom-view/support/c-red.css: Removed.
* web-platform-tests/cssom-view/support/cat.png: Removed.
* web-platform-tests/cssom-view/support/import-green.css: Removed.
* web-platform-tests/cssom-view/support/import-red.css: Removed.
* web-platform-tests/cssom-view/support/pattern-grg-rgr-grg.png: Removed.
* web-platform-tests/cssom-view/support/pattern-grg-rrg-rgg.png: Removed.
* web-platform-tests/cssom-view/support/pattern-rgr-grg-rgr.png: Removed.
* web-platform-tests/cssom-view/support/pattern-tr.png: Removed.
* web-platform-tests/cssom-view/support/ruler-h-50%.png: Removed.
* web-platform-tests/cssom-view/support/ruler-h-50px.png: Removed.
* web-platform-tests/cssom-view/support/ruler-v-100px.png: Removed.
* web-platform-tests/cssom-view/support/ruler-v-50px.png: Removed.
* web-platform-tests/cssom-view/support/square-purple.png: Removed.
* web-platform-tests/cssom-view/support/square-teal.png: Removed.
* web-platform-tests/cssom-view/support/square-white.png: Removed.
* web-platform-tests/cssom-view/support/support/README: Removed.
* web-platform-tests/cssom-view/support/support/swatch-green.png: Removed.
* web-platform-tests/cssom-view/support/support/swatch-red.png: Removed.
* web-platform-tests/cssom-view/support/support/w3c-import.log: Removed.
* web-platform-tests/cssom-view/support/swatch-blue.png: Removed.
* web-platform-tests/cssom-view/support/swatch-green.png: Removed.
* web-platform-tests/cssom-view/support/swatch-lime.png: Removed.
* web-platform-tests/cssom-view/support/swatch-orange.png: Removed.
* web-platform-tests/cssom-view/support/swatch-red.png: Removed.
* web-platform-tests/cssom-view/support/swatch-teal.png: Removed.
* web-platform-tests/cssom-view/support/swatch-white.png: Removed.
* web-platform-tests/cssom-view/support/swatch-yellow.png: Removed.
* web-platform-tests/cssom-view/support/test-bl.png: Removed.
* web-platform-tests/cssom-view/support/test-br.png: Removed.
* web-platform-tests/cssom-view/support/test-inner-half-size.png: Removed.
* web-platform-tests/cssom-view/support/test-outer.png: Removed.
* web-platform-tests/cssom-view/support/test-tl.png: Removed.
* web-platform-tests/cssom-view/support/test-tr.png: Removed.
* web-platform-tests/cssom-view/support/w3c-import.log: Removed.
* web-platform-tests/cssom-view/ttwf-js-cssomview-getclientrects-length-expected.txt: Removed.
* web-platform-tests/cssom-view/ttwf-js-cssomview-getclientrects-length.html: Removed.
* web-platform-tests/cssom-view/w3c-import.log: Removed.
* web-platform-tests/cssom-view/window-screen-height-expected.txt: Removed.
* web-platform-tests/cssom-view/window-screen-height-immutable-expected.txt: Removed.
* web-platform-tests/cssom-view/window-screen-height-immutable.html: Removed.
* web-platform-tests/cssom-view/window-screen-height.html: Removed.
* web-platform-tests/cssom-view/window-screen-width-expected.txt: Removed.
* web-platform-tests/cssom-view/window-screen-width-immutable-expected.txt: Removed.
* web-platform-tests/cssom-view/window-screen-width-immutable.html: Removed.
* web-platform-tests/cssom-view/window-screen-width.html: Removed.

LayoutTests:

Patch by Frederic Wang <fwang@free.fr> on 2018-09-03
Reviewed by Daniel Bates.

cssom-view tests were moved into web-platform-tests/css at r232903 but the old
directory and expectation were left. This patch finishes the migration.

* TestExpectations:
* platform/ios-simulator/imported/w3c/web-platform-tests/cssom-view/Screen-pixelDepth-Screen-colorDepth001-expected.txt: Removed.
* platform/ios-simulator/imported/w3c/web-platform-tests/cssom-view/scrolling-quirks-vs-nonquirks-expected.txt: Removed.
* platform/ios-wk2/imported/w3c/web-platform-tests/cssom-view/elementFromPoint-expected.txt: Removed.
* platform/ios-wk2/imported/w3c/web-platform-tests/cssom-view/scrollIntoView-smooth-expected.txt: Removed.
* platform/ios/TestExpectations:

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

16 months ago[GStreamer] elements registration clean-ups
philn@webkit.org [Mon, 3 Sep 2018 11:17:07 +0000 (11:17 +0000)]
[GStreamer] elements registration clean-ups
https://bugs.webkit.org/show_bug.cgi?id=189192

Reviewed by Xabier Rodriguez-Calvar.

Register all our elements from the base player class. This
simplifies the MSE player by removing duplicated code.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::initializeGStreamerAndRegisterWebKitElements):
(WebCore::registerWebKitGStreamerElements): Deleted.
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::registerMediaEngine):
(WebCore::MediaPlayerPrivateGStreamerMSE::load):
(WebCore::mimeTypeCache):
(WebCore::initializeGStreamerAndRegisterWebKitMSEElement): Deleted.
(WebCore::MediaPlayerPrivateGStreamerMSE::isAvailable): Deleted.
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:

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

16 months agoREGRESSION (r191336): RenderFlexibleBox::adjustChildSizeForMinAndMax crashes in std...
zalan@apple.com [Mon, 3 Sep 2018 03:41:11 +0000 (03:41 +0000)]
REGRESSION (r191336): RenderFlexibleBox::adjustChildSizeForMinAndMax crashes in std::optional<>::value()
https://bugs.webkit.org/show_bug.cgi?id=189232
<rdar://problem/43886373>

Reviewed by Brent Fulgham.

Source/WebCore:

It's not guaranteed that RenderFlexibleBox::computeMainAxisExtentForChild() always returns with a valid value.

Test: fast/flexbox/crash-when-min-max-content-is-not-computed.html

* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):

LayoutTests:

* fast/flexbox/crash-when-min-max-content-is-not-computed-expected.txt: Added.
* fast/flexbox/crash-when-min-max-content-is-not-computed.html: Added.

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

16 months agoImplement Object.fromEntries
yusukesuzuki@slowstart.org [Sun, 2 Sep 2018 16:41:45 +0000 (16:41 +0000)]
Implement Object.fromEntries
https://bugs.webkit.org/show_bug.cgi?id=188481

Reviewed by Darin Adler.

JSTests:

* stress/object-from-entries.js: Added.
(shouldBe):
(shouldThrow):
(shouldBe.JSON.stringify.Object.getOwnPropertyDescriptor):
(shouldBe.set get shouldThrow):

Source/JavaScriptCore:

Object.fromEntries becomes stage 3[1]. This patch implements it by using builtin JS.

[1]: https://tc39.github.io/proposal-object-from-entries/

* builtins/ObjectConstructor.js:
(fromEntries):
* runtime/ObjectConstructor.cpp:

LayoutTests:

* js/Object-getOwnPropertyNames-expected.txt:
* js/script-tests/Object-getOwnPropertyNames.js:

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

16 months ago[WPE] 2.21.91 fails to build with ENABLE_MINIBROWSER
mcatanzaro@igalia.com [Sun, 2 Sep 2018 05:35:49 +0000 (05:35 +0000)]
[WPE] 2.21.91 fails to build with ENABLE_MINIBROWSER
https://bugs.webkit.org/show_bug.cgi?id=189006

Reviewed by Darin Adler.

The MiniBrowser source code is missing from the tarball. Oops! Add it.

* wpe/manifest.txt.in:

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

16 months ago[WinCairo] Add CryptoDigestOpenSSL
yoshiaki.jitsukawa@sony.com [Sun, 2 Sep 2018 05:33:52 +0000 (05:33 +0000)]
[WinCairo] Add CryptoDigestOpenSSL
https://bugs.webkit.org/show_bug.cgi?id=188978

Reviewed by Darin Adler.

Source/WebCore/PAL:

Add a CryptoDigest implementation with OpenSSL/LibreSSL and let the
WinCairo port use it.

* pal/PlatformAppleWin.cmake: Add CryptoDigestWin.cpp to PAL_SOURCES
* pal/PlatformWin.cmake: Remove CryptoDigestWin.cpp from PAL_SOURCES
* pal/PlatformWinCairo.cmake: Add CryptoDigestOpenSSL to PAL_SOURCES
* pal/crypto/openssl/CryptoDigestOpenSSL.cpp: Added.
(PAL::toSHA1Context):
(PAL::toSHA224Context):
(PAL::toSHA256Context):
(PAL::toSHA384Context):
(PAL::toSHA512Context):
(PAL::CryptoDigest::CryptoDigest):
(PAL::CryptoDigest::~CryptoDigest):
(PAL::CryptoDigest::create):
(PAL::CryptoDigest::addBytes):
(PAL::CryptoDigest::computeHash):

Tools:

Add API tests for the PAL::CryptoDigest class.

* TestWebKitAPI/PlatformWin.cmake:
Add CryptoDigest.cpp to TestWebCoreLib_Sources.

Define -DSTATICALLY_LINKED_WITH_PAL=1 to avoid warnings since
without the definition the functions marked with PAL_EXPORT are supposed to be
imported from another shared library, but as it is, TestWebCoreLib
links PAL statically.

* TestWebKitAPI/Tests/WebCore/CryptoDigest.cpp: Added.
(TestWebKitAPI::toHex):
(TestWebKitAPI::expect):
(TestWebKitAPI::expectSHA1):
(TestWebKitAPI::expectSHA224):
(TestWebKitAPI::expectSHA256):
(TestWebKitAPI::expectSHA384):
(TestWebKitAPI::expectSHA512):
(TestWebKitAPI::TEST):

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

16 months agoRename FilterEffectRenderer to CSSFilter
simon.fraser@apple.com [Sun, 2 Sep 2018 03:04:24 +0000 (03:04 +0000)]
Rename FilterEffectRenderer to CSSFilter
https://bugs.webkit.org/show_bug.cgi?id=189223

Reviewed by Sam Weinig.

Filter was subclassed by SVGFilter for SVG, and FilterEffectRenderer for CSS,
which was very confusing, especially when the code uses renderer() to get it.

Rename FilterEffectRenderer to CSSFilter, and access via filter().

Future cleanup will deal with FilterEffectRendererHelper.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSFilterImageValue.cpp:
(WebCore::CSSFilterImageValue::image):
* platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm:
* platform/graphics/filters/Filter.h:
(WebCore::Filter::isCSSFilter const):
* rendering/CSSFilter.cpp: Copied from Source/WebCore/rendering/FilterEffectRenderer.cpp.
(WebCore::endMatrixRow):
(WebCore::lastMatrixRow):
(WebCore::CSSFilter::create):
(WebCore::CSSFilter::CSSFilter):
(WebCore::m_sourceGraphic):
(WebCore::CSSFilter::inputContext):
(WebCore::CSSFilter::buildReferenceFilter):
(WebCore::CSSFilter::build):
(WebCore::CSSFilter::updateBackingStoreRect):
(WebCore::CSSFilter::allocateBackingStoreIfNeeded):
(WebCore::CSSFilter::clearIntermediateResults):
(WebCore::CSSFilter::apply):
(WebCore::CSSFilter::computeSourceImageRectForDirtyRect):
(WebCore::CSSFilter::output const):
(WebCore::CSSFilter::setSourceImageRect):
(WebCore::CSSFilter::setMaxEffectRects):
(WebCore::CSSFilter::outputRect const):
* rendering/CSSFilter.h: Copied from Source/WebCore/rendering/FilterEffectRenderer.h.
(isType):
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRendererHelper::prepareFilterEffect):
(WebCore::FilterEffectRendererHelper::filterContext const):
(WebCore::FilterEffectRendererHelper::beginFilterEffect):
(WebCore::FilterEffectRendererHelper::applyFilterEffect):
(WebCore::endMatrixRow): Deleted.
(WebCore::lastMatrixRow): Deleted.
(WebCore::FilterEffectRenderer::FilterEffectRenderer): Deleted.
(WebCore::m_sourceGraphic): Deleted.
(WebCore::FilterEffectRenderer::create): Deleted.
(WebCore::FilterEffectRenderer::inputContext): Deleted.
(WebCore::FilterEffectRenderer::buildReferenceFilter): Deleted.
(WebCore::FilterEffectRenderer::build): Deleted.
(WebCore::FilterEffectRenderer::updateBackingStoreRect): Deleted.
(WebCore::FilterEffectRenderer::allocateBackingStoreIfNeeded): Deleted.
(WebCore::FilterEffectRenderer::clearIntermediateResults): Deleted.
(WebCore::FilterEffectRenderer::apply): Deleted.
(WebCore::FilterEffectRenderer::computeSourceImageRectForDirtyRect): Deleted.
(WebCore::FilterEffectRenderer::output const): Deleted.
(WebCore::FilterEffectRenderer::setMaxEffectRects): Deleted.
(WebCore::FilterEffectRenderer::outputRect const): Deleted.
* rendering/FilterEffectRenderer.h:
(WebCore::FilterEffectRendererHelper::FilterEffectRendererHelper):
(WebCore::FilterEffectRenderer::setSourceImageRect): Deleted.
* rendering/RenderBlockFlow.cpp:
* rendering/RenderFrame.cpp:
* rendering/RenderImage.cpp:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::requiresFullLayerImageForFilters const):
(WebCore::RenderLayer::filter const):
(WebCore::RenderLayer::filterPainter const):
(WebCore::RenderLayer::setupFilters):
(WebCore::RenderLayer::calculateClipRects const):
(WebCore::RenderLayer::filterRenderer const): Deleted.
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
* rendering/RenderLayerFilterInfo.cpp:
(WebCore::RenderLayer::FilterInfo::setFilter):
(WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients):
(WebCore::RenderLayer::FilterInfo::removeReferenceFilterClients):
(WebCore::RenderLayer::FilterInfo::setRenderer): Deleted.
* rendering/RenderLayerFilterInfo.h:
* rendering/updating/RenderTreeBuilderBlock.cpp:

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

16 months ago[CFNetwork] Update CFNetwork SPI use to use CFNetworkSPI.h more consistently
darin@apple.com [Sun, 2 Sep 2018 02:54:58 +0000 (02:54 +0000)]
[CFNetwork] Update CFNetwork SPI use to use CFNetworkSPI.h more consistently
https://bugs.webkit.org/show_bug.cgi?id=189072
Source/WebCore:

Reviewed by Dan Bernstein.

* platform/mac/WebCoreNSURLExtras.mm: Include CFNetworkSPI.h and remove a
declaration of +[NSURLProtocol _protocolClassForRequest:].

* platform/network/mac/ResourceHandleMac.mm: Remove a declaration of
-[NSURLConnection _initWithRequest:delegate:usesCache:maxContentLength:startImmediately:connectionProperties:].
(WebCore::ResourceHandle::createNSURLConnection): Add ignore of
"-Wdeprecated-declarations" around use of the above method, since it
is deprecated.

Source/WebCore/PAL:

Reviewed by Dan Bernstein.

* pal/spi/cf/CFNetworkSPI.h: Added a FIXME about USE(CFNETWORK_IGNORE_HSTS).
Sorted Objective-C class interfaces alphabetically instead of having them
relatively randomly ordered in the file. Reduced the platform #if statements
since it's not critical to have these SPIs declared only where they are
present, as long as they are used only when they are present. Moved some
additional declarations into this file.

* pal/spi/cocoa/NSURLDownloadSPI.h: Added more NSURLDownload methods.

Source/WebKit:

Reviewed by Dan Bernstein.

* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: Removed NSURLSessionTask
method declarations from this file, they are in CFNetworkSPI.h.

* NetworkProcess/cocoa/NetworkSessionCocoa.mm: Removed NSURLSessionConfiguration
method declarations from this file, they are in CFNetworkSPI.h.

Source/WebKitLegacy/mac:

Reviewed by Dan Bernstein.

* Misc/WebDownload.mm: Removed forward declaration of NSURLConnectionDelegateProxy
and declarations for NSURLDownload init methods.

* Misc/WebDownloadInternal.h: Removed.

* WebCoreSupport/WebFrameLoaderClient.mm: Removed include of WebDownloadInternal.h.
(WebFrameLoaderClient::convertMainResourceLoadToDownload): Ignore
"-Wdeprecated-declarations" because the method used here is deprecated.

* WebView/WebView.mm:
(-[WebView _downloadURL:]): Ignore "-Wdeprecated-declarations" because the method
used here is deprecated.

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

16 months ago[Cocoa] Crash using KVO for 'serverTrust' property of WKWebView - "this class is...
mitz@apple.com [Sat, 1 Sep 2018 23:14:31 +0000 (23:14 +0000)]
[Cocoa] Crash using KVO for 'serverTrust' property of WKWebView - "this class is not key value coding-compliant for the key serverTrust"
https://bugs.webkit.org/show_bug.cgi?id=189222
<rdar://problem/33283179>

Reviewed by Sam Weinig.

Source/WebKit:

Test: TestWebKitAPI/Tests/WebKitCocoa/WKWebViewServerTrustKVC.mm

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView valueForUndefinedKey:]): Override to handle the "serverTrust" key, which is not
  handled automatically by the KVC machinery since the getter’s return type is not an
  Objective-C type.

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/WKWebViewServerTrustKVC.mm: Added.
(TEST):

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

16 months agoAdd some more filter logging
simon.fraser@apple.com [Sat, 1 Sep 2018 20:16:01 +0000 (20:16 +0000)]
Add some more filter logging
https://bugs.webkit.org/show_bug.cgi?id=189221

Reviewed by Anders Carlsson.

Add logging in FilterEffect::apply() that shows all the filter rects, and logging
that brackets the application of a whole filter chain, for both SVG and CSS filters.

* platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::apply):
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRendererHelper::applyFilterEffect):
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::postApplyResource):

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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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

16 months 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