WebKit-https.git
23 months agoMultiple imported layout tests are crashing and timing out.
commit-queue@webkit.org [Mon, 23 Oct 2017 22:30:23 +0000 (22:30 +0000)]
Multiple imported layout tests are crashing and timing out.
https://bugs.webkit.org/show_bug.cgi?id=178685

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-23

* TestExpectations: skipping cache storage tests in service worker context until it is functional.

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

23 months ago[Payment Request] Take the JSC API lock before creating the PaymentResponse.details...
aestes@apple.com [Mon, 23 Oct 2017 22:14:55 +0000 (22:14 +0000)]
[Payment Request] Take the JSC API lock before creating the PaymentResponse.details object
https://bugs.webkit.org/show_bug.cgi?id=178686

Reviewed by Keith Miller.

This fixes several flaky crashes in http/tests/paymentrequest/ after r223855.

* Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::ApplePayPaymentHandler::didAuthorizePayment):

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

23 months agoStop using _UIApplicationUsesLegacyUI()
timothy_horton@apple.com [Mon, 23 Oct 2017 21:58:42 +0000 (21:58 +0000)]
Stop using _UIApplicationUsesLegacyUI()
https://bugs.webkit.org/show_bug.cgi?id=178680
<rdar://problem/35131949>

Reviewed by Dan Bernstein.

* Platform/spi/ios/UIKitSPI.h:
* UIProcess/ios/forms/WKFormSelectPopover.mm:
(-[WKSelectTableViewController tableView:cellForRowAtIndexPath:]):
(-[WKSelectPopover initWithView:hasGroups:]):
Resolve _UIApplicationUsesLegacyUI to false and simplify.

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

23 months agoWeb Inspector: Please support HAR Export for network traffic
joepeck@webkit.org [Mon, 23 Oct 2017 21:34:59 +0000 (21:34 +0000)]
Web Inspector: Please support HAR Export for network traffic
https://bugs.webkit.org/show_bug.cgi?id=146692
<rdar://problem/7463672>

Reviewed by Brian Burg.

Source/JavaScriptCore:

* inspector/protocol/Network.json:
Add a walltime to each send request.

Source/WebCore:

Tests: http/tests/inspector/network/har/har-basic.html
       http/tests/inspector/network/har/har-page.html

* inspector/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::willSendRequest):
Include the wall time when sending a request. This is needed for HAR to
include a wall time, and can be used for Cookie expiration time calculation
as well.

Source/WebInspectorUI:

* UserInterface/Main.html:
* UserInterface/Test.html:
New resources.

* UserInterface/Base/Platform.js:
Include a build number as well.

* UserInterface/Base/URLUtilities.js:
(parseLocationQueryParameters): Deleted.
Remove unused function.

* UserInterface/Controllers/FrameResourceManager.js:
(WI.FrameResourceManager.prototype.frameDidNavigate):
(WI.FrameResourceManager.prototype.resourceRequestWillBeSent):
(WI.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache):
(WI.FrameResourceManager.prototype.resourceRequestDidReceiveResponse):
(WI.FrameResourceManager.prototype._addNewResourceToFrameOrTarget):
Pass along a walltime.

* UserInterface/Protocol/NetworkObserver.js:
(WI.NetworkObserver.prototype.requestWillBeSent):
Pass along a walltime. This new parameter shifts old parameters.

* UserInterface/Controllers/HARBuilder.js: Added.
(WI.HARBuilder.async.buildArchive):
(WI.HARBuilder.creator):
(WI.HARBuilder.pages):
(WI.HARBuilder.pageTimings):
(WI.HARBuilder.entry):
(WI.HARBuilder.request):
(WI.HARBuilder.response):
(WI.HARBuilder.cookies):
(WI.HARBuilder.headers):
(WI.HARBuilder.content):
(WI.HARBuilder.postData):
(WI.HARBuilder.cache):
(WI.HARBuilder.timings):
(WI.HARBuilder.ipAddress):
(WI.HARBuilder.date):
(WI.HARBuilder.fetchType):
HAR construction and helpers.

* UserInterface/Models/Cookie.js:
(WI.Cookie.prototype.expirationDate):
* UserInterface/Models/Resource.js:
(WI.Resource.prototype.get queryStringParameters):
(WI.Resource.prototype.get requestFormParameters):
(WI.Resource.prototype.get requestSentWalltime):
(WI.Resource.prototype.get requestSentDate):
(WI.Resource.prototype.hasRequestFormParameters):
Helpers for HAR generation and sub-sets of data.

* UserInterface/Models/SourceCode.js:
(WI.SourceCode.prototype._processContent):
Capture the raw, unmodified, base64 encoded flag and content. This ends
up getting used by HAR generation and is otherwise lost.

* UserInterface/Test/TestHarness.js:
(TestHarness.prototype.json):
Helper for just logging JSON data with a filter. This defaults to
a reasonable 2 space indent for JSON logs in our test output.

* UserInterface/Views/DOMTreeContentView.js:
(WI.DOMTreeContentView.prototype.get saveData):
(WI.DOMTreeContentView.get saveData.saveHandler): Deleted.
Drive-by simplify while looking at other save handlers.

* UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView.prototype.get supportsSave):
(WI.NetworkTableContentView.prototype.get saveData):
(WI.NetworkTableContentView.prototype.tableCellContextMenuClicked):
(WI.NetworkTableContentView.prototype._HARResources):
(WI.NetworkTableContentView.prototype._exportHAR):
Provide a context menu and save keyboard handler to export a HAR.
This matches other browsers.

* UserInterface/Views/ResourceClusterContentView.js:
(WI.ResourceClusterContentView.prototype._canShowRequestContentView):
Use code that is now available in Resource.

LayoutTests:

* http/tests/inspector/network/har/har-basic-expected.txt: Added.
* http/tests/inspector/network/har/har-basic.html: Added.
* http/tests/inspector/network/har/har-page-expected.txt: Added.
* http/tests/inspector/network/har/har-page.html: Added.
Tests with mock resources / data and real resources.

* platform/mac-wk1/TestExpectations:
* platform/mac/TestExpectations:
* platform/win/TestExpectations:
Skip on platforms that cannot provide complete metrics, so some optional
fields may be missing.

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

23 months ago[Payment Request] Resolve PaymentRequest.show()'s accept promise when a payment is...
aestes@apple.com [Mon, 23 Oct 2017 21:00:45 +0000 (21:00 +0000)]
[Payment Request] Resolve PaymentRequest.show()'s accept promise when a payment is authorized
https://bugs.webkit.org/show_bug.cgi?id=178609
<rdar://problem/33542813>

Reviewed by Alex Christensen.

Source/WebCore:

This patch implements the logic for resolving PaymentRequest.show()'s accept promise when
the user authorizes a payment, and implements PaymentResponse.complete().

Tests: http/tests/paymentrequest/payment-address-attributes-and-toJSON-method.https.html
       http/tests/paymentrequest/payment-response-complete-method.https.html
       http/tests/paymentrequest/payment-response-methodName-attribute.https.html
       http/tests/paymentrequest/payment-response-payerEmail-attribute.https.html
       http/tests/paymentrequest/payment-response-payerName-attribute.https.html
       http/tests/paymentrequest/payment-response-payerPhone-attribute.https.html

* DerivedSources.make:
* Modules/applepay/ApplePayPaymentContact.h:
* Modules/applepay/Payment.h:
(WebCore::Payment::Payment): Deleted.
(WebCore::Payment::pkPayment const): Deleted.
* Modules/applepay/PaymentContact.h:
(WebCore::PaymentContact::PaymentContact): Deleted.
(WebCore::PaymentContact::pkContact const): Deleted.
* Modules/applepay/cocoa/PaymentContactCocoa.mm:
(WebCore::convert):
* Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::ApplePayPaymentHandler::hasActiveSession):
(WebCore::ApplePayPaymentHandler::ApplePayPaymentHandler):
(WebCore::ApplePayPaymentHandler::document):
(WebCore::ApplePayPaymentHandler::paymentCoordinator):
(WebCore::ApplePayPaymentHandler::convertData):
(WebCore::ApplePayPaymentHandler::show):
(WebCore::ApplePayPaymentHandler::hide):
(WebCore::ApplePayPaymentHandler::canMakePayment):
(WebCore::ApplePayPaymentHandler::complete):
(WebCore::convert):
(WebCore::ApplePayPaymentHandler::didAuthorizePayment):
(WebCore::ApplePayPaymentHandler::didSelectShippingMethod):
(WebCore::ApplePayPaymentHandler::didSelectShippingContact):
* Modules/applepay/paymentrequest/ApplePayPaymentHandler.h:
* Modules/paymentrequest/PaymentAddress.h:
* Modules/paymentrequest/PaymentAddress.idl:
* Modules/paymentrequest/PaymentHandler.cpp:
(WebCore::PaymentHandler::create):
* Modules/paymentrequest/PaymentHandler.h:
* Modules/paymentrequest/PaymentRequest.cpp:
(WebCore::PaymentRequest::show):
(WebCore::PaymentRequest::stop):
(WebCore::PaymentRequest::canMakePayment):
(WebCore::PaymentRequest::canSuspendForDocumentSuspension const):
(WebCore::PaymentRequest::shippingAddressChanged):
(WebCore::PaymentRequest::shippingOptionChanged):
(WebCore::PaymentRequest::accept):
(WebCore::PaymentRequest::complete):
* Modules/paymentrequest/PaymentRequest.h:
* Modules/paymentrequest/PaymentResponse.cpp:
(WebCore::PaymentResponse::PaymentResponse):
(WebCore::PaymentResponse::complete):
* Modules/paymentrequest/PaymentResponse.h:
* WebCore.xcodeproj/project.pbxproj:
* testing/Internals.cpp:
(WebCore::Internals::Internals):
(WebCore::Internals::mockPaymentCoordinator const):
* testing/Internals.h:
* testing/Internals.idl:
* testing/MockPayment.h: Added.
* testing/MockPaymentAddress.h: Added.
* testing/MockPaymentAddress.idl: Added.
* testing/MockPaymentContact.h: Added.
* testing/MockPaymentCoordinator.cpp:
(WebCore::MockPaymentCoordinator::canMakePaymentsWithActiveCard):
(WebCore::MockPaymentCoordinator::openPaymentSetup):
(WebCore::dispatchIfShowing):
(WebCore::MockPaymentCoordinator::showPaymentUI):
(WebCore::MockPaymentCoordinator::completeMerchantValidation):
(WebCore::MockPaymentCoordinator::completePaymentSession):
(WebCore::MockPaymentCoordinator::abortPaymentSession):
(WebCore::MockPaymentCoordinator::cancelPaymentSession):
(WebCore::MockPaymentCoordinator::paymentCoordinatorDestroyed):
* testing/MockPaymentCoordinator.h:
* testing/MockPaymentCoordinator.idl: Added.

LayoutTests:

* http/tests/paymentrequest/payment-address-attributes-and-toJSON-method.https-expected.txt: Added.
* http/tests/paymentrequest/payment-address-attributes-and-toJSON-method.https.html: Copied from imported/w3c/web-platform-tests/payment-request/PaymentAddress/attributes-and-toJSON-method-manual.https.html.
* http/tests/paymentrequest/payment-response-complete-method.https-expected.txt: Added.
* http/tests/paymentrequest/payment-response-complete-method.https.html: Copied from imported/w3c/web-platform-tests/payment-request/payment-response/complete-method-manual.https.html.
* http/tests/paymentrequest/payment-response-methodName-attribute.https-expected.txt: Added.
* http/tests/paymentrequest/payment-response-methodName-attribute.https.html: Copied from imported/w3c/web-platform-tests/payment-request/payment-response/methodName-attribute-manual.https.html.
* http/tests/paymentrequest/payment-response-payerEmail-attribute.https-expected.txt: Added.
* http/tests/paymentrequest/payment-response-payerEmail-attribute.https.html: Copied from imported/w3c/web-platform-tests/payment-request/payment-response/payerEmail-attribute-manual.https.html.
* http/tests/paymentrequest/payment-response-payerName-attribute.https-expected.txt: Added.
* http/tests/paymentrequest/payment-response-payerName-attribute.https.html: Copied from imported/w3c/web-platform-tests/payment-request/payment-response/payerName-attribute-manual.https.html.
* http/tests/paymentrequest/payment-response-payerPhone-attribute.https-expected.txt: Added.
* http/tests/paymentrequest/payment-response-payerPhone-attribute.https.html: Copied from imported/w3c/web-platform-tests/payment-request/payment-response/payerPhone-attribute-manual.https.html.
* http/tests/paymentrequest/resources/helpers.js: Copied from imported/w3c/web-platform-tests/payment-request/payment-response/helpers.js.
(test):
(async.getPaymentResponse):
(async.getPaymentRequestResponse):
(async.runTest):

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

23 months agoAttempt to stop iOS Simulator tests from failing because
dino@apple.com [Mon, 23 Oct 2017 20:59:40 +0000 (20:59 +0000)]
Attempt to stop iOS Simulator tests from failing because
we don't support Accelerated ImageBuffer.

* html/ImageBitmap.cpp:

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

23 months ago[FrameView::layout cleanup] Make m_subtreeLayoutRoot weak.
zalan@apple.com [Mon, 23 Oct 2017 20:42:50 +0000 (20:42 +0000)]
[FrameView::layout cleanup] Make m_subtreeLayoutRoot weak.
https://bugs.webkit.org/show_bug.cgi?id=178621
<rdar://problem/35110321>

Reviewed by Simon Fraser.

This patch turn m_subtreeLayoutRoot into a weak pointer to handle both the optional and the mutation cases.

Covered by existing cases.

* page/FrameView.cpp:
(WebCore::FrameView::reset):
(WebCore::FrameView::willDestroyRenderTree):
(WebCore::FrameView::didDestroyRenderTree):
(WebCore::FrameView::calculateScrollbarModesForLayout):
(WebCore::FrameView::handleLayoutWithFrameFlatteningIfNeeded):
(WebCore::FrameView::canPerformLayout const):
(WebCore::FrameView::layout): WeakPtr<RenderElement> protects us from recursive layouts triggering UAF on layoutRoot.
(WebCore::FrameView::convertSubtreeLayoutToFullLayout):
(WebCore::FrameView::scheduleRelayout):
(WebCore::FrameView::scheduleRelayoutOfSubtree):
(WebCore::FrameView::needsLayout const):
(WebCore::FrameView::autoSizeIfEnabled):
* page/FrameView.h:

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

23 months agoUnreviewed, fix windows build.
keith_miller@apple.com [Mon, 23 Oct 2017 20:40:13 +0000 (20:40 +0000)]
Unreviewed, fix windows build.

* CMakeLists.txt:

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

23 months agoUnreviewed, suppress deprecation warnings to fix the build.
ryanhaddad@apple.com [Mon, 23 Oct 2017 20:32:34 +0000 (20:32 +0000)]
Unreviewed, suppress deprecation warnings to fix the build.
<rdar://problem/35131949>

* UIProcess/ios/forms/WKFormSelectPopover.mm:
(-[WKSelectTableViewController tableView:cellForRowAtIndexPath:]):
(-[WKSelectPopover initWithView:hasGroups:]):

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

23 months agoMove shared accessibility and animiations files to unified sources.
keith_miller@apple.com [Mon, 23 Oct 2017 20:23:06 +0000 (20:23 +0000)]
Move shared accessibility and animiations files to unified sources.
https://bugs.webkit.org/show_bug.cgi?id=178677

Reviewed by Tim Horton.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:

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

23 months agoDrop confusing Event::dispatched() method
cdumez@apple.com [Mon, 23 Oct 2017 19:36:24 +0000 (19:36 +0000)]
Drop confusing Event::dispatched() method
https://bugs.webkit.org/show_bug.cgi?id=178670

Reviewed by Youenn Fablet.

Source/WebCore:

Drop confusing Event::dispatched() method. What the call sites want to do is check
that the Event's "dispatch" flag is set:
- https://dom.spec.whatwg.org/#dispatch-flag

This flag gets set at the beginning of dispatchEvent() and unset at the end of
dispatchEvent():
- https://dom.spec.whatwg.org/#ref-for-dispatch-flag③

See as an example event.initEvent():
- https://dom.spec.whatwg.org/#dom-event-initevent

The right way to check the Event's "dispatch" flag is the Event::isBeingDispatched()
method, so use this instead. One side effect of this change is that it is now
possible to call the init*Event() method on events that have already been dispatched
in order to dispatch them again, as per the specification.

Test: fast/events/initEvent-after-dispatching.html

* dom/CompositionEvent.cpp:
(WebCore::CompositionEvent::initCompositionEvent):
* dom/DeviceMotionEvent.cpp:
(WebCore::DeviceMotionEvent::initDeviceMotionEvent):
* dom/DeviceOrientationEvent.cpp:
(WebCore::DeviceOrientationEvent::initDeviceOrientationEvent):
* dom/Event.h:
* dom/HashChangeEvent.h:
* dom/KeyboardEvent.cpp:
(WebCore::KeyboardEvent::initKeyboardEvent):
* dom/MessageEvent.cpp:
(WebCore::MessageEvent::initMessageEvent):
* dom/MouseEvent.cpp:
(WebCore::MouseEvent::initMouseEvent):
* dom/OverflowEvent.cpp:
(WebCore::OverflowEvent::initOverflowEvent):
* dom/TextEvent.cpp:
(WebCore::TextEvent::initTextEvent):
* dom/TouchEvent.cpp:
(WebCore::TouchEvent::initTouchEvent):
* dom/UIEvent.cpp:
(WebCore::UIEvent::initUIEvent):
* dom/WheelEvent.cpp:
(WebCore::WheelEvent::initWheelEvent):
* storage/StorageEvent.cpp:
(WebCore::StorageEvent::initStorageEvent):

LayoutTests:

Add layout test coverage.

* fast/events/initEvent-after-dispatching-expected.txt: Added.
* fast/events/initEvent-after-dispatching.html: Added.

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

23 months agoRemember previous child renderer during render tree update
antti@apple.com [Mon, 23 Oct 2017 18:59:06 +0000 (18:59 +0000)]
Remember previous child renderer during render tree update
https://bugs.webkit.org/show_bug.cgi?id=178659

Reviewed by Zalan Bujtas.

Source/WebCore:

We shouldn't need to recompute the previous renderer, we know it already.

* style/RenderTreePosition.cpp:
(WebCore::RenderTreePosition::previousSiblingRenderer const): Deleted.

    No longer needed. This was also subtly wrong as doesn't take display:contents into account.

* style/RenderTreePosition.h:
* style/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateRenderTree):
(WebCore::RenderTreeUpdater::textRendererIsNeeded):

    Use the saved previous renderer.

(WebCore::RenderTreeUpdater::updateTextRenderer):
(WebCore::RenderTreeUpdater::storePreviousRenderer):

    Save the previous renderere as we walk the tree.

(WebCore::textRendererIsNeeded): Deleted.
* style/RenderTreeUpdater.h:

LayoutTests:

* fast/block/float/float-not-removed-from-pre-block-expected.txt:
* platform/mac/fast/css-generated-content/details-summary-before-after-expected.txt:

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

23 months agoAdd Shared Modules files to the unified source build.
keith_miller@apple.com [Mon, 23 Oct 2017 18:57:50 +0000 (18:57 +0000)]
Add Shared Modules files to the unified source build.
https://bugs.webkit.org/show_bug.cgi?id=178675

Reviewed by Tim Horton.

This patch all the Modules sources files shared across all ports to
unified sources.

* CMakeLists.txt:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:

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

23 months ago<rdar://problem/35045445>
lforschler@apple.com [Mon, 23 Oct 2017 18:42:09 +0000 (18:42 +0000)]
<rdar://problem/35045445>
Update README to reference WebKit build archives, instead of 'nightly'

Reviewed by Aakash Jain.

* WebKitArchiveSupport/README:

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

23 months agoAdd tests to ensure spelling error dots are drawn in the correct place in bottom...
dbates@webkit.org [Mon, 23 Oct 2017 18:10:15 +0000 (18:10 +0000)]
Add tests to ensure spelling error dots are drawn in the correct place in bottom-to-top
and right-to-left writing modes
https://bugs.webkit.org/show_bug.cgi?id=178671

Reviewed by Simon Fraser.

* fast/writing-mode/english-bt-text-with-spelling-marker-expected.html: Added.
* fast/writing-mode/english-bt-text-with-spelling-marker.html: Added.
* fast/writing-mode/english-rl-text-with-spelling-marker-expected.html: Added.
* fast/writing-mode/english-rl-text-with-spelling-marker.html: Added.
* platform/ios/TestExpectations: Skip the test on iOS as it does not support spelling and grammar
marker painting.
* platform/mac-wk2/TestExpectations: Mark the test as an image failure until we fix <https://bugs.webkit.org/show_bug.cgi?id=105616>.

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

23 months agobmalloc::api::tryLargeMemalignVirtual() shouldn't assert on a failed allocation
zandobersek@gmail.com [Mon, 23 Oct 2017 17:56:41 +0000 (17:56 +0000)]
bmalloc::api::tryLargeMemalignVirtual() shouldn't assert on a failed allocation
https://bugs.webkit.org/show_bug.cgi?id=178654

Reviewed by Geoffrey Garen.

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

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

23 months agoImplement drawImage(ImageBitmap) on 2d canvas
dino@apple.com [Mon, 23 Oct 2017 17:51:08 +0000 (17:51 +0000)]
Implement drawImage(ImageBitmap) on 2d canvas
https://bugs.webkit.org/show_bug.cgi?id=178653
<rdar://problem/35104360>

Reviewed by Antoine Quint.

LayoutTests/imported/w3c:

Update expected results now that drawImage is implemented.

* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:

Source/WebCore:

Implement CanvasRenderingContext2D::drawImage with ImageBitmap.
It's probably not going to be a very common operation, but
it importantly allows us to test the ImageBitmap creation
code.

Test: http/wpt/2dcontext/imagebitmap/drawImage-ImageBitmap.html

* html/ImageBitmap.cpp:
(WebCore::taintsOrigin): New helper function to determine if a
CachedImage would provide a clean origin.
(WebCore::ImageBitmap::createPromise): Set the flag that records
if this ImageBitmap has a clean origin.
* html/ImageBitmap.h:
(WebCore::ImageBitmap::buffer): Exposes the ImageBuffer backing
store, allowing access to the data for drawing.
(WebCore::ImageBitmap::originClean const): Is this ImageBitmap
going to taint a destination.
* html/canvas/CanvasRenderingContext.cpp:
(WebCore::CanvasRenderingContext::wouldTaintOrigin): Implement
the ImageBitmap version of this template function.
* html/canvas/CanvasRenderingContext.h:
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawImage): Implement the
actual drawing of an ImageBitmap.

LayoutTests:

Add a new test that exercises drawImage(ImageBitmap)
that will be contributed back to Web Platform Tests.

* http/wpt/2dcontext/imagebitmap/common.js: Copied (mostly) from WPT.
(create9x9CanvasWith2dContext): New helper function to create a canvas
and provide a rendering context.
* http/wpt/2dcontext/imagebitmap/drawImage-ImageBitmap-expected.txt: Added.
* http/wpt/2dcontext/imagebitmap/drawImage-ImageBitmap.html: Added.
* http/wpt/2dcontext/imagebitmap/target-blue-dot.png: Added.

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

23 months agoAdd tests to ensure spelling error dots are drawn in the correct place for overlappin...
dbates@webkit.org [Mon, 23 Oct 2017 17:49:22 +0000 (17:49 +0000)]
Add tests to ensure spelling error dots are drawn in the correct place for overlapping lines
https://bugs.webkit.org/show_bug.cgi?id=178611
<rdar://problem/35105805>

Reviewed by Zalan Bujtas.

Add tests to ensure that we paint the spelling error dots in the correct place for
overlapping lines.

* editing/spelling/spelling-markers-in-overlapping-lines-expected.html: Added.
* editing/spelling/spelling-markers-in-overlapping-lines-large-font-expected.html: Added.
* editing/spelling/spelling-markers-in-overlapping-lines-large-font.html: Added.
* editing/spelling/spelling-markers-in-overlapping-lines.html: Added.
* platform/ios/TestExpectations: Skip the test on iOS as it does not support spelling and grammar
marker painting.
* platform/mac-wk2/TestExpectations: Mark the test as an image failure until we fix <https://bugs.webkit.org/show_bug.cgi?id=105616>.

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

23 months agoUnreviewed WPE gardening. Unskip the SVG tests and generate the
zandobersek@gmail.com [Mon, 23 Oct 2017 17:35:23 +0000 (17:35 +0000)]
Unreviewed WPE gardening. Unskip the SVG tests and generate the
required platform-specific baselines.

* platform/wpe/TestExpectations:
* platform/wpe/svg: Added ~800 baselines.

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

23 months agoUnreviewed, rolling out r223699.
dbates@webkit.org [Mon, 23 Oct 2017 17:28:18 +0000 (17:28 +0000)]
Unreviewed, rolling out r223699.

Caused regressions with right-to-left text selection and
painting of markers in flipped writing mode and in overlapping
lines. Will investigate offline.

Reverted changeset:

"Share logic in InlineTextBox to compute selection rect"
https://bugs.webkit.org/show_bug.cgi?id=178232
https://trac.webkit.org/changeset/223699

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

23 months agoSource/WebCore:
commit-queue@webkit.org [Mon, 23 Oct 2017 17:25:32 +0000 (17:25 +0000)]
Source/WebCore:
Create a Fetch event when ServiceWorker has to handle a fetch
https://bugs.webkit.org/show_bug.cgi?id=178491

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

Covered by existing test.

Updating FetchEvent to pass a FetchResponse* within its onResponse callback.
Making it a CompletionHandler.
Fixing a check on respondWith to ensure that event is dispatched when respondWith is called.

Adding ServiceWorkerFetch class to handle the creation of the fetch event, waiting for the fetch event to be responded
and processing when fetch event is responded.
ServiceWorkerFetchTask takes a client to which will be sent the response body or the error.
WebKit implementation of it will be to send the related IPC message back to the WebProcess that made the fetch request.

Adding a method to ServiceWorkerThread to create the fetch event on worker thread and dispatch on the global scope.

* WebCore.xcodeproj/project.pbxproj:
* platform/network/ResourceResponseBase.h:
* testing/Internals.cpp:
(WebCore::Internals::waitForFetchEventToFinish):
* workers/service/FetchEvent.cpp:
(WebCore::FetchEvent::~FetchEvent):
(WebCore::FetchEvent::respondWith):
(WebCore::FetchEvent::onResponse):
(WebCore::FetchEvent::respondWithError):
(WebCore::FetchEvent::processResponse):
(WebCore::FetchEvent::promiseIsSettled):
* workers/service/FetchEvent.h:
* workers/service/context/ServiceWorkerFetch.cpp: Added.
(WebCore::ServiceWorkerFetch::dispatchFetchTask):
(WebCore::ServiceWorkerFetch::processResponse):
* workers/service/context/ServiceWorkerFetch.h: Added.
* workers/service/context/ServiceWorkerThread.cpp:
(WebCore::m_workerObjectProxy):
(WebCore::ServiceWorkerThread::dispatchFetchEvent):
* workers/service/context/ServiceWorkerThread.h:

Source/WebKit:
TestController should clear all fetch caches when resetting its state
https://bugs.webkit.org/show_bug.cgi?id=178486
<rdar://problem/35066305>

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

Adding a new DidNotHandle message to disambiguate with the DidFail fetch case.
With DidNotHandle, the loading should go the network process.
With DidFail, the loading should return a network error.

On receiving an order to start a fetch, ServiceWorkerThread will dispatch a fetch event.
The client of this event will retrieve the response and return it to the WebProcess through IPC.

* StorageProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::didNotHandleFetch):
* StorageProcess/ServiceWorker/WebSWServerConnection.h:
* StorageProcess/StorageProcess.cpp:
(WebKit::StorageProcess::didNotHandleFetch):
* StorageProcess/StorageProcess.h:
* StorageProcess/StorageProcess.messages.in:
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/Storage/ServiceWorkerClientFetch.cpp:
(WebKit::ServiceWorkerClientFetch::didFail):
(WebKit::ServiceWorkerClientFetch::didNotHandle):
* WebProcess/Storage/ServiceWorkerClientFetch.h:
* WebProcess/Storage/ServiceWorkerClientFetch.messages.in:
* WebProcess/Storage/ServiceWorkerContextManager.cpp:
(WebKit::ServiceWorkerContextManager::startFetch):
* WebProcess/Storage/ServiceWorkerContextManager.h:
* WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp: Added.
(WebKit::WebServiceWorkerFetchTaskClient::~WebServiceWorkerFetchTaskClient):
(WebKit::WebServiceWorkerFetchTaskClient::WebServiceWorkerFetchTaskClient):
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveResponse):
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveData):
(WebKit::WebServiceWorkerFetchTaskClient::didFail):
(WebKit::WebServiceWorkerFetchTaskClient::didFinish):
* WebProcess/Storage/WebServiceWorkerFetchTaskClient.h: Added.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::startFetchInServiceWorker):
* WebProcess/WebProcess.h:

LayoutTests:
TestController should clear all fetch caches when resetting its state
https://bugs.webkit.org/show_bug.cgi?id=178486
<rdar://problem/35066305>

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

Beefing up the test by using fetch event handler to return responses
previously hard coded in ServiceWorkerContextManager.

* http/tests/workers/service/basic-fetch.https-expected.txt:
* http/tests/workers/service/resources/basic-fetch-worker.js:
(event.event.request.url.indexOf):
* http/tests/workers/service/resources/basic-fetch.js:

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

23 months ago[Curl] Fix authentication related bugs
commit-queue@webkit.org [Mon, 23 Oct 2017 17:21:08 +0000 (17:21 +0000)]
[Curl] Fix authentication related bugs
https://bugs.webkit.org/show_bug.cgi?id=178652

Patch by Basuke Suzuki <Basuke.Suzuki@sony.com> on 2017-10-23
Reviewed by Alex Christensen.

* platform/network/curl/AuthenticationChallengeCurl.cpp:
(WebCore::AuthenticationChallenge::protectionSpaceFromHandle):
* platform/network/curl/CurlContext.cpp:
(WebCore::CurlHandle::setHttpAuthUserPass):
* platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::setUserPass):
(WebCore::CurlRequest::setupTransfer):
(WebCore::CurlRequest::didReceiveHeader):
* platform/network/curl/CurlRequest.h:

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

23 months agoMark compositing/visible-rect/iframe-no-layers.html as a flaky failure.
ryanhaddad@apple.com [Mon, 23 Oct 2017 17:10:05 +0000 (17:10 +0000)]
Mark compositing/visible-rect/iframe-no-layers.html as a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=178669

Unreviewed test gardening.

* platform/ios/TestExpectations:

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

23 months agoUnreviewed, rolling out r223820.
jlewis3@apple.com [Mon, 23 Oct 2017 16:44:58 +0000 (16:44 +0000)]
Unreviewed, rolling out r223820.

This caused a build break on Windows.

Reverted changeset:

"Web Inspector: Remove unused Console.setMonitoringXHREnabled"
https://bugs.webkit.org/show_bug.cgi?id=178617
https://trac.webkit.org/changeset/223820

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

23 months agoCall FrameView::scheduleSelectionUpdate when selection needs repainting after layout...
zalan@apple.com [Mon, 23 Oct 2017 15:57:51 +0000 (15:57 +0000)]
Call FrameView::scheduleSelectionUpdate when selection needs repainting after layout instead of setting the RenderView dirty.
https://bugs.webkit.org/show_bug.cgi?id=178651
<rdar://problem/35117448>

Reviewed by Antti Koivisto.

Calling setNeedsLayout() on the RenderView to trigger selection update is problematic in 2 different ways:
1. marking the root renderer dirty does not trigger layout (this is very specific to the root,
other renderers do trigger layout). It means that it works as long as someone else schedules a layout.
2. when a subtree layout is already scheduled and we mark the root renderer dirty, the root gets stuck with
the dirty flag (since the entry point for the subsequent layout is a descendant of the root and not the root itself).

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

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

* editing/FrameSelection.cpp:
(WebCore::FrameSelection::respondToNodeModification):
* page/FrameView.cpp:
(WebCore::FrameView::scheduleSelectionUpdate):
* page/FrameView.h:

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

23 months ago[JSC] Use fastJoin in Array#toString
utatane.tea@gmail.com [Mon, 23 Oct 2017 11:50:21 +0000 (11:50 +0000)]
[JSC] Use fastJoin in Array#toString
https://bugs.webkit.org/show_bug.cgi?id=178062

Reviewed by Darin Adler.

JSTests:

* microbenchmarks/contiguous-array-to-string.js: Added.
(target):
* microbenchmarks/double-array-to-string.js: Added.
(target):
* microbenchmarks/int32-array-to-string.js: Added.
(target):

Source/JavaScriptCore:

Array#toString()'s fast path uses original join operation.
But this should use fastJoin if possible.
This patch adds a fast path using fastJoin in Array#toString.
And we also extend fastJoin to perform fast joining for int32
arrays.

                                     baseline                  patched

double-array-to-string          126.6157+-5.8625     ^    103.7343+-4.4968        ^ definitely 1.2206x faster
int32-array-to-string            64.7792+-2.6524           61.2390+-2.1749          might be 1.0578x faster
contiguous-array-to-string       62.6224+-2.6388     ^     56.9899+-2.0852        ^ definitely 1.0988x faster

* runtime/ArrayPrototype.cpp:
(JSC::fastJoin):
(JSC::arrayProtoFuncToString):
(JSC::arrayProtoFuncToLocaleString):
* runtime/JSStringJoiner.h:
(JSC::JSStringJoiner::appendWithoutSideEffects):
(JSC::JSStringJoiner::appendInt32):
(JSC::JSStringJoiner::appendDouble):

Source/WTF:

A bit cleaning up to use StringImpl::copyChars instead of
using for-loop directly.

* wtf/text/StringView.h:
(WTF::StringView::getCharactersWithUpconvert const):

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

23 months ago[TexMap] Remove GraphicsContext3D usage from TextureMapperShaderProgram
magomez@igalia.com [Mon, 23 Oct 2017 10:11:12 +0000 (10:11 +0000)]
[TexMap] Remove GraphicsContext3D usage from TextureMapperShaderProgram
https://bugs.webkit.org/show_bug.cgi?id=175425

Reviewed by Žan Doberšek.

Remove usage of the GraphicsContext3D class in TextureMapperShaderProgram.
Direct OpenGL API calls, types and constants are used instead.

By removing GraphicsContext3D, we don't use ANGLE anymore to perform the
shader adaptation to the used OpenGL/GLES2 version, so we need to do that
inside TextureMapperShaderProgram. The main changes required for this are
adding the #version directive and use in/out to define input/output parameters
when using OpenGL >= 3.2, and defining the default precision only when using
GLES2.

Besides that, now that VideoTextureCopierGStreamer doesn't have its own
GraphicsContext3D, we need to add a VAO to it when using OpenGL >= 3.2.

Based on a previous patch by Žan Doberšek <zdobersek@igalia.com>.

No behavior change.

* platform/graphics/gstreamer/VideoTextureCopierGStreamer.cpp:
(WebCore::VideoTextureCopierGStreamer::VideoTextureCopierGStreamer):
(WebCore::VideoTextureCopierGStreamer::~VideoTextureCopierGStreamer):
(WebCore::VideoTextureCopierGStreamer::copyVideoTextureToPlatformTexture):
* platform/graphics/gstreamer/VideoTextureCopierGStreamer.h:
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGLData::getShaderProgram):
(WebCore::prepareFilterProgram):
(WebCore::TextureMapperGL::drawTexture):
(WebCore::TextureMapperGL::drawFiltered):
* platform/graphics/texmap/TextureMapperShaderProgram.cpp:
(WebCore::TextureMapperShaderProgram::create):
(WebCore::getShaderLog):
(WebCore::getProgramLog):
(WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram):
(WebCore::TextureMapperShaderProgram::~TextureMapperShaderProgram):
(WebCore::TextureMapperShaderProgram::setMatrix):
(WebCore::TextureMapperShaderProgram::getLocation):
* platform/graphics/texmap/TextureMapperShaderProgram.h:
(WebCore::TextureMapperShaderProgram::programID const):

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

23 months agostress/check-string-ident.js is improperly skipped
zandobersek@gmail.com [Mon, 23 Oct 2017 05:27:28 +0000 (05:27 +0000)]
stress/check-string-ident.js is improperly skipped
https://bugs.webkit.org/show_bug.cgi?id=178642

Reviewed by Saam Barati.

* stress/check-string-ident.js: Drop the defaultNoEagerRun directive
since it enforces the run-jsc-stress-tests script to still set up the
test to run, despite the skip directive that's used before.

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

23 months ago[JSC] Remove !(OS(LINUX) && CPU(ARM64)) guards in RegisterState.h
zandobersek@gmail.com [Mon, 23 Oct 2017 05:26:35 +0000 (05:26 +0000)]
[JSC] Remove !(OS(LINUX) && CPU(ARM64)) guards in RegisterState.h
https://bugs.webkit.org/show_bug.cgi?id=178452

Reviewed by Yusuke Suzuki.

* heap/RegisterState.h: Re-enable the custom RegisterState and
ALLOCATE_AND_GET_REGISTER_STATE definitions on ARM64 Linux. These don't
cause any crashes nowadays.

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

23 months ago[Settings] Replace current Settings generation with template file based approach
commit-queue@webkit.org [Mon, 23 Oct 2017 03:13:33 +0000 (03:13 +0000)]
[Settings] Replace current Settings generation with template file based approach
https://bugs.webkit.org/show_bug.cgi?id=178634

Patch by Sam Weinig <sam@webkit.org> on 2017-10-22
Reviewed by Joseph Pecoraro.

This replaces the recently added python based Settings generation with a generator
built in ruby, so we can take advantage of ERB for templating. The result has much
of the logic in the templates and as a result feels much easier to follow and cleaner.

Since I was moving things to ruby, I took the opertunity to switch the Settings definition
file from our .in format to yaml, which is quite a bit easier to read.

* CMakeLists.txt:
* DerivedSources.make:
* Scripts/GenerateSettings: Removed.
* Scripts/GenerateSettings.py: Removed.
* Scripts/GenerateSettings.rb: Added.
* Scripts/GenerateSettings/GenerateInternalSettingsHeaderFile.py: Removed.
* Scripts/GenerateSettings/GenerateInternalSettingsIDLFile.py: Removed.
* Scripts/GenerateSettings/GenerateInternalSettingsImplementationFile.py: Removed.
* Scripts/GenerateSettings/GenerateSettings.py: Removed.
* Scripts/GenerateSettings/GenerateSettingsHeaderFile.py: Removed.
* Scripts/GenerateSettings/GenerateSettingsImplementationFile.py: Removed.
* Scripts/GenerateSettings/Settings.py: Removed.
* Scripts/GenerateSettings/__init__.py: Removed.
* Scripts/SettingsTemplates: Added.
* Scripts/SettingsTemplates/InternalSettingsGenerated.cpp.erb: Added.
* Scripts/SettingsTemplates/InternalSettingsGenerated.h.erb: Added.
* Scripts/SettingsTemplates/InternalSettingsGenerated.idl.erb: Added.
* Scripts/SettingsTemplates/Settings.cpp.erb: Added.
* Scripts/SettingsTemplates/Settings.h.erb: Added.
* WebCore.xcodeproj/project.pbxproj:
* WebCoreMacros.cmake:
* page/Settings.in: Removed.
* page/Settings.yaml: Added.

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

23 months ago[iOS] WebProcess::initializeWebProcess spends ~150ms spinning up AVSystemController...
wenson_hsieh@apple.com [Mon, 23 Oct 2017 02:20:19 +0000 (02:20 +0000)]
[iOS] WebProcess::initializeWebProcess spends ~150ms spinning up AVSystemController on some devices
https://bugs.webkit.org/show_bug.cgi?id=178640
<rdar://problem/35113105>

Reviewed by Youenn Fablet.

In r213933, we added a mechanism to allow the web process to drive media capture, by setting an attribute on the
shared AVSystemController. This requires us to fault in the Celestial framework, which is a slight performance
hit on some hardware. Instead of doing this at the start of every web process launch, we can just do this work
lazily, the first time the web process requests permissions for user media access.

* WebProcess/WebCoreSupport/WebUserMediaClient.cpp:
(WebKit::WebUserMediaClient::requestUserMediaAccess):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::prepareToSendUserMediaPermissionRequest):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::prepareToSendUserMediaPermissionRequest):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):

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

23 months agoREGRESSION(r219675): Web Inspector: CommandLineAPI getEventListeners does not work
commit-queue@webkit.org [Mon, 23 Oct 2017 00:43:38 +0000 (00:43 +0000)]
REGRESSION(r219675): Web Inspector: CommandLineAPI getEventListeners does not work
https://bugs.webkit.org/show_bug.cgi?id=178650
<rdar://problem/35116347>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-10-22
Reviewed by Sam Weinig.

Source/WebCore:

Test: inspector/console/command-line-api-getEventListeners.html

* inspector/CommandLineAPIHost.cpp:
(WebCore::listenerEntriesFromListenerInfo):
Fix typo.

(WebCore::CommandLineAPIHost::getEventListeners):
Fix incorrect early return.

* inspector/CommandLineAPIHost.h:
* inspector/CommandLineAPIHost.idl:
Add more attributes about the listener. These new attributes match output from Chrome.

LayoutTests:

* inspector/console/command-line-api-getEventListeners-expected.txt: Added.
* inspector/console/command-line-api-getEventListeners.html: Added.

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

23 months ago[Web Animations] Add animations to the timeline
commit-queue@webkit.org [Sun, 22 Oct 2017 21:31:24 +0000 (21:31 +0000)]
[Web Animations] Add animations to the timeline
https://bugs.webkit.org/show_bug.cgi?id=178643

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

Source/WebCore:

If a timeline is provided as a parameter to the Animation constructor,
add it to the timeline, and remove it when the object is destroyed.

We also start the basic mechanism to dump the contents of a timeline
as text for testing purposes, currently only logging the number of
animations in a timeline and just logging the class name for animation
themselves.

Test: webanimations/animation-creation-addition.html

* animation/AnimationTimeline.cpp:
(WebCore::AnimationTimeline::description):
* animation/AnimationTimeline.h:
* animation/AnimationTimeline.idl:
* animation/WebAnimation.cpp:
(WebCore::WebAnimation::create):
(WebCore::WebAnimation::~WebAnimation):
(WebCore::WebAnimation::description):
* animation/WebAnimation.h:
* testing/Internals.cpp:
(WebCore::Internals::timelineDescription):
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

Add a new test that checks that animations created with a timeline
are added to the provided timeline.

* webanimations/animation-creation-addition-expected.txt: Added.
* webanimations/animation-creation-addition.html: Added.

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

23 months ago[JSC][Baseline] Use linkAllSlowCasesForBytecodeOffset as much as possible to simplify...
utatane.tea@gmail.com [Sun, 22 Oct 2017 18:28:16 +0000 (18:28 +0000)]
[JSC][Baseline] Use linkAllSlowCasesForBytecodeOffset as much as possible to simplify slow cases handling
https://bugs.webkit.org/show_bug.cgi?id=178647

Reviewed by Saam Barati.

There is much code counting slow cases in fast paths to call `linkSlowCase` carefully. This is really error-prone
since the number of slow cases depends on values of instruction's metadata. We have linkAllSlowCasesForBytecodeOffset,
which drains all slow cases for a specified bytecode offset. In typical cases like just calling a slow path function,
this is enough. We use linkAllSlowCasesForBytecodeOffset as much as possible. It significantly simplifies the code.

* jit/JIT.h:
(JSC::JIT::linkAllSlowCases):
* jit/JITArithmetic.cpp:
(JSC::JIT::emitSlow_op_unsigned):
(JSC::JIT::emit_compareAndJump):
(JSC::JIT::emit_compareAndJumpSlow):
(JSC::JIT::emitSlow_op_inc):
(JSC::JIT::emitSlow_op_dec):
(JSC::JIT::emitSlow_op_mod):
(JSC::JIT::emitSlow_op_negate):
(JSC::JIT::emitSlow_op_bitand):
(JSC::JIT::emitSlow_op_bitor):
(JSC::JIT::emitSlow_op_bitxor):
(JSC::JIT::emitSlow_op_lshift):
(JSC::JIT::emitSlow_op_rshift):
(JSC::JIT::emitSlow_op_urshift):
(JSC::JIT::emitSlow_op_add):
(JSC::JIT::emitSlow_op_div):
(JSC::JIT::emitSlow_op_mul):
(JSC::JIT::emitSlow_op_sub):
* jit/JITArithmetic32_64.cpp:
(JSC::JIT::emit_compareAndJumpSlow):
(JSC::JIT::emitSlow_op_unsigned):
(JSC::JIT::emitSlow_op_inc):
(JSC::JIT::emitSlow_op_dec):
(JSC::JIT::emitSlow_op_mod):
* jit/JITCall.cpp:
(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileOpCallSlowCase):
* jit/JITCall32_64.cpp:
(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileOpCallSlowCase):
* jit/JITInlines.h:
(JSC::JIT::linkAllSlowCasesForBytecodeOffset):
* jit/JITOpcodes.cpp:
(JSC::JIT::emitSlow_op_new_object):
(JSC::JIT::emitSlow_op_create_this):
(JSC::JIT::emitSlow_op_check_tdz):
(JSC::JIT::emitSlow_op_to_this):
(JSC::JIT::emitSlow_op_to_primitive):
(JSC::JIT::emitSlow_op_not):
(JSC::JIT::emitSlow_op_eq):
(JSC::JIT::emitSlow_op_neq):
(JSC::JIT::emitSlow_op_stricteq):
(JSC::JIT::emitSlow_op_nstricteq):
(JSC::JIT::emitSlow_op_instanceof):
(JSC::JIT::emitSlow_op_instanceof_custom):
(JSC::JIT::emitSlow_op_to_number):
(JSC::JIT::emitSlow_op_to_string):
(JSC::JIT::emitSlow_op_loop_hint):
(JSC::JIT::emitSlow_op_check_traps):
(JSC::JIT::emitSlow_op_has_indexed_property):
(JSC::JIT::emitSlow_op_get_direct_pname):
(JSC::JIT::emitSlow_op_has_structure_property):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emitSlow_op_new_object):
(JSC::JIT::emitSlow_op_instanceof):
(JSC::JIT::emitSlow_op_instanceof_custom):
(JSC::JIT::emitSlow_op_to_primitive):
(JSC::JIT::emitSlow_op_not):
(JSC::JIT::emitSlow_op_stricteq):
(JSC::JIT::emitSlow_op_nstricteq):
(JSC::JIT::emitSlow_op_to_number):
(JSC::JIT::emitSlow_op_to_string):
(JSC::JIT::emitSlow_op_create_this):
(JSC::JIT::emitSlow_op_to_this):
(JSC::JIT::emitSlow_op_check_tdz):
(JSC::JIT::emitSlow_op_has_indexed_property):
(JSC::JIT::emitSlow_op_get_direct_pname):
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id_with_this):
(JSC::JIT::emitSlow_op_put_by_id):
(JSC::JIT::emitSlow_op_resolve_scope):
(JSC::JIT::emitSlow_op_get_from_scope):
(JSC::JIT::emitSlow_op_put_to_scope):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id_with_this):
(JSC::JIT::emitSlow_op_put_by_id):
(JSC::JIT::emitSlow_op_resolve_scope):
(JSC::JIT::emitSlow_op_get_from_scope):
(JSC::JIT::emitSlow_op_put_to_scope):

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

23 months ago[JSC] Clean up baseline slow path
utatane.tea@gmail.com [Sun, 22 Oct 2017 16:47:01 +0000 (16:47 +0000)]
[JSC] Clean up baseline slow path
https://bugs.webkit.org/show_bug.cgi?id=178646

Reviewed by Saam Barati.

If the given op is just calling a slow path function, we should use DEFINE_SLOW_OP instead.
It is good since (1) we can reduce the manual emitting code and (2) it can clarify which
function is implemented as a slow path call. This patch is an attempt to reduce 32bit specific
code in baseline JIT.

* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
* jit/JIT.h:
* jit/JITArithmetic.cpp:
(JSC::JIT::emit_op_pow): Deleted.
* jit/JITArithmetic32_64.cpp:
(JSC::JIT::emitSlow_op_mod):
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_strcat): Deleted.
(JSC::JIT::emit_op_push_with_scope): Deleted.
(JSC::JIT::emit_op_assert): Deleted.
(JSC::JIT::emit_op_create_lexical_environment): Deleted.
(JSC::JIT::emit_op_throw_static_error): Deleted.
(JSC::JIT::emit_op_new_array_with_spread): Deleted.
(JSC::JIT::emit_op_spread): Deleted.
(JSC::JIT::emit_op_get_enumerable_length): Deleted.
(JSC::JIT::emit_op_has_generic_property): Deleted.
(JSC::JIT::emit_op_get_property_enumerator): Deleted.
(JSC::JIT::emit_op_to_index_string): Deleted.
(JSC::JIT::emit_op_create_direct_arguments): Deleted.
(JSC::JIT::emit_op_create_scoped_arguments): Deleted.
(JSC::JIT::emit_op_create_cloned_arguments): Deleted.
(JSC::JIT::emit_op_create_rest): Deleted.
(JSC::JIT::emit_op_unreachable): Deleted.
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_strcat): Deleted.
(JSC::JIT::emit_op_push_with_scope): Deleted.
(JSC::JIT::emit_op_assert): Deleted.
(JSC::JIT::emit_op_create_lexical_environment): Deleted.
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_put_by_val_with_this): Deleted.
(JSC::JIT::emit_op_get_by_val_with_this): Deleted.
(JSC::JIT::emit_op_put_by_id_with_this): Deleted.
(JSC::JIT::emit_op_resolve_scope_for_hoisting_func_decl_in_eval): Deleted.
(JSC::JIT::emit_op_define_data_property): Deleted.
(JSC::JIT::emit_op_define_accessor_property): Deleted.
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_resolve_scope_for_hoisting_func_decl_in_eval): Deleted.
(JSC::JIT::emit_op_get_by_val_with_this): Deleted.
(JSC::JIT::emit_op_put_by_id_with_this): Deleted.
(JSC::JIT::emit_op_put_by_val_with_this): Deleted.

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

23 months agoUnreviewed, silence a -Wunused-but-set-variable warning
mcatanzaro@igalia.com [Sun, 22 Oct 2017 03:41:06 +0000 (03:41 +0000)]
Unreviewed, silence a -Wunused-but-set-variable warning

* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::wheelEvent):

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

23 months ago[FrameView::layout cleanup] Drop allowSubtree parameter
zalan@apple.com [Sun, 22 Oct 2017 02:05:17 +0000 (02:05 +0000)]
[FrameView::layout cleanup] Drop allowSubtree parameter
https://bugs.webkit.org/show_bug.cgi?id=178623
<rdar://problem/35111012>

Reviewed by Sam Weinig.

This flag is only set through ::forceLayout(). Let's just convert the subtree layout
to full layout right before calling ::layout().

No change in functionality.

* page/FrameView.cpp:
(WebCore::FrameView::handleLayoutWithFrameFlatteningIfNeeded):
(WebCore::FrameView::layout):
(WebCore::FrameView::startLayoutAtMainFrameViewIfNeeded):
(WebCore::FrameView::forceLayout):
* page/FrameView.h:

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

23 months agoWeb Inspector: Remove unused Console.setMonitoringXHREnabled
commit-queue@webkit.org [Sat, 21 Oct 2017 22:23:00 +0000 (22:23 +0000)]
Web Inspector: Remove unused Console.setMonitoringXHREnabled
https://bugs.webkit.org/show_bug.cgi?id=178617

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-10-21
Reviewed by Sam Weinig.

Source/JavaScriptCore:

* JavaScriptCore.xcodeproj/project.pbxproj:
* Sources.txt:
* inspector/agents/InspectorConsoleAgent.h:
* inspector/agents/JSGlobalObjectConsoleAgent.cpp: Removed.
* inspector/agents/JSGlobalObjectConsoleAgent.h: Removed.
* inspector/protocol/Console.json:
Removed files and method.

* inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):
This can use the base ConsoleAgent now.

Source/WebCore:

* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didFinishXHRLoadingImpl):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didFinishXHRLoading):
* inspector/WebConsoleAgent.cpp:
(WebCore::WebConsoleAgent::setMonitoringXHREnabled): Deleted.
(WebCore::WebConsoleAgent::didFinishXHRLoading): Deleted.
* inspector/WebConsoleAgent.h:
Remove XHR monitoring code.

* xml/XMLHttpRequest.h:
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::send):
(WebCore::XMLHttpRequest::didFinishLoading):
(WebCore::XMLHttpRequest::setLastSendLineAndColumnNumber): Deleted.
* xml/XMLHttpRequest.idl:
Remove now unused state on XHR and ExecState requirement for send().

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

23 months agocreateImageBitmap with basic HTMLImageElement
dino@apple.com [Sat, 21 Oct 2017 21:48:17 +0000 (21:48 +0000)]
createImageBitmap with basic HTMLImageElement
https://bugs.webkit.org/show_bug.cgi?id=178619
<rdar://problem/35104118>

Reviewed by Antoine Quint.

Source/WebCore:

Implement the basic infrastructure for creating
an ImageBitmap from an HTMLImageElement.

Test: http/wpt/2dcontext/imagebitmap/createImageBitmap.html

* html/ImageBitmap.cpp:
(WebCore::ImageBitmap::createPromise): Create the image buffer
and draw the image into its backing store.
* html/ImageBitmap.h:

LayoutTests:

Make a better test for createImageBitmap. This will be
submitted to Web Platform Tests.

* http/wpt/2dcontext/imagebitmap/createImageBitmap-expected.txt: Added.
* http/wpt/2dcontext/imagebitmap/createImageBitmap.html: Added.
* http/wpt/common/canvas-tests.css: Added.
* http/wpt/common/canvas-tests.js: Added.
* http/wpt/images/pattern.png: Added.

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

23 months agoTurn on ccache for Mac cmake builds by default
timothy_horton@apple.com [Sat, 21 Oct 2017 21:42:51 +0000 (21:42 +0000)]
Turn on ccache for Mac cmake builds by default
https://bugs.webkit.org/show_bug.cgi?id=177059

Reviewed by Sam Weinig.

.:

* Source/cmake/WebKitCCache.cmake: Added.
* Source/cmake/WebKitCommon.cmake:
Turn on ccache for Mac CMake builds (Makefile and Ninja generators only)
if it's installed, making use of CMake's ability to wrap the compiler invocation.

Tools:

* ccache/ccache-clang:
* ccache/ccache-wrapper: Added.
Add a pass-through ccache wrapper to be used with CMake, in addition
to the existing faux-clang wrappers.

* Scripts/build-webkit:
Add --use-ccache and --no-use-ccache option, which will define
WK_USE_CCACHE to YES or NO, respectively, which the underlying
build systems respect. We do not define WK_USE_CCACHE if the option
is not specified, because the underlying build systems have different
default values.

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

23 months ago[JSC] Remove per-host-function CTI stub in 32bit environment
utatane.tea@gmail.com [Sat, 21 Oct 2017 15:34:58 +0000 (15:34 +0000)]
[JSC] Remove per-host-function CTI stub in 32bit environment
https://bugs.webkit.org/show_bug.cgi?id=178581

Reviewed by Saam Barati.

JIT::privateCompileCTINativeCall only exists in 32bit environment and it is almost the same to native call CTI stub.
The only difference is that it embed the address of the host function directly in the generated stub. This means
that we have per-host-function CTI stub only in 32bit environment.

This patch just removes it and use one CTI stub instead. This design is the same to the current 64bit implementation.

* jit/JIT.cpp:
(JSC::JIT::compileCTINativeCall): Deleted.
* jit/JIT.h:
* jit/JITOpcodes.cpp:
(JSC::JIT::privateCompileCTINativeCall): Deleted.
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::privateCompileCTINativeCall): Deleted.
* jit/JITThunks.cpp:
(JSC::JITThunks::hostFunctionStub):

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

23 months ago[Web Animations] Add bindings to unified sources
commit-queue@webkit.org [Sat, 21 Oct 2017 14:11:44 +0000 (14:11 +0000)]
[Web Animations] Add bindings to unified sources
https://bugs.webkit.org/show_bug.cgi?id=178620

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

Removing the Web Animations bindings from the WebCore target and adding them to the unified sources list instead.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:

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

23 months agoFix the Mac CMake build
timothy_horton@apple.com [Sat, 21 Oct 2017 08:26:19 +0000 (08:26 +0000)]
Fix the Mac CMake build

* PlatformMac.cmake:

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

23 months agoSupport ::before/::after pseudo elements with display:contents
antti@apple.com [Sat, 21 Oct 2017 08:15:10 +0000 (08:15 +0000)]
Support ::before/::after pseudo elements with display:contents
https://bugs.webkit.org/show_bug.cgi?id=178584

Reviewed by Ryosuke Niwa.

Source/WebCore:

This is cases like

::before { display:contents; content:'foo' }

* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustDisplayContentsStyle): Added.

    Allow display:contents on pseudo elements.
    Factor into function.

(WebCore::StyleResolver::adjustRenderStyle):
* dom/PseudoElement.h:

    Add a weak vector of content renderers.

* style/RenderTreePosition.h:
(WebCore::RenderTreePosition::moveToLastChild):

    Add a way to set a valid render tree position without a node.

* style/RenderTreeUpdaterGeneratedContent.cpp:
(WebCore::createContentRenderers):

    Take RenderTreePosition.

(WebCore::updateStyleForContentRenderers):

    Update based on the content renderer vector instead of doing a tree walk.

(WebCore::removeAndDestroyContentRenderers):

    Helper for destroying content renderers.

(WebCore::RenderTreeUpdater::GeneratedContent::updatePseudoElement):

    In the normal case create a render tree position for the pseudo element renderer and
    use RenderTreePosition::moveToLastChild to make it a valid position. (The existing
    RenderTreePosition interface didn't have way to move to positions in anonymous boxes)

    In the case of a non box generating display:contents pseudo element, use the current
    render tree position instead.

    Ensure that pseudo element renderers are destroyed before creating the new ones since in
    display:contents case they are not descendants of the pseudo renderer and don't get cleared
    automatically.

LayoutTests:

* TestExpectations: Enable imported/w3c/web-platform-tests/css/css-display-3/display-contents-before-after-002.html

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

23 months agoWeb Inspector: Support `async test() { ... }` in Inspector Test Suites
commit-queue@webkit.org [Sat, 21 Oct 2017 06:52:47 +0000 (06:52 +0000)]
Web Inspector: Support `async test() { ... }` in Inspector Test Suites
https://bugs.webkit.org/show_bug.cgi?id=178614

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

Add the ability to have test functions be async functions. A successful
async test function just needs to complete evaluation. To indicate
failure it should throw an exception.

    suite.addTestCase({
        name: "ExceptionOfNormal",
        async test() {
            InspectorTest.expectThat(...);
        }
    });

    suite.addTestCase({
        name: "ExampleOfRejection",
        async test() {
            let value = await SomeAgent.method();
            if (value.error)
                throw "Exception";
            ...
        }
    });

Using async test functions has the added benefit that a runtime exception
inside of asynchronous test code will reject the current test case instead
of timing out. For example...

    suite.addTestCase({
        name: "ExampleOfRejectionThroughRuntimeException",
        async test() {
            let arr = [];
            arr.this.does.not.exist;
        }
    });

... should will lead to a failure instead of a timeout.

This should allow us to structure some common tests more naturally, like so:

    suite.addTestCase({
        name: "ExampleOfNormalAsyncTest",
        async test() {
            InspectorTest.evaluateInPage(`...`);
            let event = await WI.Manager.awaitEvent(...);
            let resource = event.data.resource;
            InspectorTest.expectEqual(...);
            InspectorTest.expectEqual(...);
            InspectorTest.expectEqual(...);
        }
    });

* inspector/unit-tests/async-test-suite-expected.txt:
* inspector/unit-tests/async-test-suite.html:
* inspector/unit-tests/target-manager.html:

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

23 months agoAdd FIXME comment after r223803
achristensen@apple.com [Sat, 21 Oct 2017 06:16:54 +0000 (06:16 +0000)]
Add FIXME comment after r223803
https://bugs.webkit.org/show_bug.cgi?id=178418

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
We need some work to better support customized persistent data stores.  Add a comment indicating such.

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

23 months agoWeb Inspector: scrolling the editor while debugging shouldn't trigger popovers
mattbaker@apple.com [Sat, 21 Oct 2017 05:04:28 +0000 (05:04 +0000)]
Web Inspector: scrolling the editor while debugging shouldn't trigger popovers
https://bugs.webkit.org/show_bug.cgi?id=178325

Reviewed by Devin Rousso.

Ignore the next "mousemove" event immediately following a "mousewheel",
when determining the hovered item for purposes of triggering a popover.

* UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
(WI.CodeMirrorTokenTrackingController):
(WI.CodeMirrorTokenTrackingController.prototype._startTracking):
(WI.CodeMirrorTokenTrackingController.prototype._stopTracking):
(WI.CodeMirrorTokenTrackingController.prototype.handleEvent):
(WI.CodeMirrorTokenTrackingController.prototype._mouseMovedOverEditor):

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

23 months agoWeb Inspector: preview content view for MIME type application/json should be a collap...
commit-queue@webkit.org [Sat, 21 Oct 2017 05:00:00 +0000 (05:00 +0000)]
Web Inspector: preview content view for MIME type application/json should be a collapsible tree outline
https://bugs.webkit.org/show_bug.cgi?id=158938
<rdar://problem/26891128>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-10-20
Reviewed by Brian Burg.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
New files and strings.

* UserInterface/Views/JSONResourceContentView.css: Added.
(.content-view.resource.json):
(.content-view.resource.json .object-tree .prototype-property):
Some padding and scrolling for the JSON content view.

* UserInterface/Views/JSONResourceContentView.js: Added.
(WI.JSONResourceContentView):
(WI.JSONResourceContentView.customContentViewDisplayName):
(WI.JSONResourceContentView.prototype.contentAvailable):
(WI.JSONResourceContentView.prototype.closed):
JSON view evaluates the JSON content on the page and shows an ObjectTree
for the resulting object.

* UserInterface/Views/ResourceClusterContentView.js:
(WI.ResourceClusterContentView):
(WI.ResourceClusterContentView.prototype.get customResponseContentView):
(WI.ResourceClusterContentView.prototype.get selectionPathComponents):
(WI.ResourceClusterContentView.prototype.restoreFromCookie):
(WI.ResourceClusterContentView.prototype.showResponse):
(WI.ResourceClusterContentView.prototype._canShowRequestContentView):
(WI.ResourceClusterContentView.prototype._canShowCustomResponseContentView):
(WI.ResourceClusterContentView.prototype._pathComponentForContentView):
(WI.ResourceClusterContentView.prototype._identifierForContentView):
(WI.ResourceClusterContentView.prototype._showContentViewForIdentifier):
(WI.ResourceClusterContentView.prototype._resourceTypeDidChange):
(WI.ResourceClusterContentView.prototype._resourceLoadingDidFinish):
(WI.ResourceClusterContentView.prototype._tryEnableCustomResponseContentView):
(WI.ResourceClusterContentView.prototype._customContentViewConstructorForResource):
Allow a custom content view to be used for a resource based on the response.
Currently the only custom content view is the JSON content view.

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

23 months ago[FrameView::layout cleanup] Use SetForScope to ensure layout state correctness
zalan@apple.com [Sat, 21 Oct 2017 04:31:46 +0000 (04:31 +0000)]
[FrameView::layout cleanup] Use SetForScope to ensure layout state correctness
https://bugs.webkit.org/show_bug.cgi?id=178604
<rdar://problem/35101890>

Reviewed by Simon Fraser.

SetForScope guarantees state correctness even with nested layouts. This is a lot less
error prone than resetting the state value after each potential recursive call.

Covered by existing tests.

* page/FrameView.cpp:
(WebCore::FrameView::handleDeferredScrollbarsUpdateAfterDirectionChange): This layout state does
not look too useful.
(WebCore::FrameView::layout):
* page/FrameView.h: While performPostLayoutTasks() is somewhat special since it can either be sync or async,
so painting should be allowed in both cases.

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

23 months agoSVGPathElement should cache the built-up Path of its non animating pathByteStream()
commit-queue@webkit.org [Sat, 21 Oct 2017 02:33:53 +0000 (02:33 +0000)]
SVGPathElement should cache the built-up Path of its non animating pathByteStream()
https://bugs.webkit.org/show_bug.cgi?id=178248

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

Instead of creating a Path object from the non animating pathByteStream()
every time we need to updatePathFromPathElement(), the Path object can be
cached once it is created and used for later calls.

* html/canvas/Path2D.h: buildPathFromString() now returns a Path.

* platform/graphics/Path.h:
* platform/graphics/cairo/PathCairo.cpp:
(WebCore::Path::Path):
(WebCore::Path::operator=):
* platform/graphics/cg/PathCG.cpp:
(WebCore::Path::Path):
(WebCore::Path::operator=):
* platform/graphics/win/PathDirect2D.cpp:
(WebCore::Path::Path):
(WebCore::Path::operator=):
Define the move constructor and the move assignment operator for the the
Path class so a statement like "Path path = buildPathFromString()" won't
go through the copy constructor and the copy assignment operator.

* rendering/style/BasicShapes.cpp:
(WebCore::SVGPathTranslatedByteStream::path const):
* rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::pathOnlyClipping):
* rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::updateShapeFromElement):
* rendering/svg/RenderSVGTextPath.cpp:
(WebCore::RenderSVGTextPath::layoutPath const):
* rendering/svg/SVGPathData.cpp:
(WebCore::pathFromCircleElement):
(WebCore::pathFromEllipseElement):
(WebCore::pathFromLineElement):
(WebCore::pathFromPathElement):
(WebCore::pathFromPolygonElement):
(WebCore::pathFromPolylineElement):
(WebCore::pathFromRectElement):
(WebCore::pathFromGraphicsElement):
(WebCore::updatePathFromCircleElement): Deleted.
(WebCore::updatePathFromEllipseElement): Deleted.
(WebCore::updatePathFromLineElement): Deleted.
(WebCore::updatePathFromPathElement): Deleted.
(WebCore::updatePathFromPolygonElement): Deleted.
(WebCore::updatePathFromPolylineElement): Deleted.
(WebCore::updatePathFromRectElement): Deleted.
(WebCore::updatePathFromGraphicsElement): Deleted.
* rendering/svg/SVGPathData.h:
* svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::parseAttribute):
(WebCore::SVGAnimateMotionElement::updateAnimationPath):
* svg/SVGGraphicsElement.cpp:
(WebCore::SVGGraphicsElement::toClipPath):
* svg/SVGGraphicsElement.h:
Rename updatePathFromElement() to pathFromGraphicsElement().

* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::parseAttribute): Clear the cache when
m_pathByteStream changes.
(WebCore::SVGPathElement::pathForByteStream const): Caches the m_cachedPath
if it is null.
(WebCore::SVGPathElement::pathSegListChanged): Clear the cache when
m_pathByteStream changes.

* svg/SVGPathElement.h:
* svg/SVGPathUtilities.cpp:
(WebCore::buildPathFromString):
(WebCore::buildPathFromByteStream):
* svg/SVGPathUtilities.h:
Make thes buildPathFromString() and buildPathFromByteStream() return Paths.

* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::toClipPath):
* svg/SVGUseElement.h:
Make these toClipPath() return Path.

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

23 months agoFix API tests after r223791.
achristensen@apple.com [Sat, 21 Oct 2017 01:11:14 +0000 (01:11 +0000)]
Fix API tests after r223791.
https://bugs.webkit.org/show_bug.cgi?id=178418

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
Whatever NetworkSessionInitializationParameters we send with the NetworkProcess initialization message,
that's the default session.  This is needed for WebKit.WebsiteDataStoreCustomPaths.
(WebKit::WebProcessPool::createNewWebProcess):
Don't change behavior or NetworkProcess initialization like I did in r223791.

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

23 months agoRename insertedInto and removedFrom to insertedIntoAncestor and removedFromAncestor
rniwa@webkit.org [Sat, 21 Oct 2017 00:49:21 +0000 (00:49 +0000)]
Rename insertedInto and removedFrom to insertedIntoAncestor and removedFromAncestor
https://bugs.webkit.org/show_bug.cgi?id=178605

Reviewed by Andy Estes.

Renamed insertedInto and removedFrom to insertedIntoAncestor and removedFromAncestor respectively
to make it clear that these functions can be called even when node's immediate parent didn't change.

* dom/ContainerNodeAlgorithms.cpp:
(WebCore::notifyNodeInsertedIntoDocument):
(WebCore::notifyNodeInsertedIntoTree):
(WebCore::notifyNodeRemovedFromDocument):
(WebCore::notifyNodeRemovedFromTree):
(WebCore::notifyChildNodeRemoved):
* dom/ContainerNodeAlgorithms.h:
* dom/Element.cpp:
(WebCore::Element::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::Element::removedFromAncestor): Renamed from removedFrom.
* dom/Element.h:
* dom/Node.cpp:
(WebCore::Node::insertedIntoAncestor):
(WebCore::Node::removedFromAncestor):
(WebCore::Node::removedFrom): Deleted.
* dom/Node.h:
* dom/ProcessingInstruction.cpp:
(WebCore::ProcessingInstruction::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::ProcessingInstruction::removedFromAncestor): Renamed from removedFrom.
* dom/ProcessingInstruction.h:
* dom/ScriptElement.h:
(WebCore::ScriptElement::insertedIntoAncestor const): Renamed from insertedInto.
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::ShadowRoot::removedFromAncestor): Renamed from removedFrom.
* dom/ShadowRoot.h:
* html/FormAssociatedElement.cpp:
(WebCore::FormAssociatedElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::FormAssociatedElement::removedFromAncestor): Renamed from removedFrom.
* html/FormAssociatedElement.h:
* html/HTMLBaseElement.cpp:
(WebCore::HTMLBaseElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::HTMLBaseElement::removedFromAncestor): Renamed from removedFrom.
* html/HTMLBaseElement.h:
* html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::insertedIntoAncestor): Renamed from insertedInto.
* html/HTMLBodyElement.h:
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::HTMLFormControlElement::removedFromAncestor): Renamed from removedFrom.
* html/HTMLFormControlElement.h:
* html/HTMLFormControlElementWithState.cpp:
(WebCore::HTMLFormControlElementWithState::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::HTMLFormControlElementWithState::removedFromAncestor): Renamed from removedFrom.
* html/HTMLFormControlElementWithState.h:
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::HTMLFormElement::removedFromAncestor): Renamed from removedFrom.
* html/HTMLFormElement.h:
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::insertedIntoAncestor): Renamed from insertedInto.
* html/HTMLFrameElementBase.h:
* html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::HTMLFrameSetElement::removedFromAncestor): Renamed from removedFrom.
* html/HTMLFrameSetElement.h:
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::HTMLImageElement::removedFromAncestor): Renamed from removedFrom.
* html/HTMLImageElement.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::HTMLInputElement::removedFromAncestor): Renamed from removedFrom.
* html/HTMLInputElement.h:
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::HTMLLinkElement::removedFromAncestor): Renamed from removedFrom.
* html/HTMLLinkElement.h:
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::HTMLMapElement::removedFromAncestor): Renamed from removedFrom.
* html/HTMLMapElement.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::HTMLMediaElement::removedFromAncestor): Renamed from removedFrom.
* html/HTMLMediaElement.h:
* html/HTMLMetaElement.cpp:
(WebCore::HTMLMetaElement::insertedIntoAncestor): Renamed from insertedInto.
* html/HTMLMetaElement.h:
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::HTMLObjectElement::removedFromAncestor): Renamed from removedFrom.
* html/HTMLObjectElement.h:
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::insertedIntoAncestor): Renamed from insertedInto.
* html/HTMLOptionElement.h:
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::insertedIntoAncestor): Renamed from insertedInto.
* html/HTMLScriptElement.h:
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::insertedIntoAncestor): Renamed from insertedInto.
* html/HTMLSelectElement.h:
* html/HTMLSlotElement.cpp:
(WebCore::HTMLSlotElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::HTMLSlotElement::removedFromAncestor): Renamed from removedFrom.
* html/HTMLSlotElement.h:
* html/HTMLSourceElement.cpp:
(WebCore::HTMLSourceElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::HTMLSourceElement::removedFromAncestor): Renamed from removedFrom.
* html/HTMLSourceElement.h:
* html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::HTMLStyleElement::removedFromAncestor): Renamed from removedFrom.
* html/HTMLStyleElement.h:
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::insertedIntoAncestor): Renamed from insertedInto.
* html/HTMLTextFormControlElement.h:
* html/HTMLTitleElement.cpp:
(WebCore::HTMLTitleElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::HTMLTitleElement::removedFromAncestor): Renamed from removedFrom.
* html/HTMLTitleElement.h:
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::HTMLTrackElement::removedFromAncestor): Renamed from removedFrom.
* html/HTMLTrackElement.h:
* svg/SVGElement.cpp:
(WebCore::SVGElement::removedFromAncestor): Renamed from removedFrom.
(WebCore::SVGElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::SVGElement::updateRelativeLengthsInformation):
* svg/SVGElement.h:
* svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::SVGFEImageElement::removedFromAncestor): Renamed from removedFrom.
* svg/SVGFEImageElement.h:
* svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::SVGFontFaceElement::removedFromAncestor): Renamed from removedFrom.
* svg/SVGFontFaceElement.h:
* svg/SVGFontFaceUriElement.cpp:
(WebCore::SVGFontFaceUriElement::insertedIntoAncestor): Renamed from insertedInto.
* svg/SVGFontFaceUriElement.h:
* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::insertedIntoAncestor): Renamed from insertedInto.
* svg/SVGImageElement.h:
* svg/SVGMPathElement.cpp:
(WebCore::SVGMPathElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::SVGMPathElement::removedFromAncestor): Renamed from removedFrom.
* svg/SVGMPathElement.h:
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::SVGPathElement::removedFromAncestor): Renamed from removedFrom.
* svg/SVGPathElement.h:
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::SVGSVGElement::removedFromAncestor): Renamed from removedFrom.
* svg/SVGSVGElement.h:
* svg/SVGScriptElement.cpp:
(WebCore::SVGScriptElement::insertedIntoAncestor): Renamed from insertedInto.
* svg/SVGScriptElement.h:
* svg/SVGStyleElement.cpp:
(WebCore::SVGStyleElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::SVGStyleElement::removedFromAncestor): Renamed from removedFrom.
* svg/SVGStyleElement.h:
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::buildPendingResource):
(WebCore::SVGTRefElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::SVGTRefElement::removedFromAncestor): Renamed from removedFrom.
* svg/SVGTRefElement.h:
* svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::SVGTextPathElement::removedFromAncestor): Renamed from removedFrom.
* svg/SVGTextPathElement.h:
* svg/SVGTitleElement.cpp:
(WebCore::SVGTitleElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::SVGTitleElement::removedFromAncestor): Renamed from removedFrom.
* svg/SVGTitleElement.h:
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::SVGUseElement::removedFromAncestor): Renamed from removedFrom.
* svg/SVGUseElement.h:
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::insertedIntoAncestor): Renamed from insertedInto.
(WebCore::SVGSMILElement::removedFromAncestor): Renamed from removedFrom.
* svg/animation/SVGSMILElement.h:

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

23 months agoFix conditions in HTMLSourceElement and HTMLTrackElement's insertedInto and removedFrom
rniwa@webkit.org [Sat, 21 Oct 2017 00:03:18 +0000 (00:03 +0000)]
Fix conditions in HTMLSourceElement and HTMLTrackElement's insertedInto and removedFrom
https://bugs.webkit.org/show_bug.cgi?id=178607

Reviewed by Eric Carlson.

Fixed the conditions in insertedInto and removedFrom of HTMLSourceElement and HTMLTrackElement to be
semantically sensisble. Since these elements are only functional when their immediate parents are
HTMLMediaElement and HTMLPictureElement, we have to check that its immediate parent changed, not when
some of its ancestor had changed by insertion or removal.

* html/HTMLSourceElement.cpp:
(WebCore::HTMLSourceElement::insertedInto):
(WebCore::HTMLSourceElement::removedFrom):
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::insertedInto):
(WebCore::HTMLTrackElement::removedFrom):

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

23 months agohttp/tests/security/clipboard/drag-drop-html-cross-origin-iframe-in-same-origin.html...
rniwa@webkit.org [Fri, 20 Oct 2017 23:55:35 +0000 (23:55 +0000)]
http/tests/security/clipboard/drag-drop-html-cross-origin-iframe-in-same-origin.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=178606

Reviewed by Wenson Hsieh.

The bug was caused by the race condition during the page loading of iframes.

Waiting for message event wasn't doing anything useful because it was receiving the message from
source iframe before the drag & drop had started.

Fixed the bug by waiting for the second message event. Also replaced the wait for load event
by the wait for the first message event for clarity.

* http/tests/security/clipboard/drag-drop-html-cross-origin-iframe-in-same-origin.html:

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

23 months ago[iOS] Rebaseline compositing tests
ryanhaddad@apple.com [Fri, 20 Oct 2017 23:40:21 +0000 (23:40 +0000)]
[iOS] Rebaseline compositing tests
https://bugs.webkit.org/show_bug.cgi?id=178492

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:
* platform/ios/TestExpectations:
* platform/ios/compositing/backing/child-layer-no-backing-expected.txt: Added.
* platform/ios/compositing/contents-scale/animating-expected.txt:
* platform/ios/compositing/geometry/ancestor-overflow-change-expected.txt:
* platform/ios/compositing/geometry/fixed-position-expected.txt:
* platform/ios/compositing/geometry/fixed-position-flipped-writing-mode-expected.txt: Added.
* platform/ios/compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt: Added.
* platform/ios/compositing/geometry/limit-layer-bounds-overflow-repaint-expected.txt: Added.
* platform/ios/compositing/geometry/preserve-3d-switching-expected.txt: Added.
* platform/ios/compositing/geometry/tall-page-composited-expected.txt: Added.
* platform/ios/compositing/geometry/video-fixed-scrolling-expected.txt: Added.
* platform/ios/compositing/geometry/video-opacity-overlay-expected.txt: Added.
* platform/ios/compositing/iframes/invisible-nested-iframe-show-expected.txt:
* platform/ios/compositing/iframes/overlapped-nested-iframes-expected.txt: Renamed from LayoutTests/platform/ios-wk2/compositing/iframes/overlapped-nested-iframes-expected.txt.
* platform/ios/compositing/images/direct-image-object-fit-expected.txt: Added.
* platform/ios/compositing/layer-creation/animation-overlap-with-children-expected.txt: Removed.
* platform/ios/compositing/layer-creation/fixed-position-and-transform-expected.txt: Renamed from LayoutTests/platform/ios-wk2/compositing/layer-creation/fixed-position-and-transform-expected.txt.
* platform/ios/compositing/overflow/ancestor-overflow-expected.txt:
* platform/ios/compositing/overflow/clipping-ancestor-with-accelerated-scrolling-ancestor-expected.txt: Added.
* platform/ios/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt: Added.
* platform/ios/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants2-expected.txt: Added.
* platform/ios/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt:
* platform/ios/compositing/overflow/fixed-position-ancestor-clip-expected.txt:
* platform/ios/compositing/overflow/overflow-clip-with-accelerated-scrolling-ancestor-expected.txt: Added.
* platform/ios/compositing/reflections/direct-image-object-fit-reflected-expected.txt: Added.
* platform/ios/compositing/reflections/load-video-in-reflection-expected.txt: Added.
* platform/ios/compositing/reflections/nested-reflection-on-overflow-expected.txt:
* platform/ios/compositing/repaint/page-scale-repaint-expected.txt: Added.
* platform/ios/compositing/rtl/rtl-fixed-overflow-scrolled-expected.txt: Renamed from LayoutTests/platform/ios-wk2/compositing/rtl/rtl-fixed-overflow-scrolled-expected.txt.
* platform/ios/compositing/rtl/rtl-overflow-scrolling-expected.txt: Added.
* platform/ios/compositing/self-painting-layers-expected.txt: Added.
* platform/ios/compositing/tiling/huge-layer-img-expected.txt: Added.
* platform/ios/compositing/visible-rect/3d-transform-style-expected.txt: Added.
* platform/ios/compositing/visible-rect/animated-expected.txt: Added.
* platform/ios/compositing/visible-rect/iframe-no-layers-expected.txt: Added.
* platform/ios/compositing/visible-rect/iframe-with-layers-outside-viewport-expected.txt: Added.
* platform/ios/compositing/visible-rect/mask-layer-coverage-expected.txt: Added.

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

23 months agoFix download tests on El Capitan after r223730
achristensen@apple.com [Fri, 20 Oct 2017 23:12:10 +0000 (23:12 +0000)]
Fix download tests on El Capitan after r223730
https://bugs.webkit.org/show_bug.cgi?id=178547

* UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::decideDestinationWithSuggestedFilename):
Revert to original behavior.  This uses suggestedFilename, which may have come from places like
the download attribute, instead of always using the filename from CFNetwork.

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

23 months agoDo not run binding tests on multiple EWSes
aakash_jain@apple.com [Fri, 20 Oct 2017 21:56:51 +0000 (21:56 +0000)]
Do not run binding tests on multiple EWSes
https://bugs.webkit.org/show_bug.cgi?id=178599

Reviewed by Alexey Proskuryakov.

Remove old code which runs bindings tests and ignore it's result. We now have
a dedicated bindings test EWS.

* Scripts/webkitpy/tool/steps/runtests.py:
(RunTests.run): Removed bindings tests code.
* Scripts/webkitpy/tool/steps/runtests_unittest.py: Updated unit-tests.
(RunTestsTest.test_webkit_run_unit_tests): Ditto.
* Scripts/webkitpy/tool/steps/steps_unittest.py: Ditto.
* Scripts/webkitpy/tool/commands/download_unittest.py: Ditto.

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

23 months agoUnreviewed, fix windows build.
keith_miller@apple.com [Fri, 20 Oct 2017 21:20:08 +0000 (21:20 +0000)]
Unreviewed, fix windows build.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:

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

23 months agoUse "= default" for more default constructors and destructors in WebCore
commit-queue@webkit.org [Fri, 20 Oct 2017 20:58:49 +0000 (20:58 +0000)]
Use "= default" for more default constructors and destructors in WebCore
https://bugs.webkit.org/show_bug.cgi?id=178585

Patch by Daniel Bates <dabates@apple.com> on 2017-10-20
Reviewed by Alex Christensen.

Also remove some destructors that would be implicitly generated.

* Modules/applepay/PaymentMerchantSession.h:
(WebCore::PaymentMerchantSession::~PaymentMerchantSession): Deleted.
* platform/ControlStates.h:
(WebCore::ControlStates::~ControlStates): Deleted.
* platform/PlatformEvent.h:
(WebCore::PlatformEvent::~PlatformEvent): Use default.
* platform/PlatformStrategies.h:
(WebCore::PlatformStrategies::PlatformStrategies): Ditto.
* platform/image-decoders/gif/GIFImageReader.h:
(GIFFrameContext::GIFFrameContext):
(GIFFrameContext::~GIFFrameContext): Deleted.
(GIFImageReader::~GIFImageReader): Deleted.
* rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::RenderBlockFlowRareData::~RenderBlockFlowRareData): Deleted.

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

23 months agoMarked plugins/js-from-destroy.html as flaky.
jlewis3@apple.com [Fri, 20 Oct 2017 20:58:09 +0000 (20:58 +0000)]
Marked plugins/js-from-destroy.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=176881

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

23 months ago[FrameView::layout cleanup] Scheduling layout should be disabled for FrameView::layout
zalan@apple.com [Fri, 20 Oct 2017 20:40:24 +0000 (20:40 +0000)]
[FrameView::layout cleanup] Scheduling layout should be disabled for FrameView::layout
https://bugs.webkit.org/show_bug.cgi?id=178562
<rdar://problem/35089015>

Reviewed by Simon Fraser.

This patch extends the scope of m_layoutSchedulingEnabled. Now layout scheduling is disabled for the entire FrameView::layout().
A scheduled layout at the end of FrameView::layout would indicated dirty tree (which is against FrameView::layout's contract).

Covered by existing tests.

* page/FrameView.cpp:
(WebCore::FrameView::layout):

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

23 months agoExpose _boundInterfaceIdentifier and _allowsCellularAccess to WKWebsiteDataStorePrivate
commit-queue@webkit.org [Fri, 20 Oct 2017 20:39:34 +0000 (20:39 +0000)]
Expose _boundInterfaceIdentifier and _allowsCellularAccess to WKWebsiteDataStorePrivate
https://bugs.webkit.org/show_bug.cgi?id=178418
<rdar://problem/29599569>

Patch by Alex Christensen <achristensen@webkit.org> on 2017-10-20
Reviewed by Tim Horton.
Source/WebCore/PAL:

* pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

In r213747 I introduced allowsCellularAccess to _WKProcessPoolConfiguration because there
was no way to add parameters to the default (and other) NetworkSession constructors.  Since
clients have not adopted this SPI, we can introduce such a way in NetworkSessionCreationParameters
and move the SPI to WKWebsiteDataStore, which is where it and other NetworkSession properties
ought to be instead of making them WKProcessPool global.

We also need to expose access to NSURLRequest.boundInterfaceIdentifier.  Instead of serializing and
deserializing that property for each NSURLRequest and then having subresources mysteriously jump back
to having no bound interface identifiers, I'm adding this to WKWebsiteDataStore, too, to make it a
session networking property.

I manually verified that these properties are being set properly with a custom test app and added logs.
Unfortunately, these properties don't do anything under circumstances anywhere close to what we test.
The architecture change of having NetworkSessionCreationParameters is verified to not have a change in
behavior by existing tests, such as any test that uses TestProtocol (which we should eventually remove).

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::ensureLegacyPrivateBrowsingSession):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::NetworkProcess):
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::clearCachedCredentials):
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::create):
(WebKit::NetworkSession::defaultSession): Deleted.
* NetworkProcess/NetworkSession.h:
* NetworkProcess/NetworkSessionCreationParameters.h: Added.
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
* NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
* NetworkProcess/cocoa/NetworkSessionCocoa.h:
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::setSourceApplicationSecondaryIdentifier):
(WebKit::NetworkSessionCocoa::create):
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
(WebKit::NetworkSessionCocoa::setLegacyCustomProtocolManager): Deleted.
(WebKit::NetworkSessionCocoa::setAllowsCellularAccess): Deleted.
(WebKit::NetworkSessionCocoa::defaultSession): Deleted.
* NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
(WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession):
* Shared/SessionTracker.cpp:
(WebKit::SessionTracker::networkSession):
(WebKit::SessionTracker::setSession):
* Shared/WebsiteDataStoreParameters.cpp:
(WebKit::WebsiteDataStoreParameters::encode const):
(WebKit::WebsiteDataStoreParameters::decode):
* Shared/WebsiteDataStoreParameters.h:
* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _setBoundInterfaceIdentifier:]):
(-[WKWebsiteDataStore _boundInterfaceIdentifier]):
(-[WKWebsiteDataStore _setAllowsCellularAccess:]):
(-[WKWebsiteDataStore _allowsCellularAccess]):
* UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration allowsCellularAccess]):
(-[_WKProcessPoolConfiguration setAllowsCellularAccess:]):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::setAnyPageGroupMightHavePrivateBrowsingEnabled):
* UIProcess/WebsiteData/WebsiteDataStore.h:
(WebKit::WebsiteDataStore::setBoundInterfaceIdentifier):
(WebKit::WebsiteDataStore::boundInterfaceIdentifier):
(WebKit::WebsiteDataStore::setAllowsCellularAccess):
(WebKit::WebsiteDataStore::allowsCellularAccess):
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setPrivateBrowsingEnabled):
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensurePrivateBrowsingSession):
(WebKit::WebProcess::clearCachedCredentials):

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

23 months agoAdd ObjC SPI to _WKDownloadDelegate missing from WKContextDownloadClient
achristensen@apple.com [Fri, 20 Oct 2017 20:38:41 +0000 (20:38 +0000)]
Add ObjC SPI to _WKDownloadDelegate missing from WKContextDownloadClient
https://bugs.webkit.org/show_bug.cgi?id=178566
<rdar://problem/23041906>

Reviewed by Brady Eidson.

* UIProcess/API/Cocoa/_WKDownloadDelegate.h:
* UIProcess/Cocoa/DownloadClient.h:
* UIProcess/Cocoa/DownloadClient.mm:
(WebKit::DownloadClient::DownloadClient):
(WebKit::DownloadClient::didReceiveAuthenticationChallenge):
(WebKit::DownloadClient::shouldDecodeSourceDataOfMIMEType):
(WebKit::DownloadClient::didCreateDestination):
(WebKit::DownloadClient::processDidCrash):

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

23 months agoWhen destroying a resource, register "only" the clients who are losing their resource...
commit-queue@webkit.org [Fri, 20 Oct 2017 20:34:27 +0000 (20:34 +0000)]
When destroying a resource, register "only" the clients who are losing their resource as having pending resources
https://bugs.webkit.org/show_bug.cgi?id=178567
<rdar://problem/35064781>

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

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

* rendering/svg/SVGResources.cpp:
(WebCore::paintingResourceFromSVGPaint):
(WebCore::SVGResources::removeClientFromCache const):
(WebCore::SVGResources::resourceDestroyed):
(WebCore::SVGResources::buildSetOfResources):
(WebCore::SVGResources::resetClipper):
(WebCore::SVGResources::resetFilter):
(WebCore::SVGResources::resetMarkerStart):
(WebCore::SVGResources::resetMarkerMid):
(WebCore::SVGResources::resetMarkerEnd):
(WebCore::SVGResources::resetMasker):
(WebCore::SVGResources::resetFill):
(WebCore::SVGResources::resetStroke):
(WebCore::SVGResources::resetLinkedResource):
* rendering/svg/SVGResources.h:
(WebCore::SVGResources::isEmpty const):
(WebCore::SVGResources::ClipperFilterMaskerData::ClipperFilterMaskerData): Deleted.
(WebCore::SVGResources::MarkerData::MarkerData): Deleted.
(WebCore::SVGResources::FillStrokeData::FillStrokeData): Deleted.
* rendering/svg/SVGResourcesCache.cpp:
(WebCore::SVGResourcesCache::resourceDestroyed):

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

23 months agoUnify the node removal code in ContainerNode and expand the coverage of NoEventDispat...
rniwa@webkit.org [Fri, 20 Oct 2017 20:20:48 +0000 (20:20 +0000)]
Unify the node removal code in ContainerNode and expand the coverage of NoEventDispatchAssertion
https://bugs.webkit.org/show_bug.cgi?id=178568

Reviewed by Antti Koivisto.

Consolidated the code to remove a child node in ContainerNode into removeAllChildrenWithScriptAssertion
and removeNodeWithScriptAssertion to share code and make the semantics of when it becomes unsafe to run scripts.

Also renamed getChildNodes to collectChildNodes, and made it return NodeVector instead of taking an out argument.

No new tests since there should be no behavioral changes.

* dom/ContainerNode.cpp:
(WebCore::ContainerNode::removeAllChildrenWithScriptAssertion): Added.
(WebCore::ContainerNode::removeNodeWithScriptAssertion): Added.
(WebCore::collectChildrenAndRemoveFromOldParent):
(WebCore::ContainerNode::takeAllChildrenFrom): Deployed removeAllChildrenWithScriptAssertion.
(WebCore::ContainerNode::notifyChildRemoved): Deleted. Merged into removeNodeWithScriptAssertion.
(WebCore::willRemoveChild): Deleted. Ditto.
(WebCore::willRemoveChildren): Deleted. Merged into removeAllChildrenWithScriptAssertion.
(WebCore::ContainerNode::removeChild): Deployed removeNodeWithScriptAssertion.
(WebCore::ContainerNode::parserRemoveChild): Ditto.
(WebCore::ContainerNode::replaceAllChildren): Deployed removeAllChildrenWithScriptAssertion. Now removes the node
outside executeNodeInsertionWithScriptAssertion but that's okay since executeNodeInsertionWithScriptAssertion
doesn't execute any code with a side effect before invoking the callback.
(WebCore::ContainerNode::removeChildren):
(WebCore::dispatchChildRemovalEvents): Refactored to take Ref<Node>&.
* dom/ContainerNode.h:
(WebCore::collectChildNodes): Renamed from getChildNodes. Also removed the useless comment about NodeVector's
initial size and instead prefer to webkit.org/b/80706 where the number 11 was picked.
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):
* editing/ReplaceNodeWithSpanCommand.cpp:
(WebCore::swapInNodePreservingAttributesAndChildren):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::clearShadowTree): Added an assertion exception while tearing down the UA shadow tree.

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

23 months agoAdd a test case for r214334.
mark.lam@apple.com [Fri, 20 Oct 2017 20:08:29 +0000 (20:08 +0000)]
Add a test case for r214334.
https://bugs.webkit.org/show_bug.cgi?id=169941
<rdar://problem/31221258>

Reviewed by JF Bastien.

* stress/regress-169941.js: Added.

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

23 months agoMarked http/tests/loading/resourceLoadStatistics/clear-in-memory-and-persistent-store...
jlewis3@apple.com [Fri, 20 Oct 2017 19:56:37 +0000 (19:56 +0000)]
Marked http/tests/loading/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=178536

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

23 months agoResourceResponse should have a ServiceWorker source
commit-queue@webkit.org [Fri, 20 Oct 2017 19:42:19 +0000 (19:42 +0000)]
ResourceResponse should have a ServiceWorker source
https://bugs.webkit.org/show_bug.cgi?id=178593

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

Source/WebCore:

Covered by updated tests.

Added ResourceResponse::Source::ServiceWorker.
Added internals to get FetchResponse source.

* inspector/InspectorNetworkAgent.cpp:
(WebCore::responseSource):
* loader/ResourceLoader.cpp:
(WebCore::logResourceResponseSource):
* page/DiagnosticLoggingKeys.cpp:
(WebCore::DiagnosticLoggingKeys::serviceWorkerKey):
* page/DiagnosticLoggingKeys.h:
* platform/network/ResourceResponseBase.h:
* testing/Internals.cpp:
(WebCore::responseSourceToString):
(WebCore::Internals::fetchResponseSource):
* testing/Internals.h:
* testing/Internals.idl:

Source/WebKit:

* WebProcess/Storage/ServiceWorkerClientFetch.cpp:
(WebKit::ServiceWorkerClientFetch::didReceiveResponse): setting response source to ServiceWorker.
* WebProcess/Storage/ServiceWorkerClientFetch.h:

LayoutTests:

* http/tests/workers/service/basic-fetch.https-expected.txt:
* http/tests/workers/service/resources/basic-fetch.js:
(async.test):

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

23 months agoWebsiteDataStoreCustomPaths.mm is failing after r223718
commit-queue@webkit.org [Fri, 20 Oct 2017 19:26:58 +0000 (19:26 +0000)]
WebsiteDataStoreCustomPaths.mm is failing after r223718
https://bugs.webkit.org/show_bug.cgi?id=178596

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-20

* TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
(TEST): Making default web site data store creation expected at the end of the test.
We should probably not need need to create it.
This should be fixed as a follow-up.

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

23 months agoGenerated serializers do not properly handle optional interface attributes
aestes@apple.com [Fri, 20 Oct 2017 19:21:51 +0000 (19:21 +0000)]
Generated serializers do not properly handle optional interface attributes
https://bugs.webkit.org/show_bug.cgi?id=178542

Reviewed by Sam Weinig.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateSerializerDefinition):
* bindings/scripts/test/JS/JSTestSerialization.cpp:
(WebCore::JSTestSerialization::serialize):

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

23 months ago[Web Animations] Provide basic timeline and animation interfaces
commit-queue@webkit.org [Fri, 20 Oct 2017 18:41:23 +0000 (18:41 +0000)]
[Web Animations] Provide basic timeline and animation interfaces
https://bugs.webkit.org/show_bug.cgi?id=178526

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

.:

Remove the WEB_ANIMATIONS compile-time flag.

* Source/cmake/OptionsWPE.cmake:
* Source/cmake/OptionsWin.cmake:
* Source/cmake/WebKitFeatures.cmake:
* Source/cmake/tools/vsprops/FeatureDefines.props:
* Source/cmake/tools/vsprops/FeatureDefinesCairo.props:

Source/JavaScriptCore:

Remove the WEB_ANIMATIONS compile-time flag.

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

We're getting Web Animations work started by implementing a very minimal codebase which provides
a DocumentTimeline class which has an instance created for each Document. The parent class,
AnimationTimeline, allows for animations to be added and removed, and animations can be created
using the Animation class, with an optional timeline as parameter.

Tests: webanimations/animation-creation-basic.html
       webanimations/document-timeline.html

* CMakeLists.txt:
* Configurations/FeatureDefines.xcconfig:
* DerivedSources.make:
* PlatformWin.cmake:
* WebCore.xcodeproj/project.pbxproj:
* animation/AnimationTimeline.cpp: Added.
(WebCore::AnimationTimeline::AnimationTimeline):
(WebCore::AnimationTimeline::~AnimationTimeline):
(WebCore::AnimationTimeline::addAnimation):
(WebCore::AnimationTimeline::removeAnimation):
* animation/AnimationTimeline.h: Added.
(WebCore::AnimationTimeline::isDocumentTimeline const):
(WebCore::AnimationTimeline::classType const):
* animation/AnimationTimeline.idl: Added.
* animation/DocumentTimeline.cpp: Added.
(WebCore::DocumentTimeline::create):
(WebCore::DocumentTimeline::DocumentTimeline):
* animation/DocumentTimeline.h: Added.
* animation/DocumentTimeline.idl: Added.
* animation/WebAnimation.cpp: Added.
(WebCore::WebAnimation::create):
(WebCore::WebAnimation::WebAnimation):
(WebCore::WebAnimation::~WebAnimation):
* animation/WebAnimation.h: Added.
* animation/WebAnimation.idl: Added.
* bindings/js/JSAnimationTimelineCustom.cpp: Added.
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
* bindings/js/WebCoreBuiltinNames.h:
* dom/Document.cpp:
(WebCore::Document::timeline):
* dom/Document.h:
* dom/Document.idl:
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::webAnimationsEnabled const):

Source/WebCore/PAL:

Remove the WEB_ANIMATIONS compile-time flag.

* Configurations/FeatureDefines.xcconfig:

Source/WebKit:

Remove the WEB_ANIMATIONS compile-time flag.

* Configurations/FeatureDefines.xcconfig:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
(WebKit::InjectedBundle::setWebAnimationsEnabled):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

Source/WebKitLegacy/mac:

Remove the WEB_ANIMATIONS compile-time flag.

* Configurations/FeatureDefines.xcconfig:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Source/WebKitLegacy/win:

Remove the WEB_ANIMATIONS compile-time flag.

* WebView.cpp:
(WebView::notifyPreferencesChanged):

Source/WTF:

Remove the WEB_ANIMATIONS compile-time flag.

* wtf/FeatureDefines.h:

Tools:

Remove the WEB_ANIMATIONS compile-time flag.

* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

Basic test coverage to check that we are exposing a DocumentTimeline instance on
the Document and that we can construct Animations, optionally associated with a timeline.

* platform/mac-elcapitan/TestExpectations:
* webanimations/animation-creation-basic-expected.txt: Added.
* webanimations/animation-creation-basic.html: Added.
* webanimations/document-timeline-expected.txt: Added.
* webanimations/document-timeline.html: Added.

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

23 months agoWeb Inspector: Network Tab - Turn on the new tab by default, remove the legacy networ...
commit-queue@webkit.org [Fri, 20 Oct 2017 18:33:27 +0000 (18:33 +0000)]
Web Inspector: Network Tab - Turn on the new tab by default, remove the legacy network tab
https://bugs.webkit.org/show_bug.cgi?id=178559
<rdar://problem/34985503>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-10-20
Reviewed by Matt Baker.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
(WI.contentLoaded):
* UserInterface/Base/Setting.js:
* UserInterface/Main.html:
* UserInterface/Views/LegacyNetworkSidebarPanel.css: Removed.
* UserInterface/Views/LegacyNetworkSidebarPanel.js: Removed.
* UserInterface/Views/LegacyNetworkTabContentView.js: Removed.
* UserInterface/Views/NetworkGridContentView.css: Removed.
* UserInterface/Views/NetworkGridContentView.js: Removed.
* UserInterface/Views/TabBrowser.js:
(WI.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
Remove LegacyNetwork tab, its NetworkGridContentView, and associated content.

* UserInterface/Views/NetworkTabContentView.js:
(WI.NetworkTabContentView.isTabAllowed):
Simplify now that this is the only Network tab.

* UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
Remove experimental setting.

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

23 months agoUnreviewed, rolling out r223744, r223750, and r223751.
jlewis3@apple.com [Fri, 20 Oct 2017 17:58:32 +0000 (17:58 +0000)]
Unreviewed, rolling out r223744, r223750, and r223751.
https://bugs.webkit.org/show_bug.cgi?id=178594

These caused consistent failures in test that existed and were
added in the patches. (Requested by mlewis13 on #webkit).

Reverted changesets:

"[JSC] ScriptFetcher should be notified directly from module
pipeline"
https://bugs.webkit.org/show_bug.cgi?id=178340
https://trac.webkit.org/changeset/223744

"Unreviewed, fix changed line number in test expect files"
https://bugs.webkit.org/show_bug.cgi?id=178340
https://trac.webkit.org/changeset/223750

"Unreviewed, follow up to reflect comments"
https://bugs.webkit.org/show_bug.cgi?id=178340
https://trac.webkit.org/changeset/223751

Patch by Commit Queue <commit-queue@webkit.org> on 2017-10-20

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

23 months ago[FrameView::layout cleanup] Move can-enter-layout logic to a separate function
zalan@apple.com [Fri, 20 Oct 2017 17:54:21 +0000 (17:54 +0000)]
[FrameView::layout cleanup] Move can-enter-layout logic to a separate function
https://bugs.webkit.org/show_bug.cgi?id=178546
<rdar://problem/35083894>

Reviewed by Antti Koivisto.

No change in functionality.

* page/FrameView.cpp:
(WebCore::FrameView::canPerformLayout const):
(WebCore::FrameView::layout): We already assert on certain reentrancy conditions, loggig the reason
does not seem to have high value.
* page/FrameView.h:

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

23 months agoAdd createImageBitmap to Window and Worker
dino@apple.com [Fri, 20 Oct 2017 17:47:09 +0000 (17:47 +0000)]
Add createImageBitmap to Window and Worker
https://bugs.webkit.org/show_bug.cgi?id=178573
<rdar://problem/35092692>

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Update the expected results now that createImageBitmap exists.

* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-sizeOverflow-expected.txt:
* web-platform-tests/imagebitmap-renderingcontext/bitmaprenderer-as-imagesource-expected.txt:
* web-platform-tests/imagebitmap-renderingcontext/context-creation-with-alpha-expected.txt:
* web-platform-tests/imagebitmap-renderingcontext/tranferFromImageBitmap-null-expected.txt:
* web-platform-tests/imagebitmap-renderingcontext/transferFromImageBitmap-detached-expected.txt:

Source/WebCore:

Implement the createImageBitmap functions that are exposed on the Window
and Worker objects.

Covered by the Web Platform Tests.

* html/ImageBitmap.cpp: Make sure to call suspendIfNeeded since this is
an ActiveDOMObject.
* html/ImageBitmap.h: Change the order of the classes in the Variant
to match the order of definitions in the IDL.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::createImageBitmap): Call ImageBitmap::createPromise.
* page/DOMWindow.h:
* page/WindowOrWorkerGlobalScope.idl: Add the createImageBitmap methods.
* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::createImageBitmap): Call ImageBitmap::createPromise.
* workers/WorkerGlobalScope.h:

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

23 months agoWeb Inspector: consolidate code that hosts the Inspector page inside a WKWebView
bburg@apple.com [Fri, 20 Oct 2017 17:30:04 +0000 (17:30 +0000)]
Web Inspector: consolidate code that hosts the Inspector page inside a WKWebView
https://bugs.webkit.org/show_bug.cgi?id=177661
<rdar://problem/34740286>

Reviewed by Joseph Pecoraro.

Move setup and delegates of the inspector frontend page into implementations of
WebInspectorProxy::platformCreateFrontendPage. The Mac implementation
will be subsumed by WKInspectorViewController, while the GTK implementation
is inherited from the cross-platform version that uses C API. Eventually the
GTK version should use GTK API rather than the soon to be deprecated C API.

* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::createFrontendPage):
(WebKit::webProcessDidCrash): Deleted.
(WebKit::decidePolicyForNavigationAction): Deleted.
(WebKit::getContextMenuFromProposedMenu): Deleted.
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::exceededDatabaseQuota):
(WebKit::webProcessDidCrash):
(WebKit::decidePolicyForNavigationAction):
(WebKit::getContextMenuFromProposedMenu):
(WebKit::WebInspectorProxy::platformCreateFrontendPage):
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::exceededDatabaseQuota):
(WebKit::webProcessDidCrash):
(WebKit::decidePolicyForNavigationAction):
(WebKit::getContextMenuFromProposedMenu):
(WebKit::WebInspectorProxy::platformCreateFrontendPage):

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

23 months agoWeb Inspector: consolidate code that hosts the Inspector page inside a WKWebView
bburg@apple.com [Fri, 20 Oct 2017 17:29:01 +0000 (17:29 +0000)]
Web Inspector: consolidate code that hosts the Inspector page inside a WKWebView
https://bugs.webkit.org/show_bug.cgi?id=177661
<rdar://problem/34740286>

Reviewed by Joseph Pecoraro.

Introduce new platform methods to open and close the frontend page and window.
This matches how RemoteWebInspectorProxy divides work up into platform methods.
Move existing code from platformDidClose, platformOpen, and other methods into
the new platform methods. Move some identical platform code into WebInspectorProxy.cpp.

* UIProcess/WebInspectorProxy.h:
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::connect):
(WebKit::WebInspectorProxy::showConsole):
(WebKit::WebInspectorProxy::showResources):
(WebKit::WebInspectorProxy::showTimelines):
(WebKit::WebInspectorProxy::showMainResourceForFrame):
(WebKit::WebInspectorProxy::createFrontendPage):
(WebKit::WebInspectorProxy::createInspectorPage):
(WebKit::WebInspectorProxy::open):
(WebKit::WebInspectorProxy::didClose):
(WebKit::WebInspectorProxy::eagerlyCreateInspectorPage): Renamed.

* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::updateInspectorWindowTitle const):
(WebKit::WebInspectorProxy::platformCreateFrontendPage):
Do everything necessary to set up the frontend page WebView.

(WebKit::WebInspectorProxy::platformCreateFrontendWindow):
Do everything necessary to set up the detached NSWindow for the frontend.

(WebKit::WebInspectorProxy::platformCloseFrontendPageAndWindow):
(WebKit::WebInspectorProxy::platformDetach):
(WebKit::WebInspectorProxy::platformCreateInspectorPage): Deleted.
(WebKit::WebInspectorProxy::createInspectorWindow): Deleted.
(WebKit::WebInspectorProxy::platformOpen): Deleted.
(WebKit::WebInspectorProxy::platformDidClose): Deleted.

* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::updateInspectorWindowTitle const):
(WebKit::WebInspectorProxy::platformCreateFrontendPage): Added.
Do everything necessary to set up the frontend page WebView.

(WebKit::WebInspectorProxy::platformCreateFrontendWindow): Added.
Do everything necessary to set up the detached NSWindow for the frontend.

(WebKit::WebInspectorProxy::closeFrontendPage):
(WebKit::WebInspectorProxy::closeFrontendAfterInactivityTimerFired):
(WebKit::WebInspectorProxy::platformCloseFrontendPageAndWindow):
(WebKit::WebInspectorProxy::platformDidCloseForCrash):
(WebKit::WebInspectorProxy::platformInvalidate):
(WebKit::WebInspectorProxy::platformBringToFront): Carry through renamings.

(WebKit::WebInspectorProxy::platformDetach):
Defer to the general open() method to create a window if needed and bring it to front.

(WebKit::WebInspectorProxy::platformCanAttach): Move this below open/close code.

(WebKit::WebInspectorProxy::closeFrontend): Deleted.
(WebKit::WebInspectorProxy::createInspectorWindow): Deleted.
(WebKit::WebInspectorProxy::platformCreateInspectorPage): Deleted.
(WebKit::WebInspectorProxy::platformOpen): Deleted.
(WebKit::WebInspectorProxy::platformDidClose): Deleted.
Defer to the general open() method to create a window if needed and bring it to front.

* UIProcess/wpe/WebInspectorProxyWPE.cpp:
(WebKit::WebInspectorProxy::platformCreateFrontendPage):
(WebKit::WebInspectorProxy::platformCreateFrontendWindow):
(WebKit::WebInspectorProxy::platformCloseFrontendPageAndWindow):
(WebKit::WebInspectorProxy::platformCreateInspectorPage): Deleted.
(WebKit::WebInspectorProxy::createInspectorWindow): Deleted.
(WebKit::WebInspectorProxy::platformOpen): Deleted.
(WebKit::WebInspectorProxy::platformDidClose): Deleted.
Update stubs.

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

23 months agoWeb Inspector: consolidate code that hosts the Inspector page inside a WKWebView
bburg@apple.com [Fri, 20 Oct 2017 17:28:58 +0000 (17:28 +0000)]
Web Inspector: consolidate code that hosts the Inspector page inside a WKWebView
https://bugs.webkit.org/show_bug.cgi?id=177661
<rdar://problem/34740286>

Reviewed by Joseph Pecoraro.

This patch refactors some Cocoa code pathas.
Rename the timer that closes the WebView so it's more obvious what it is for.
Extract the common code to close the frontend window so its not implemented by
the timer callback.

In later patches, this will be extracted further into platform methods to open/close
the frontend and window, like how it is for RemoteWebInspectorProxy.

* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::WebInspectorProxy):
* UIProcess/WebInspectorProxy.h:
* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::closeFrontendAfterInactivityTimerFired):
(WebKit::WebInspectorProxy::closeFrontend):
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
(WebKit::WebInspectorProxy::platformDidClose):
(WebKit::WebInspectorProxy::platformDidCloseForCrash):
(WebKit::WebInspectorProxy::platformInvalidate):
(WebKit::WebInspectorProxy::closeTimerFired): Deleted.

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

23 months agoWeb Inspector: consolidate code that hosts the Inspector page inside a WKWebView
bburg@apple.com [Fri, 20 Oct 2017 17:28:57 +0000 (17:28 +0000)]
Web Inspector: consolidate code that hosts the Inspector page inside a WKWebView
https://bugs.webkit.org/show_bug.cgi?id=177661
<rdar://problem/34740286>

Reviewed by Joseph Pecoraro.

Modernize the ObjC adapter and related code a bit before it is hooked
into WKInspectorViewController.

* UIProcess/API/C/mac/WKInspectorPrivateMac.h: No need for the
ivar to be declared here, move to @implementation.

* UIProcess/WebInspectorProxy.h: Simplify the name to match modern convention.

* UIProcess/mac/WebInspectorProxyMac.mm:
(-[WKWebInspectorProxyObjCAdapter inspectorRef]):
(-[WKWebInspectorProxyObjCAdapter initWithWebInspectorProxy:]):
(-[WKWebInspectorProxyObjCAdapter invalidate]):
(-[WKWebInspectorProxyObjCAdapter windowDidMove:]):
(-[WKWebInspectorProxyObjCAdapter windowDidResize:]):
(-[WKWebInspectorProxyObjCAdapter windowWillClose:]):
(-[WKWebInspectorProxyObjCAdapter windowDidEnterFullScreen:]):
(-[WKWebInspectorProxyObjCAdapter windowDidExitFullScreen:]):
(-[WKWebInspectorProxyObjCAdapter inspectedViewFrameDidChange:]):
Remove unnecessary casts to and from void*.

(WebKit::WebInspectorProxy::attachmentViewDidChange):
(WebKit::WebInspectorProxy::setInspectorWindowFrame):
(WebKit::WebInspectorProxy::closeTimerFired):
(WebKit::WebInspectorProxy::createInspectorWindow):
(WebKit::WebInspectorProxy::platformCreateInspectorPage):
Fix uses of member variable m_objCAdapter.

(-[WKWebInspectorProxyObjCAdapter close]): Deleted.
Rename this to invalidate to match modern convention. In this context,
'close' might trick someone into thinking that this closes a window/page.

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

23 months agoWeb Inspector: consolidate code that hosts the Inspector page inside a WKWebView
bburg@apple.com [Fri, 20 Oct 2017 17:28:53 +0000 (17:28 +0000)]
Web Inspector: consolidate code that hosts the Inspector page inside a WKWebView
https://bugs.webkit.org/show_bug.cgi?id=177661
<rdar://problem/34740286>

Reviewed by Joseph Pecoraro.

Move code that sets up and controls the inspector WebView into WKInspectorViewController.
This will be shared between RemoteWebInspectorProxy and WebInspectorProxy eventually,
but for now just pull out code from RemoteWebInspectorProxy. The next patch will move
over WebInspectorProxy.

WKInspectorViewController uses the ObjC API for setting up the WKWebView's delegates.
Previously, a WKWebView was used but the delegates were set up using the C API. In
a few cases it uses delegate methods to ask the owning [Remote]WebInspectorProxy some
things. In general, WKInspectorViewController doesn't dig into any internals of
WebPageProxy or WebInspectorProxy; that is delegated to the client.

* UIProcess/RemoteWebInspectorProxy.h:
(WebKit::RemoteWebInspectorProxy::isUnderTest const): Add a method stub for now.
We might want to enable tests for a _WKRemoteWebInspectorViewController-based UI
in the future, and WebInspectorProxy has the same method. Add this and connect it
to the view controller delegate method.

(WebKit::RemoteWebInspectorProxy::webView const):
This returns a plain WKWebView type now.

* UIProcess/mac/RemoteWebInspectorProxyMac.mm:
(-[WKRemoteWebInspectorProxyObjCAdapter inspectorViewControllerInspectorDidCrash:]):
(-[WKRemoteWebInspectorProxyObjCAdapter inspectorViewControllerInspectorIsUnderTest:]):
(-[WKRemoteWebInspectorProxyObjCAdapter webViewWebContentProcessDidTerminate:]): Deleted.
(-[WKRemoteWebInspectorProxyObjCAdapter webView:decidePolicyForNavigationAction:decisionHandler:]): Deleted.
Make the ObjCAdapter forward view controller delegate calls to the C++ class.
It no longer needs to be the delegate of the WebView, as the view controller handles that.

(WebKit::RemoteWebInspectorProxy::platformCreateFrontendPageAndWindow):
Clean up and move WKWebView setup code into the view controller.

(WebKit::RemoteWebInspectorProxy::platformCloseFrontendPageAndWindow):
The m_inspectorPage is closed by the caller before calling this method, so we don't need to do it here.

(WebKit::RemoteWebInspectorProxy::platformBringToFront):
(WebKit::RemoteWebInspectorProxy::platformSave):
(WebKit::RemoteWebInspectorProxy::platformAppend):
(WebKit::RemoteWebInspectorProxy::platformStartWindowDrag):
Use webView() instead of m_webView.

* UIProcess/mac/WKInspectorViewController.h: Added.
* UIProcess/mac/WKInspectorViewController.mm: Added.
(-[WKInspectorWKWebView tag]):
(-[WKInspectorViewController initWithInspectedPage:]):
(-[WKInspectorViewController dealloc]):
(-[WKInspectorViewController delegate]):
(-[WKInspectorViewController webView]):
(-[WKInspectorViewController setDelegate:]):
(-[WKInspectorViewController configuration]):
(-[WKInspectorViewController _webView:getWindowFrameWithCompletionHandler:]):
(-[WKInspectorViewController _webView:setWindowFrame:]):
(-[WKInspectorViewController webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:]):
(-[WKInspectorViewController _webView:decideDatabaseQuotaForSecurityOrigin:currentQuota:currentOriginUsage:currentDatabaseUsage:expectedUsage:decisionHandler:]):
(-[WKInspectorViewController webViewWebContentProcessDidTerminate:]):
(-[WKInspectorViewController webView:decidePolicyForNavigationAction:decisionHandler:]):
Move code from RemoteWebInspectorProxyMac into here.

* UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::createFrontendWindow):
Remove commented out code left over from the last time that this method got moved around.

* WebKit.xcodeproj/project.pbxproj:
Add new class.

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

23 months agoUnreviewed GTK+ gardening. Adding GTK+-specific baselines for a bunch
zandobersek@gmail.com [Fri, 20 Oct 2017 17:22:52 +0000 (17:22 +0000)]
Unreviewed GTK+ gardening. Adding GTK+-specific baselines for a bunch
of HTTP tests, and adding failure expectations for some others.

* platform/gtk/TestExpectations:
* platform/gtk/http/tests/security/contentSecurityPolicy/1.1: Added.
* platform/gtk/http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-expected.txt: Added.
* platform/gtk/http/tests/security/module-no-mime-type-expected.txt:
* platform/gtk/imported/w3c/web-platform-tests/2dcontext: Added.
* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap: Added.
* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt: Added.

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

23 months ago[GTK] Update expectations for webkitConvertPoint.html
Ms2ger@igalia.com [Fri, 20 Oct 2017 17:05:42 +0000 (17:05 +0000)]
[GTK] Update expectations for webkitConvertPoint.html
https://bugs.webkit.org/show_bug.cgi?id=178582

Reviewed by Michael Catanzaro.

This at least makes the test useful as a regression test.

* platform/gtk/TestExpectations:
* platform/gtk/fast/dom/Window/webkitConvertPoint-expected.txt:

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

23 months agoMissing some perl packages in install-dependencies
tpopela@redhat.com [Fri, 20 Oct 2017 17:00:14 +0000 (17:00 +0000)]
Missing some perl packages in install-dependencies
https://bugs.webkit.org/show_bug.cgi?id=178571

Reviewed by Žan Doberšek.

Install per-version and perl-Time-HiRes so we can use build-webkit
script. Also add missing backlashes.

* wpe/install-dependencies:

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

23 months agoAX: [ATK] Events missing and state incorrect for aria-activedescendant
jdiggs@igalia.com [Fri, 20 Oct 2017 16:30:20 +0000 (16:30 +0000)]
AX: [ATK] Events missing and state incorrect for aria-activedescendant
https://bugs.webkit.org/show_bug.cgi?id=178523

Reviewed by Chris Fleizach.

Source/WebCore:

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

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

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isActiveDescendantOfFocusedContainer const):
(WebCore::AccessibilityObject::ariaActiveDescendantReferencingElements const):
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::shouldNotifyActiveDescendant const):
* accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::AXObjectCache::postPlatformNotification):
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(setAtkStateSetFromCoreObject):

LayoutTests:

* accessibility/gtk/aria-activedescendant-changed-notification-expected.txt: Added.
* accessibility/gtk/aria-activedescendant-changed-notification.html: Added.
* accessibility/gtk/aria-activedescendant-expected.txt: Added.
* accessibility/gtk/aria-activedescendant.html: Added.

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

23 months agoUnreviewed, rolling out r222709 and r223572.
commit-queue@webkit.org [Fri, 20 Oct 2017 16:10:06 +0000 (16:10 +0000)]
Unreviewed, rolling out r222709 and r223572.
https://bugs.webkit.org/show_bug.cgi?id=178587

Still getting mac-wk2 EWS bots stuck (Requested by ap on
#webkit).

Reverted changesets:

"Log stack-trace for run-webkit-tests when interrupted"
https://bugs.webkit.org/show_bug.cgi?id=176393
https://trac.webkit.org/changeset/222709

"webkitpy: Hang when workers write to the same stack trace
file"
https://bugs.webkit.org/show_bug.cgi?id=178402
https://trac.webkit.org/changeset/223572

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

23 months ago[Win] Mark http/tests/navigation/keyboard-events-during-provisional-navigation.html and
pvollan@apple.com [Fri, 20 Oct 2017 15:15:58 +0000 (15:15 +0000)]
[Win] Mark http/tests/navigation/keyboard-events-during-provisional-navigation.html and
http/tests/navigation/keyboard-events-during-provisional-subframe-navigation.html as failures.
https://bugs.webkit.org/show_bug.cgi?id=178549

Unreviewed test gardening.

* platform/win/TestExpectations:

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

23 months agoAdd the MAX_CLIENT_WAIT_TIMEOUT_WEBGL constant to WebGL2RenderingContext.
Ms2ger@igalia.com [Fri, 20 Oct 2017 12:45:46 +0000 (12:45 +0000)]
Add the MAX_CLIENT_WAIT_TIMEOUT_WEBGL constant to WebGL2RenderingContext.
https://bugs.webkit.org/show_bug.cgi?id=178572

Reviewed by Žan Doberšek.

Source/WebCore:

Test: fast/canvas/webgl/webgl2/constants.html

* html/canvas/WebGL2RenderingContext.idl:

LayoutTests:

* fast/canvas/webgl/webgl2/constants-expected.txt:
* fast/canvas/webgl/webgl2/constants.html:

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

23 months ago[WK2] Drop 'CoordinatedGraphics' as a platform prefix from generate-forwarding-headers.pl
zandobersek@gmail.com [Fri, 20 Oct 2017 12:23:26 +0000 (12:23 +0000)]
[WK2] Drop 'CoordinatedGraphics' as a platform prefix from generate-forwarding-headers.pl
https://bugs.webkit.org/show_bug.cgi?id=178575

Reviewed by Carlos Garcia Campos.

* Scripts/generate-forwarding-headers.pl: Remove CoordinatedGraphics as
a supported platform prefix. No one invokes the script with this
argument anymore.

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

23 months agoUnreviewed WPE gardening. Managing failure expectations for
zandobersek@gmail.com [Fri, 20 Oct 2017 12:04:43 +0000 (12:04 +0000)]
Unreviewed WPE gardening. Managing failure expectations for
a set of failing HTTP tests.

* platform/wpe/TestExpectations:

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

23 months ago[GTK][WPE] Fix review comments on WEBPImageDecoder
magomez@igalia.com [Fri, 20 Oct 2017 11:08:12 +0000 (11:08 +0000)]
[GTK][WPE] Fix review comments on WEBPImageDecoder
https://bugs.webkit.org/show_bug.cgi?id=178080

Reviewed by Said Abou-Hallawa.

Source/WebCore:

Properly free the demuxer in case of error, improve the code to detect the first
required frame to decode, fix the usage of the DecodingStatus and some styling
changes.

Covered by existent tests.

* platform/image-decoders/webp/WEBPImageDecoder.cpp:
(WebCore::webpFrameAtIndex):
(WebCore::WEBPImageDecoder::findFirstRequiredFrameToDecode):
(WebCore::WEBPImageDecoder::decode):
(WebCore::WEBPImageDecoder::decodeFrame):
(WebCore::WEBPImageDecoder::initFrameBuffer):
(WebCore::WEBPImageDecoder::clearFrameBufferCache):

LayoutTests:

Adjusted test duration.

* fast/images/animated-webp.html:

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

23 months agoUnreviewed WPE gardening. Rebaselining CSS tests that were affected
zandobersek@gmail.com [Fri, 20 Oct 2017 09:23:58 +0000 (09:23 +0000)]
Unreviewed WPE gardening. Rebaselining CSS tests that were affected
by recent font changes.

* platform/wpe/css1/font_properties/font-expected.txt:
* platform/wpe/css1/pseudo/firstline-expected.txt:
* platform/wpe/css1/pseudo/multiple_pseudo_elements-expected.txt:
* platform/wpe/css2.1/t051201-c23-first-line-00-b-expected.txt:
* platform/wpe/css2.1/t051202-c26-psudo-nest-00-c-expected.txt:
* platform/wpe/css2.1/t0905-c5525-fltwidth-00-c-g-expected.txt:
* platform/wpe/css2.1/t1508-c527-font-00-b-expected.txt:
* platform/wpe/css2.1/t1508-c527-font-06-b-expected.txt:
* platform/wpe/css2.1/t1508-c527-font-07-b-expected.txt:
* platform/wpe/css2.1/t1508-c527-font-10-c-expected.txt:

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

23 months ago[Curl] Clean up old style code in old curl files.
commit-queue@webkit.org [Fri, 20 Oct 2017 09:22:54 +0000 (09:22 +0000)]
[Curl] Clean up old style code in old curl files.
https://bugs.webkit.org/show_bug.cgi?id=178569

Patch by Basuke Suzuki <Basuke.Suzuki@sony.com> on 2017-10-20
Reviewed by Ryosuke Niwa.

Source/WebCore:

* platform/network/curl/AuthenticationChallenge.h:
* platform/network/curl/CertificateInfo.h:
* platform/network/curl/CookieJarCurl.h:
* platform/network/curl/CurlCacheEntry.h:
* platform/network/curl/CurlCacheManager.cpp:
(WebCore::CurlCacheManager::singleton):
(WebCore::CurlCacheManager::getInstance): Deleted.
* platform/network/curl/CurlCacheManager.h:
* platform/network/curl/CurlContext.cpp:
(WebCore::CurlContext::singleton):
* platform/network/curl/CurlContext.h:
(WebCore::CurlContext::singleton): Deleted.
* platform/network/curl/CurlJobManager.cpp:
(WebCore::CurlJobManager::singleton):
* platform/network/curl/CurlJobManager.h:
(WebCore::CurlJobManager::singleton): Deleted.
* platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::setupTransfer):
* platform/network/curl/CurlRequest.h:
* platform/network/curl/CurlRequestDelegate.h:
* platform/network/curl/CurlResponse.h:
(WebCore::CurlResponse::isolatedCopy const):
* platform/network/curl/CurlSSLHandle.h:
* platform/network/curl/CurlSSLVerifier.h:
* platform/network/curl/DownloadBundle.h:
* platform/network/curl/MultipartHandle.h:
* platform/network/curl/ResourceError.h:
* platform/network/curl/ResourceHandleCurlDelegate.cpp:
(WebCore::ResourceHandleCurlDelegate::createCurlRequest):
(WebCore::ResourceHandleCurlDelegate::curlDidReceiveResponse):
(WebCore::ResourceHandleCurlDelegate::curlDidReceiveBuffer):
(WebCore::ResourceHandleCurlDelegate::curlDidComplete):
(WebCore::ResourceHandleCurlDelegate::curlDidFailWithError):
* platform/network/curl/ResourceRequest.h:
(WebCore::ResourceRequest::ResourceRequest):
(WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):
(WebCore::ResourceRequest::cfURLRequest const):
(WebCore::ResourceRequest::httpPipeliningEnabled):
(WebCore::ResourceRequest::setHTTPPipeliningEnabled):
(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore::ResourceRequest::doUpdateResourceRequest):
(WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
(WebCore::ResourceRequest::doUpdateResourceHTTPBody):
(WebCore::ResourceRequest::doPlatformSetAsIsolatedCopy):
* platform/network/curl/ResourceResponseCurl.cpp:
(WebCore::ResourceResponse::isAppendableHeader):
(WebCore::ResourceResponse::ResourceResponse):

Source/WebKitLegacy/win:

* WebCache.cpp:
(WebCache::cacheFolder):
(WebCache::setCacheFolder):
* WebView.cpp:
(WebView::setCacheModel):

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

23 months agoUnreviewed, follow up to reflect comments
utatane.tea@gmail.com [Fri, 20 Oct 2017 09:02:20 +0000 (09:02 +0000)]
Unreviewed, follow up to reflect comments
https://bugs.webkit.org/show_bug.cgi?id=178340

* runtime/JSModuleLoader.cpp:
(JSC::JSModuleLoader::notifyCompleted):

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

23 months agoUnreviewed, fix changed line number in test expect files
utatane.tea@gmail.com [Fri, 20 Oct 2017 08:59:30 +0000 (08:59 +0000)]
Unreviewed, fix changed line number in test expect files
https://bugs.webkit.org/show_bug.cgi?id=178340

* http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-expected.txt:
* http/tests/security/module-no-mime-type-expected.txt:

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

23 months agoRenderLayerCompositor: Move implementation of simple methods into the header file.
commit-queue@webkit.org [Fri, 20 Oct 2017 08:30:31 +0000 (08:30 +0000)]
RenderLayerCompositor: Move implementation of simple methods into the header file.
https://bugs.webkit.org/show_bug.cgi?id=178514

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

No new tests, behavior unchanged.

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

23 months agoSupport ::before/::after pseudo elements on elements with display:contents
antti@apple.com [Fri, 20 Oct 2017 08:29:03 +0000 (08:29 +0000)]
Support ::before/::after pseudo elements on elements with display:contents
https://bugs.webkit.org/show_bug.cgi?id=178513

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

* web-platform-tests/cssom/getComputedStyle-pseudo-expected.txt:

Source/WebCore:

Add support for

    div { display:contents }
    div::after { content:'foo' }

That is support non-box generating elements with generated content.

* style/RenderTreePosition.cpp:
(WebCore::RenderTreePosition::nextSiblingRenderer const):

    Implement full pseudo-inclusive traversal starting from any element (including pseudo)
    to locate the next rendering sibling. In case of display:content this may need to look
    into descendants.

* style/RenderTreeUpdater.cpp:
(WebCore::textRendererIsNeeded):

    RenderTreePosition::nextSiblingRenderer can no longer be called with a node that already has a renderer.
    Maintain the existing behavior.

* style/RenderTreeUpdaterGeneratedContent.cpp:
(WebCore::RenderTreeUpdater::GeneratedContent::updatePseudoElement):
(WebCore::RenderTreeUpdater::GeneratedContent::needsPseudoElement):

    Don't require for host to have a renderer.

* style/RenderTreeUpdaterGeneratedContent.h:
* style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::resolvePseudoStyle):

LayoutTests:

* TestExpectations: Enable imported/w3c/web-platform-tests/css/css-display-3/display-contents-before-after-001.html

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

23 months agoMove common bindings files to unified sources
keith_miller@apple.com [Fri, 20 Oct 2017 07:50:29 +0000 (07:50 +0000)]
Move common bindings files to unified sources
https://bugs.webkit.org/show_bug.cgi?id=178561

Rubber-stamped by Ryosuke Niwa.

This patch moves most of the common bindings files to unified sources.

Additionally, it adds a change to make_names to unique a struct
name that caused name conflicts that I missed when I made the
source changes before.

Lastly, add missing reference to WebCoreJSBuiltins.cpp in CMake build.

No new behavior no tests.

* CMakeLists.txt:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* dom/make_names.pl:
(printFactoryCppFile):

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

23 months agoOptimize accesses to how we get the direct prototype
sbarati@apple.com [Fri, 20 Oct 2017 07:50:08 +0000 (07:50 +0000)]
Optimize accesses to how we get the direct prototype
https://bugs.webkit.org/show_bug.cgi?id=178548

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

This patch makes JSObject::getPrototypeDirect take VM& as a parameter
so it can use the faster version of the structure accessor function.
The reason for making this change is that JSObjet::getPrototypeDirect
is called on the hot path in property lookup.

* API/JSObjectRef.cpp:
(JSObjectGetPrototype):
* jsc.cpp:
(WTF::DOMJITGetterBaseJSObject::DOMJITAttribute::slowCall):
(WTF::DOMJITGetterBaseJSObject::customGetter):
(functionCreateProxy):
* runtime/ArrayPrototype.cpp:
(JSC::speciesWatchpointIsValid):
* runtime/ErrorInstance.cpp:
(JSC::ErrorInstance::sanitizedToString):
* runtime/JSArray.cpp:
(JSC::JSArray::isIteratorProtocolFastAndNonObservable):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::lastInPrototypeChain):
(JSC::JSGlobalObject::resetPrototype):
(JSC::JSGlobalObject::finishCreation):
* runtime/JSGlobalObjectInlines.h:
(JSC::JSGlobalObject::objectPrototypeIsSane):
(JSC::JSGlobalObject::arrayPrototypeChainIsSane):
(JSC::JSGlobalObject::stringPrototypeChainIsSane):
* runtime/JSLexicalEnvironment.cpp:
(JSC::JSLexicalEnvironment::getOwnPropertySlot):
* runtime/JSMap.cpp:
(JSC::JSMap::isIteratorProtocolFastAndNonObservable):
* runtime/JSObject.cpp:
(JSC::JSObject::calculatedClassName):
(JSC::JSObject::setPrototypeWithCycleCheck):
(JSC::JSObject::getPrototype):
(JSC::JSObject::attemptToInterceptPutByIndexOnHoleForPrototype):
(JSC::JSObject::attemptToInterceptPutByIndexOnHole):
(JSC::JSObject::anyObjectInChainMayInterceptIndexedAccesses const):
(JSC::JSObject::prototypeChainMayInterceptStoreTo):
* runtime/JSObject.h:
(JSC::JSObject::finishCreation):
(JSC::JSObject::getPrototypeDirect const):
(JSC::JSObject::getPrototype):
* runtime/JSObjectInlines.h:
(JSC::JSObject::canPerformFastPutInline):
(JSC::JSObject::getPropertySlot):
(JSC::JSObject::getNonIndexPropertySlot):
* runtime/JSProxy.cpp:
(JSC::JSProxy::setTarget):
* runtime/JSSet.cpp:
(JSC::JSSet::isIteratorProtocolFastAndNonObservable):
* runtime/ProgramExecutable.cpp:
(JSC::ProgramExecutable::initializeGlobalProperties):
* runtime/StructureInlines.h:
(JSC::Structure::isValid const):

Source/WebCore:

No new tests: no functionality change.

* bindings/js/JSDOMAbstractOperations.h:
(WebCore::isVisibleNamedProperty):
(WebCore::accessVisibleNamedProperty):
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::toJSDOMWindow):
* bindings/js/JSDOMWindowProperties.cpp:
(WebCore::JSDOMWindowProperties::getOwnPropertySlot):
* bindings/js/JSPluginElementFunctions.cpp:
(WebCore::pluginElementCustomGetOwnPropertySlot):
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::initScript):
* bindings/scripts/CodeGeneratorJS.pm:
(GeneratePut):
(GeneratePutByIndex):
(GenerateConstructorHelperMethods):
* bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::JSTestGlobalObjectConstructor::initializeProperties):
* bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::put):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::putByIndex):
* bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
(WebCore::JSTestNamedAndIndexedSetterThrowingException::put):
(WebCore::JSTestNamedAndIndexedSetterThrowingException::putByIndex):
* bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::put):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::putByIndex):
* bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
(WebCore::JSTestNamedSetterNoIdentifier::put):
(WebCore::JSTestNamedSetterNoIdentifier::putByIndex):
* bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
(WebCore::JSTestNamedSetterThrowingException::put):
(WebCore::JSTestNamedSetterThrowingException::putByIndex):
* bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
(WebCore::JSTestNamedSetterWithIdentifier::put):
(WebCore::JSTestNamedSetterWithIdentifier::putByIndex):
* bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
(WebCore::JSTestNamedSetterWithIndexedGetter::put):
(WebCore::JSTestNamedSetterWithIndexedGetter::putByIndex):
* bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::put):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::putByIndex):
* bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp:
(WebCore::JSTestNamedSetterWithUnforgableProperties::put):
(WebCore::JSTestNamedSetterWithUnforgableProperties::putByIndex):

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

23 months ago[ARM64] static_cast<int32_t>() in BinaryOpNode::emitBytecode() prevents op_unsigned...
utatane.tea@gmail.com [Fri, 20 Oct 2017 07:35:16 +0000 (07:35 +0000)]
[ARM64] static_cast<int32_t>() in BinaryOpNode::emitBytecode() prevents op_unsigned emission
https://bugs.webkit.org/show_bug.cgi?id=178379

Reviewed by Saam Barati.

We reuse jsNumber's checking mechanism here to precisely check the generated number is within uint32_t
in bytecode compiler. This is reasonable since the NumberNode will generate the exact this JSValue.

* bytecompiler/NodesCodegen.cpp:
(JSC::BinaryOpNode::emitBytecode):

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

23 months ago[JSC] ScriptFetcher should be notified directly from module pipeline
utatane.tea@gmail.com [Fri, 20 Oct 2017 07:19:02 +0000 (07:19 +0000)]
[JSC] ScriptFetcher should be notified directly from module pipeline
https://bugs.webkit.org/show_bug.cgi?id=178340

Reviewed by Sam Weinig.

Source/JavaScriptCore:

Previously, we use JSStdFunction to let WebCore inform the module pipeline results.
We setup JSStdFunction to the resulted promise of the module pipeline. It is super
ad-hoc since JSStdFunction's lambda need extra-careful to make it non-cyclic-referenced.
JSStdFunction's lambda can capture variables, but they are not able to be marked by GC.

But now, we have ScriptFetcher. It is introduced after we implemented the module pipeline
notification mechanism by using JSStdFunction. But it is appropriate one to receive notification
from the module pipeline by observer style.

This patch removes the above ad-hoc JSStdFunction use. And now ScriptFetcher receives
completion/failure notifications from the module pipeline.

* builtins/ModuleLoaderPrototype.js:
(loadModule):
(loadAndEvaluateModule):
* runtime/Completion.cpp:
(JSC::loadModule):
* runtime/Completion.h:
* runtime/JSModuleLoader.cpp:
(JSC::jsValueToModuleKey):
(JSC::JSModuleLoader::notifyCompleted):
(JSC::JSModuleLoader::notifyFailed):
* runtime/JSModuleLoader.h:
* runtime/ModuleLoaderPrototype.cpp:
(JSC::moduleLoaderPrototypeNotifyCompleted):
(JSC::moduleLoaderPrototypeNotifyFailed):
* runtime/ScriptFetcher.h:
(JSC::ScriptFetcher::notifyLoadCompleted):
(JSC::ScriptFetcher::notifyLoadFailed):

Source/WebCore:

No behavior change.

* bindings/js/JSMainThreadExecState.h:
(WebCore::JSMainThreadExecState::loadModule):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::loadModuleScriptInWorld):
(WebCore::jsValueToModuleKey): Deleted.
(WebCore::ScriptController::setupModuleScriptHandlers): Deleted.
* bindings/js/ScriptController.h:
* dom/LoadableModuleScript.cpp:
(WebCore::LoadableModuleScript::notifyLoadFailed):
* dom/LoadableModuleScript.h:

LayoutTests:

* http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-expected.txt:
* http/tests/security/module-no-mime-type-expected.txt:
* js/dom/modules/module-execution-error-should-be-propagated-to-onerror-expected.txt:

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