WebKit-https.git
19 months agoStandardize terminology for marked text
dbates@webkit.org [Tue, 27 Feb 2018 22:35:47 +0000 (22:35 +0000)]
Standardize terminology for marked text
https://bugs.webkit.org/show_bug.cgi?id=180999

Reviewed by Zalan Bujtas.

The name MarkerSubrange is a misnomer for a data structure that associates a text subrange with a type
and optional document marker. In particular, a MarkerSubrange may not always correspond to a document
marker. For instance, selected text is represented using a MarkerSubrange that does not have a
corresponding document marker. Let's standardize on the phrase "marked text" as the canonical way to
describe these tagged text subranges.

Source/WebCore:

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::localSelectionRect const):
(WebCore::InlineTextBox::MarkedTextStyle::areBackgroundMarkedTextStylesEqual):
(WebCore::InlineTextBox::MarkedTextStyle::areForegroundMarkedTextStylesEqual):
(WebCore::InlineTextBox::MarkedTextStyle::areDecorationMarkedTextStylesEqual):
(WebCore::InlineTextBox::StyledMarkedText::StyledMarkedText):
(WebCore::createMarkedTextFromSelectionInBox):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::paintPlatformDocumentMarkers):
(WebCore::InlineTextBox::paintPlatformDocumentMarker):
(WebCore::InlineTextBox::computeStyleForUnmarkedMarkedText const):
(WebCore::InlineTextBox::resolveStyleForMarkedText):
(WebCore::InlineTextBox::subdivideAndResolveStyle):
(WebCore::InlineTextBox::coalesceAdjacentMarkedTexts):
(WebCore::InlineTextBox::collectMarkedTextsForDraggedContent):
(WebCore::InlineTextBox::collectMarkedTextsForDocumentMarkers):
(WebCore::InlineTextBox::paintMarkedTexts):
(WebCore::InlineTextBox::paintMarkedTextBackground):
(WebCore::InlineTextBox::paintMarkedTextForeground):
(WebCore::InlineTextBox::paintMarkedTextDecoration):
(WebCore::InlineTextBox::paintCompositionBackground):
(WebCore::InlineTextBox::MarkerSubrangeStyle::areBackgroundMarkerSubrangeStylesEqual): Deleted.
(WebCore::InlineTextBox::MarkerSubrangeStyle::areForegroundMarkerSubrangeStylesEqual): Deleted.
(WebCore::InlineTextBox::MarkerSubrangeStyle::areDecorationMarkerSubrangeStylesEqual): Deleted.
(WebCore::InlineTextBox::StyledMarkerSubrange::StyledMarkerSubrange): Deleted.
(WebCore::createMarkerSubrangeFromSelectionInBox): Deleted.
(WebCore::InlineTextBox::computeStyleForUnmarkedMarkerSubrange const): Deleted.
(WebCore::InlineTextBox::resolveStyleForSubrange): Deleted.
(WebCore::InlineTextBox::coalesceAdjacentSubranges): Deleted.
(WebCore::InlineTextBox::collectSubrangesForDraggedContent): Deleted.
(WebCore::InlineTextBox::collectSubrangesForDocumentMarkers): Deleted.
(WebCore::InlineTextBox::paintMarkerSubranges): Deleted.
(WebCore::InlineTextBox::paintTextSubrangeBackground): Deleted.
(WebCore::InlineTextBox::paintTextSubrangeForeground): Deleted.
(WebCore::InlineTextBox::paintTextSubrangeDecoration): Deleted.
* rendering/InlineTextBox.h:
(WebCore::InlineTextBox::paintMarkedTexts):
(WebCore::InlineTextBox::paintMarkerSubranges): Deleted.
* rendering/MarkedText.cpp: Renamed from Source/WebCore/rendering/MarkerSubrange.cpp.
(WebCore::subdivide):
* rendering/MarkedText.h: Renamed from Source/WebCore/rendering/MarkerSubrange.h.
(WebCore::MarkedText::MarkedText):
(WebCore::MarkedText::isEmpty const):
(WebCore::MarkedText::operator!= const):
(WebCore::MarkedText::operator== const):

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebCore/MarkedText.cpp: Added.
(WebCore::operator<<):
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebCore/MarkerSubrange.cpp: Removed.

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

19 months ago[Win64] JSCOnly compile error using VS2017 and cmake
commit-queue@webkit.org [Tue, 27 Feb 2018 22:12:59 +0000 (22:12 +0000)]
[Win64] JSCOnly compile error using VS2017 and cmake
https://bugs.webkit.org/show_bug.cgi?id=183176

Patch by Karlen Simonyan <szkarlen@gmail.com> on 2018-02-27
Reviewed by Alex Christensen.

* wtf/PlatformJSCOnly.cmake:

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

19 months agoUnreviewed, roll out r228430.
cdumez@apple.com [Tue, 27 Feb 2018 21:47:57 +0000 (21:47 +0000)]
Unreviewed, roll out r228430.

Roll out r228430 now that it is no longer needed after r228852.

No new tests, initial fix is still covered by WebKit.RespondToPolicyForNavigationResponseAsynchronously
API test.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopLoading):
* loader/NavigationScheduler.cpp:
(WebCore::NavigationScheduler::schedule):

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

19 months agoUnreviewed, marking a number of Web Animations WPT tests non-flaky.
graouts@webkit.org [Tue, 27 Feb 2018 21:08:50 +0000 (21:08 +0000)]
Unreviewed, marking a number of Web Animations WPT tests non-flaky.

* TestExpectations:

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

19 months ago[Web Animations] Correct implementation of pending tasks and promises
graouts@webkit.org [Tue, 27 Feb 2018 21:05:02 +0000 (21:05 +0000)]
[Web Animations] Correct implementation of pending tasks and promises
https://bugs.webkit.org/show_bug.cgi?id=183161

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Update test expectations with progressions (+32 WPT PASS).

* web-platform-tests/web-animations/interfaces/Animatable/animate-no-browsing-context-expected.txt:
* web-platform-tests/web-animations/interfaces/Animation/finish-expected.txt:
* web-platform-tests/web-animations/interfaces/Animation/finished-expected.txt:
* web-platform-tests/web-animations/interfaces/Animation/onfinish-expected.txt:
* web-platform-tests/web-animations/interfaces/Animation/pause-expected.txt:
* web-platform-tests/web-animations/interfaces/Animation/pending-expected.txt:
* web-platform-tests/web-animations/interfaces/Animation/startTime-expected.txt:
* web-platform-tests/web-animations/timing-model/animations/canceling-an-animation-expected.txt:
* web-platform-tests/web-animations/timing-model/animations/pausing-an-animation-expected.txt:
* web-platform-tests/web-animations/timing-model/animations/play-states-expected.txt:
* web-platform-tests/web-animations/timing-model/animations/reversing-an-animation-expected.txt:
* web-platform-tests/web-animations/timing-model/animations/set-the-animation-start-time-expected.txt:
* web-platform-tests/web-animations/timing-model/animations/set-the-target-effect-of-an-animation-expected.txt:
* web-platform-tests/web-animations/timing-model/animations/set-the-timeline-of-an-animation-expected.txt:

Source/WebCore:

We had an incorrect implementation of the spec due to two misinterpretations.

The first one is about pending tasks (play and pause) which the spec says should
be performed by "scheduling a task". In WebCore, this means using postTask() on a
ScriptExecutionContext, such as Document. One of the big practical changes is that
calling play() on an animation correctly sets its startTime to null (unresolved)
immediately after the call to play() returns before setting it to a resolved value
when the task is performed asynchronously. As a result, the playState is now always
accurate.

The second one is about promises where new promises need to be created in certain
situations called out by the spec. We used to call clear() on them, but this merely
resets the fulfillment or rejection state of the promise, while the spec requires
a different object to be returned for the promise. We now create our promises using
makeUniqueRef<> when new promise objects are expected to be created.

This patch also corrects a few smaller bugs and spec compliant issues, called out
below, related to pending tasks and promises uncovered while looking at relevant
WPT tests.

* animation/DocumentTimeline.h: Expose the Document used to create this timeline such
that it may be used by WebAnimation objects registered for this timeline when scheduling
a task is required via postTask().
* animation/WebAnimation.cpp:
(WebCore::WebAnimation::WebAnimation):
(WebCore::WebAnimation::setBindingsStartTime):
(WebCore::WebAnimation::setCurrentTime):
(WebCore::WebAnimation::cancel): Ensure the finished promise has not already been fulfilled
before rejecting it. While the spec does not specifically call this out, a promise may not
be rejected after being fulfilled, and we would hit an ASSERT if we didn't also check that
it was in the correct pending state before attemping to reject it.
(WebCore::WebAnimation::resetPendingTasks):
(WebCore::WebAnimation::finish):
(WebCore::WebAnimation::updateFinishedState):
(WebCore::WebAnimation::finishNotificationSteps):
(WebCore::WebAnimation::play): We used to only check for a pending pause task before canceling
that task, but the spec says to check for either a pending pause or play task (ie. pending())
and to cancel whichever is scheduled.
(WebCore::WebAnimation::runPendingPlayTask): We were missing an assertion called out by the
spec when running a pending task.
(WebCore::WebAnimation::pause):
(WebCore::WebAnimation::runPendingPauseTask):
(WebCore::WebAnimation::updatePendingTasks): We now use postTask() on the animation's associated
timeline's document to schedule pending tasks for which the criteria to run are met, ie. there
is an associated timeline.
* animation/WebAnimation.h:

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

19 months agoMake it possible to set suggestions in extra zoom mode.
commit-queue@webkit.org [Tue, 27 Feb 2018 20:14:01 +0000 (20:14 +0000)]
Make it possible to set suggestions in extra zoom mode.
https://bugs.webkit.org/show_bug.cgi?id=183154
<rdar://problem/35227450>

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2018-02-27
Reviewed by Tim Horton.

In extra zoom mode, when presenting WKFocusedFormControlViewController, make it the inputDelegate for
WKContentView. This is needed to ensure we can capture/cache the suggestions when _WKInputSession's
suggestions is updated. Later, when we present WKTextInputViewController, we can pass the cached
suggestions.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView presentFocusedFormControlViewController:]): Set _focusedFormControlViewController as
    the inputDelegate for WKContentView.
(-[WKContentView dismissFocusedFormControlViewController:]): Null the inputDelegate on dismissal.
(-[WKContentView presentTextInputViewController:]): Pass the suggestions from WKFocusedFormControlViewController to
    WKTextInputViewController when the latter is presented.
(-[WKContentView textInputController:didCommitText:]): Call the new delegate method textInputController:didCommitText:withSuggestion:.
(-[WKContentView textInputController:didCommitText:withSuggestion:]): When a suggestions is selected, insert the
    suggestion which will notify the client.
(-[WKContentView focusedFormControllerDidUpdateSuggestions:]): Called when the suggestion is updated after the input
    view controller is presented.

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

19 months agoStop using deprecated CADisplay SPI
timothy_horton@apple.com [Tue, 27 Feb 2018 18:21:14 +0000 (18:21 +0000)]
Stop using deprecated CADisplay SPI
https://bugs.webkit.org/show_bug.cgi?id=183150
<rdar://problem/37918297>

Reviewed by Simon Fraser.

* pal/spi/cocoa/QuartzCoreSPI.h:
Switch to the more modern way of getting the display name.

* Platform/spi/ios/FrontBoardServicesSPI.h: Added.
* Platform/spi/ios/UIKitSPI.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
* WebKit.xcodeproj/project.pbxproj:
Switch to the more modern way of getting the display name.

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

19 months agoUnreviewed, rolling out r229055.
ryanhaddad@apple.com [Tue, 27 Feb 2018 18:04:36 +0000 (18:04 +0000)]
Unreviewed, rolling out r229055.

Breaks internal builds.

Reverted changeset:

"Stop using deprecated CADisplay SPI"
https://bugs.webkit.org/show_bug.cgi?id=183150
https://trac.webkit.org/changeset/229055

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

19 months agowebkitpy Bugzilla transactions should retry on URLError
aakash_jain@apple.com [Tue, 27 Feb 2018 17:54:13 +0000 (17:54 +0000)]
webkitpy Bugzilla transactions should retry on URLError
https://bugs.webkit.org/show_bug.cgi?id=183156

Reviewed by Alexey Proskuryakov.

* Scripts/webkitpy/common/net/bugzilla/bugzilla.py:
(Bugzilla): Use NetworkTransaction.
(Bugzilla._fetch_bug_page_by_url):
(Bugzilla.bug_id_for_attachment_id):
(Bugzilla.get_bug_id_for_attachment_id):

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

19 months ago[Extra zoom mode] Implement additional SPI for adjusting viewport shrink-to-fit behavior
wenson_hsieh@apple.com [Tue, 27 Feb 2018 17:16:31 +0000 (17:16 +0000)]
[Extra zoom mode] Implement additional SPI for adjusting viewport shrink-to-fit behavior
https://bugs.webkit.org/show_bug.cgi?id=183100
<rdar://problem/37840987>

Reviewed by Tim Horton.

Source/WebCore:

Introduce new customization options to ViewportConfiguration. The first is m_forceHorizontalShrinkToFit, which
(when set to true) forces the viewport to scale using shrink-to-fit heuristics, regardless of whether
"shrink-to-fit=no" is specified via viewport parameters or if content width did not exceed minimum layout size.
The second is m_viewSize, which reflects the true size of the viewport. See WebKit ChangeLog for more details.

Tests: ViewportSizingTests.ForceShrinkToFitViewportOverridesViewportParameters
       ViewportSizingTests.ShrinkToFitViewportWithMinimumAllowedLayoutWidth

* page/ViewportConfiguration.cpp:
(WebCore::ViewportConfiguration::ViewportConfiguration):
(WebCore::ViewportConfiguration::setMinimumLayoutSize):

Plumb the real size of the view alongside the minimum layout size when updating the minimum layout size.

(WebCore::ViewportConfiguration::setForceHorizontalShrinkToFit):
(WebCore::ViewportConfiguration::shouldIgnoreHorizontalScalingConstraints const):

Bail early and return true if forceHorizontalShrinkToFit is set. This forces shrink-to-fit even in cases where
"shrink-to-fit" is set to "no", or content dimensions don't exceed layout dimensions.

(WebCore::ViewportConfiguration::initialScaleFromSize const):

Use view dimensions rather than minimum layout dimensions when computing the initial scale. Minimum layout size
is no longer always equal to the size of the view if the client has specified a minimum allowed layout width. As
such, when computing the initial scale, to ensure that the content (which was laid out using the minimum layout
size) fits within the real viewport, we need to divide real viewport dimensions by content dimensions.

(WebCore::ViewportConfiguration::minimumScale const):

Similarly, use view size instead of minimum layout size to compute minimum scale.

(WebCore::ViewportConfiguration::description const):
* page/ViewportConfiguration.h:

Source/WebKit:

Add new SPI hooks to provide finer control over certain aspects of the shrink-to-fit viewport heuristic.
Currently, in certain cases of iPad multitasking, Safari allows shrinking content to fit by default. This means
that even when "width=device-width" is used, if the contents of the page are too wide to fit within the
viewport's width, we'll adjust the initial scale such that the viewport can fit all of the content.

However, in certain viewport dimensions, this heuristic is insufficient to ensure that pages are laid out and
displayed properly within the viewport. Namely, one could imagine that an element with a hard-coded width that
is larger than the real viewport width would cause all other elements with dimensions relative to the body to be
excessively shrunk down once shrink-to-fit is applied, so the page would still look broken even if the contents
of the page all fit within the viewport.

To mitigate this, we decouple the notions of minimum layout size from the size of the actual viewport (which we
simply refer to as "view size"). This allows us to introduce a mechanism where we lay out the page at a given
minimum layout size that is larger than the size of the view; later, when we determine the initial scale, we
then apply shrink-to-fit scaling using the view size rather than the minimum layout size. This grants us the
ability to lay out content as if our view were large, but still ensure that the contents of the page fit within
the actual view.

* Shared/VisibleContentRectUpdateInfo.cpp:
(WebKit::VisibleContentRectUpdateInfo::encode const):
(WebKit::VisibleContentRectUpdateInfo::decode):
(WebKit::operator<<):
* Shared/VisibleContentRectUpdateInfo.h:
(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
(WebKit::VisibleContentRectUpdateInfo::forceHorizontalShrinkToFit const):
(WebKit::operator==):

Plumb the forceHorizontalShrinkToFit flag through VisibleContentRectUpdateInfo.

* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:

Plumb viewSize through IPC to WebPage.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):

Start off WKWebView flags at their initial values.

(-[WKWebView _minimumAllowedLayoutWidth]):
(-[WKWebView _setMinimumAllowedLayoutWidth:]):

This provides the minimum width at which the page will lay out, such that if the view width dips below this
value, we'll use this minimum allowed layout width instead. 0 by default.

(-[WKWebView activeMinimumLayoutSizes:]):

Refactor this from a static function to a helper method on WKWebView that computes both the minimum layout size
(which takes minimum allowed layout width into account) as well as the real view size. Refactor all call sites
to use this new method, and also propagate the view size down via IPC, alongside the minimum layout size.

(-[WKWebView _dispatchSetMinimumLayoutSize:viewSize:]):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _setMinimumLayoutSizeOverride:]):
(-[WKWebView _setForceHorizontalViewportShrinkToFit:]):
(-[WKWebView _forceHorizontalViewportShrinkToFit]):

Setting this flag to YES forces us to always shrink-to-fit in the horizontal axis. NO by default.

(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _endAnimatedResize]):
(activeMinimumLayoutSize): Deleted.

More refactoring to replace activeMinimumLayoutSize() with -activeMinimumLayoutSizes:.

(-[WKWebView _dispatchSetMinimumLayoutSize:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):

Pass _forceHorizontalViewportShrinkToFit into the visible content rect update.

* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::dynamicViewportSizeUpdate):
(WebKit::WebPageProxy::setViewportConfigurationMinimumLayoutSize):

Plumb viewSize alongside the existing minimumLayoutSize.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_credentialsMessenger):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::setViewportConfigurationMinimumLayoutSize):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::WebPage::updateVisibleContentRects):

Set forceHorizontalShrinkToFit on the viewport configuration here.

Tools:

Add API tests that exercise -_setMinimumAllowedLayoutWidth: and -_setForceHorizontalViewportShrinkToFit:. See
WebKit ChangeLog for more detail.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/ios/ViewportSizingTests.mm: Added.
(TestWebKitAPI::while):
(viewportTestPageMarkup):
(TestWebKitAPI::TEST):

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

19 months agoUnreviewed, fix the debug build after r228877.
wenson_hsieh@apple.com [Tue, 27 Feb 2018 16:43:22 +0000 (16:43 +0000)]
Unreviewed, fix the debug build after r228877.

In the case where CAN_DISALLOW_USER_INSTALLED_FONTS is enabled, this function doesn't return anything when
allowUserInstalledFonts != AllowUserInstalledFonts::No. Fix the build by moving `return nullptr;` back out of
the `#else`.

* platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::installedFontMandatoryAttributes):

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

19 months agoPotential privacy issue: DNS prefetching can be re-enabled
commit-queue@webkit.org [Tue, 27 Feb 2018 16:39:11 +0000 (16:39 +0000)]
Potential privacy issue: DNS prefetching can be re-enabled
https://bugs.webkit.org/show_bug.cgi?id=182924

Patch by Milan Crha <mcrha@redhat.com> on 2018-02-27
Reviewed by Michael Catanzaro.

* dom/Document.cpp:
(WebCore::Document::parseDNSPrefetchControlHeader):

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

19 months agoRelayout frames after AsyncFrameScrolling or FrameFlattening option is changed
fred.wang@free.fr [Tue, 27 Feb 2018 14:00:02 +0000 (14:00 +0000)]
Relayout frames after AsyncFrameScrolling or FrameFlattening option is changed
https://bugs.webkit.org/show_bug.cgi?id=183081

Patch by Frederic Wang <fwang@igalia.com> on 2018-02-27
Reviewed by Antonio Gomes.

Add a test to check whether an iframe changes its flattening status after one of the option
AsyncFrameScrolling/FrameFlattening is enabled/disabled.

* platform/ios-simulator/TestExpectations: Remove failure.
* platform/ios/fast/frames/flattening/iframe-flattening-async-frame-scrolling-dynamic-expected.txt: Added.
* platform/ios/fast/frames/flattening/iframe-flattening-async-frame-scrolling-dynamic.html: Added.

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

19 months ago[Web Animations] Implement the procedure to set the target effect of an animation
graouts@webkit.org [Tue, 27 Feb 2018 13:03:03 +0000 (13:03 +0000)]
[Web Animations] Implement the procedure to set the target effect of an animation
https://bugs.webkit.org/show_bug.cgi?id=183146

Reviewed by Dean Jackson.

We only had a partial implementation of setEffect() and we now update it to cover the entire
implementation as mandated by the spec. While this doesn't yield any WPT results changes, this
patch will help getting a significant number of new PASS results when we get around to implement
correct support for async procedures (pending pause/play tasks and promises) in the next patch.

* animation/WebAnimation.cpp:
(WebCore::WebAnimation::setEffect):

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

19 months ago[Web Animations] Update the playState implementation
graouts@webkit.org [Tue, 27 Feb 2018 13:00:29 +0000 (13:00 +0000)]
[Web Animations] Update the playState implementation
https://bugs.webkit.org/show_bug.cgi?id=183145

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Update test expectations with slightly different failures later on in a couple of tests.

* web-platform-tests/web-animations/timing-model/animations/set-the-timeline-of-an-animation-expected.txt:

Source/WebCore:

The Web Animations spec has changed since we first implemented the playState property and the "pending"
enum value has been dropped since then (there is a separate "pending" property which we also implement).
We update our implementation to match the latest spec text. This does not change WPT test results a lot,
but this patch will help getting a significant number of new PASS results when we get around to implementing
correct support for async procedures (pending pause/play tasks and promises) in a couple of patches.

* animation/WebAnimation.cpp:
(WebCore::WebAnimation::playState const):
* animation/WebAnimation.h:
* animation/WebAnimation.idl:

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

19 months agoUnreviewed, skip FTL tests if FTL is disabled
utatane.tea@gmail.com [Tue, 27 Feb 2018 09:36:28 +0000 (09:36 +0000)]
Unreviewed, skip FTL tests if FTL is disabled
https://bugs.webkit.org/show_bug.cgi?id=183071

JSTests:

* stress/has-indexed-property-array-storage-ftl.js:
* stress/has-indexed-property-slow-put-array-storage-ftl.js:

Tools:

* Scripts/run-jsc-stress-tests:

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

19 months agoAddress post-review comment after r229049.
wenson_hsieh@apple.com [Tue, 27 Feb 2018 08:06:41 +0000 (08:06 +0000)]
Address post-review comment after r229049.
https://bugs.webkit.org/show_bug.cgi?id=183142

Reviewed by Tim Horton.

Wrap a newly added string literal with ASCIILiteral.

* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::extraDefaultStyleSheet):

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

19 months agoStop using deprecated CADisplay SPI
timothy_horton@apple.com [Tue, 27 Feb 2018 08:00:57 +0000 (08:00 +0000)]
Stop using deprecated CADisplay SPI
https://bugs.webkit.org/show_bug.cgi?id=183150
<rdar://problem/37918297>

Reviewed by Simon Fraser.

Source/WebCore/PAL:

* pal/spi/cocoa/QuartzCoreSPI.h:
Switch to the more modern way of getting the display name.

Source/WebKit:

* Platform/spi/ios/FrontBoardServicesSPI.h: Added.
* Platform/spi/ios/UIKitSPI.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
* WebKit.xcodeproj/project.pbxproj:
Switch to the more modern way of getting the display name.

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

19 months agoModernize FINALIZE_CODE and peer macros to use __VA_ARGS__ arguments.
mark.lam@apple.com [Tue, 27 Feb 2018 07:50:54 +0000 (07:50 +0000)]
Modernize FINALIZE_CODE and peer macros to use __VA_ARGS__ arguments.
https://bugs.webkit.org/show_bug.cgi?id=183159
<rdar://problem/37930837>

Reviewed by Keith Miller.

Source/JavaScriptCore:

* assembler/LinkBuffer.h:
* assembler/testmasm.cpp:
(JSC::compile):
* b3/B3Compile.cpp:
(JSC::B3::compile):
* b3/air/testair.cpp:
* b3/testb3.cpp:
(JSC::B3::testEntrySwitchSimple):
(JSC::B3::testEntrySwitchNoEntrySwitch):
(JSC::B3::testEntrySwitchWithCommonPaths):
(JSC::B3::testEntrySwitchWithCommonPathsAndNonTrivialEntrypoint):
(JSC::B3::testEntrySwitchLoop):
* bytecode/InlineAccess.cpp:
(JSC::linkCodeInline):
(JSC::InlineAccess::rewireStubAsJump):
* bytecode/PolymorphicAccess.cpp:
(JSC::PolymorphicAccess::regenerate):
* dfg/DFGJITFinalizer.cpp:
(JSC::DFG::JITFinalizer::finalize):
(JSC::DFG::JITFinalizer::finalizeFunction):
* dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::compileOSRExit):
* dfg/DFGThunks.cpp:
(JSC::DFG::osrExitThunkGenerator):
(JSC::DFG::osrExitGenerationThunkGenerator):
(JSC::DFG::osrEntryThunkGenerator):
* ftl/FTLJITFinalizer.cpp:
(JSC::FTL::JITFinalizer::finalizeCommon):
* ftl/FTLLazySlowPath.cpp:
(JSC::FTL::LazySlowPath::generate):
* ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileStub):
* ftl/FTLThunks.cpp:
(JSC::FTL::genericGenerationThunkGenerator):
(JSC::FTL::slowPathCallThunkGenerator):
* jit/ExecutableAllocator.cpp:
* jit/JIT.cpp:
(JSC::JIT::link):
* jit/JITMathIC.h:
(JSC::isProfileEmpty):
* jit/JITOpcodes.cpp:
(JSC::JIT::privateCompileHasIndexedProperty):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::privateCompileHasIndexedProperty):
* jit/JITPropertyAccess.cpp:
(JSC::JIT::stringGetByValStubGenerator):
(JSC::JIT::privateCompileGetByVal):
(JSC::JIT::privateCompileGetByValWithCachedId):
(JSC::JIT::privateCompilePutByVal):
(JSC::JIT::privateCompilePutByValWithCachedId):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::stringGetByValStubGenerator):
* jit/JITStubRoutine.h:
* jit/Repatch.cpp:
(JSC::linkPolymorphicCall):
* jit/SpecializedThunkJIT.h:
(JSC::SpecializedThunkJIT::finalize):
* jit/ThunkGenerators.cpp:
(JSC::throwExceptionFromCallSlowPathGenerator):
(JSC::linkCallThunkGenerator):
(JSC::linkPolymorphicCallThunkGenerator):
(JSC::virtualThunkFor):
(JSC::nativeForGenerator):
(JSC::arityFixupGenerator):
(JSC::unreachableGenerator):
(JSC::boundThisNoArgsFunctionCallGenerator):
* llint/LLIntThunks.cpp:
(JSC::LLInt::generateThunkWithJumpTo):
* wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::complete):
* wasm/WasmBinding.cpp:
(JSC::Wasm::wasmToWasm):
* wasm/WasmOMGPlan.cpp:
(JSC::Wasm::OMGPlan::work):
* wasm/WasmThunks.cpp:
(JSC::Wasm::throwExceptionFromWasmThunkGenerator):
(JSC::Wasm::throwStackOverflowFromWasmThunkGenerator):
(JSC::Wasm::triggerOMGTierUpThunkGenerator):
* wasm/js/WasmToJS.cpp:
(JSC::Wasm::handleBadI64Use):
(JSC::Wasm::wasmToJS):
* yarr/YarrJIT.cpp:
(JSC::Yarr::YarrGenerator::compile):

Source/WebCore:

No new tests needed because this is just a refactoring patch.

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

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

19 months ago[FTL] Support PutByVal(ArrayStorage/SlowPutArrayStorage)
utatane.tea@gmail.com [Tue, 27 Feb 2018 07:32:14 +0000 (07:32 +0000)]
[FTL] Support PutByVal(ArrayStorage/SlowPutArrayStorage)
https://bugs.webkit.org/show_bug.cgi?id=182965

Reviewed by Saam Barati.

JSTests:

* stress/put-by-val-array-storage.js: Added.
(shouldBe):
(testArrayStorageInBounds):
* stress/put-by-val-direct-out-of-bounds-setter.js: Added.
(shouldBe):
(testInt32.createBuiltin):
(set for):
* stress/put-by-val-slow-put-array-storage.js: Added.
(shouldBe):
(testArrayStorageInBounds):

Source/JavaScriptCore:

This patch extends FTL coverage for PutByVal by adding ArrayStorage and SlwoPutArrayStorage support.
Basically large part of the patch is porting from DFG code. Since PutByVal already emits CheckInBounds
for InBounds case, we do not have OutOfBounds check for that case.
This is the last change for FTL to support all the types of DFG nodes except for CreateThis.

* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileDoublePutByVal):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::contiguousPutByValOutOfBounds):
For consistency, we use operationPutByValXXX and operationPutByValDirectXXX.
But except for SlowPutArrayStorage case, basically it is meaningless since
we do not have indexed accessors.

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

19 months agoRemoved references to files that were removed in r228912.
mitz@apple.com [Tue, 27 Feb 2018 03:00:50 +0000 (03:00 +0000)]
Removed references to files that were removed in r228912.

* WebCore.xcodeproj/project.pbxproj: Removed references to SourcesIOS.txt and SourcesMac.txt.

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

19 months ago[Extra zoom mode] Tweak UA stylesheet to improve legibility of rendered text
wenson_hsieh@apple.com [Tue, 27 Feb 2018 01:32:06 +0000 (01:32 +0000)]
[Extra zoom mode] Tweak UA stylesheet to improve legibility of rendered text
https://bugs.webkit.org/show_bug.cgi?id=183142
<rdar://problem/37912966>

Reviewed by Tim Horton.

Force text-size-adjust and hyphens to be always on in EXTRA_ZOOM_MODE. To accomplish this, we override the extra
style sheet in RenderTheme to include these two style rules.

* rendering/RenderThemeIOS.h:
* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::extraDefaultStyleSheet):

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

19 months agoFix WebCore includes within WebKitLegacy
don.olmstead@sony.com [Tue, 27 Feb 2018 01:31:41 +0000 (01:31 +0000)]
Fix WebCore includes within WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=183147

Reviewed by Tim Horton.

Source/WebCore:

No new tests. No change in behavior.

* PlatformWin.cmake:
* platform/win/GDIUtilities.h:

Source/WebKitLegacy:

* CMakeLists.txt:

Source/WebKitLegacy/win:

* Plugins/PluginDatabase.cpp:
* Plugins/PluginDatabaseWin.cpp:
* Plugins/PluginDebug.cpp:
* Plugins/PluginDebug.h:
* Plugins/PluginMainThreadScheduler.cpp:
* Plugins/PluginMessageThrottlerWin.cpp:
* Plugins/PluginMessageThrottlerWin.h:
* Plugins/PluginPackage.cpp:
* Plugins/PluginPackage.h:
* Plugins/PluginPackageWin.cpp:
* Plugins/PluginStream.cpp:
* Plugins/PluginStream.h:
* Plugins/PluginView.cpp:
* Plugins/PluginView.h:
* Plugins/PluginViewWin.cpp:
* Plugins/npapi.cpp:
* WebCoreSupport/WebChromeClient.cpp:
* WebCoreSupport/WebContextMenuClient.cpp:
* WebCoreSupport/WebFrameLoaderClient.cpp:
* WebCoreSupport/WebInspectorClient.cpp:
* WebCoreSupport/WebPlatformStrategies.cpp:
* WebFrame.cpp:
* WebKitMessageLoop.cpp:
* WebView.cpp:
* storage/WebDatabaseProvider.cpp:

Tools:

* MiniBrowser/win/ResourceLoadDelegate.cpp:

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

19 months agoAdd some more release logging related to DocumentWriter::addData crash
commit-queue@webkit.org [Tue, 27 Feb 2018 00:20:01 +0000 (00:20 +0000)]
Add some more release logging related to DocumentWriter::addData crash
https://bugs.webkit.org/show_bug.cgi?id=183141

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-26
Reviewed by Chris Dumez.

No change of behavior.
Add some additional release logging to verify whether DocumentWriter::begin was called and exited before updating its state.

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::commitData):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::begin):
* loader/DocumentWriter.h:

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

19 months agoCaches::m_storage should be set to null in case of error at initialization time
commit-queue@webkit.org [Tue, 27 Feb 2018 00:04:06 +0000 (00:04 +0000)]
Caches::m_storage should be set to null in case of error at initialization time
https://bugs.webkit.org/show_bug.cgi?id=183068

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-26
Reviewed by Chris Dumez.

In case of error, we need to set m_storage back to nullptr so that
next tries to initialize it will restart from scratch.
If we do not set it to nullptr, we end up storing the initialize
callback in a queue and the callback will never be called.

This is difficult to test as we need the following conditions:
- we need to have an error case, like a disk writing error
- we need the web app to open a cache in two different pages/frames at about the same time.

* NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::Caches::initialize):

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

19 months agoWeb Inspector: Canvas Tab: Scroll into view / Inspect element if Canvas has DOM node
webkit@devinrousso.com [Mon, 26 Feb 2018 23:52:09 +0000 (23:52 +0000)]
Web Inspector: Canvas Tab: Scroll into view / Inspect element if Canvas has DOM node
https://bugs.webkit.org/show_bug.cgi?id=181769

Reviewed by Matt Baker.

* Localizations/en.lproj/localizedStrings.js:

* UserInterface/Images/Markup.svg: Added.

* UserInterface/Views/CanvasContentView.js:
(WI.CanvasContentView):
(WI.CanvasContentView.prototype.initialLayout):
(WI.CanvasContentView.prototype._canvasElementButtonClicked):

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

19 months agoUnreviewed, rolling out r226330.
commit-queue@webkit.org [Mon, 26 Feb 2018 23:20:22 +0000 (23:20 +0000)]
Unreviewed, rolling out r226330.
https://bugs.webkit.org/show_bug.cgi?id=183152

incorrectly assumes enumeration callback happens once
(Requested by alexchristensen on #webkit).

Reverted changeset:

"Use BlockPtrs and lambdas instead of new/delete to pass
parameters to blocks in WebViewImpl::performDragOperation"
https://bugs.webkit.org/show_bug.cgi?id=180795
https://trac.webkit.org/changeset/226330

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

19 months agoFix up ChangeLog description for r229041 to clarify that we are skipping tests on...
dbates@webkit.org [Mon, 26 Feb 2018 21:38:39 +0000 (21:38 +0000)]
Fix up ChangeLog description for r229041 to clarify that we are skipping tests on GTK and WPE.

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

19 months agotestRunner.setWindowIsKey() has no effect on the web process side in WebKit2
dbates@webkit.org [Mon, 26 Feb 2018 21:31:32 +0000 (21:31 +0000)]
testRunner.setWindowIsKey() has no effect on the web process side in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=81736
<rdar://problem/11088268>

Remove some tests from the platform-independent WebKit2 TestExpectation file that
now pass on iOS and Mac following r189959 and r211910, respectively. Mark these
tests are failing on GTK and WPE. For GTK we need to fix <https://bugs.webkit.org/show_bug.cgi?id=183140>
For WPE we need to fix <https://bugs.webkit.org/show_bug.cgi?id=183144>.

The test fast/selectors/querySelector-window-inactive.html still fails on WebKit2,
but for a different reason. See <https://bugs.webkit.org/show_bug.cgi?id=183140>
for more details.

* platform/gtk/TestExpectations:
* platform/wk2/TestExpectations:
* platform/wpe/TestExpectations:

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

19 months ago[Web Animations] Implement the procedure to set the start time
graouts@webkit.org [Mon, 26 Feb 2018 21:15:09 +0000 (21:15 +0000)]
[Web Animations] Implement the procedure to set the start time
https://bugs.webkit.org/show_bug.cgi?id=183137

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Update test expectations with progressions.

* web-platform-tests/web-animations/timing-model/animations/set-the-animation-start-time-expected.txt:

Source/WebCore:

Implement the procedure to set the start time as setBindingsStartTime() and use the setStartTime() method as
an internal method to set the m_startTime instance variable and invalidate the timing model rather than run
the entire procedure which should only be called when setting the "startTime" property through the JS API.

* animation/WebAnimation.cpp:
(WebCore::WebAnimation::setTimeline):
(WebCore::WebAnimation::setBindingsStartTime):
(WebCore::WebAnimation::setStartTime):
(WebCore::WebAnimation::silentlySetCurrentTime):
(WebCore::WebAnimation::finish):
(WebCore::WebAnimation::updateFinishedState):
(WebCore::WebAnimation::runPendingPlayTask):
(WebCore::WebAnimation::runPendingPauseTask):

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

19 months agoRelease assertion in WebPage::updatePreferences
rniwa@webkit.org [Mon, 26 Feb 2018 20:44:50 +0000 (20:44 +0000)]
Release assertion in WebPage::updatePreferences
https://bugs.webkit.org/show_bug.cgi?id=183075

Reviewed by Youenn Fablet and Chris Dumez.

Replaced the release assertion added in r228589 with a more graceful disabling of the feature when the entitlement is missing.

* StorageProcess/StorageProcess.cpp:
(WebKit::StorageProcess::didReceiveMessage): Added an early exit with an entitlement check to disable the feature.
(WebKit::StorageProcess::initializeWebsiteDataStore): Ditto.
(WebKit::StorageProcess::createStorageToWebProcessConnection): Replaced the release assertion with a debug assertion.
(WebKit::StorageProcess::swServerForSession): Removed the assertion. This code can be reached when the service worker is disabled.
(WebKit::StorageProcess::registerSWServerConnection): Replaced the release assertion with a debug assertion.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Disable the feature instead of crashing when the entitlement is missing.

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

19 months agovalidateStackAccess should not validate if the offset is within the stack bounds
sbarati@apple.com [Mon, 26 Feb 2018 20:42:39 +0000 (20:42 +0000)]
validateStackAccess should not validate if the offset is within the stack bounds
https://bugs.webkit.org/show_bug.cgi?id=183067
<rdar://problem/37749988>

Reviewed by Mark Lam.

JSTests:

* stress/dont-validate-stack-offset-in-b3-because-it-might-be-guarded-by-control-flow.js: Added.
(assert):
(test.a):
(test.b):
(test):

Source/JavaScriptCore:

The validation rule was saying that any load from the stack must be
within the stack bounds of the frame. However, it's natural for a user
of B3 to emit code that may be outside of B3's stack bounds, but guard
such a load with a branch. The FTL does exactly this with GetMyArgumentByVal.
B3 is wrong to assert that this is a static property about all stack loads.

* b3/B3Validate.cpp:

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

19 months ago[Curl] Cookies are not being added to the Cookie field in Request Headers
commit-queue@webkit.org [Mon, 26 Feb 2018 20:02:40 +0000 (20:02 +0000)]
[Curl] Cookies are not being added to the Cookie field in Request Headers
https://bugs.webkit.org/show_bug.cgi?id=183095

Patch by Christopher Reid <chris.reid@sony.com> on 2018-02-26
Reviewed by Alex Christensen.

Populating the Cookie request header field now that cookies are no longer handled in libcurl.

* platform/network/curl/CookieJarCurlDatabase.cpp: Renaming the httpOnly variable as its actual use wasn't clear
* platform/network/curl/ResourceHandleCurl.cpp:

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

19 months agoRegression(r223431): Crash under didReceiveChallenge in NetworkSessionCocoa
cdumez@apple.com [Mon, 26 Feb 2018 19:53:09 +0000 (19:53 +0000)]
Regression(r223431): Crash under didReceiveChallenge in NetworkSessionCocoa
https://bugs.webkit.org/show_bug.cgi?id=183134
<rdar://problem/36339049>

Reviewed by Alex Christensen.

Like other delegates functions in this file, it is possible for didReceiveChallenge to get called
after _session has been nulled out. Other delegate functions already had early returns when
_session is null. However, such early return was missing in didReceiveChallenge.

This patch ends the early return to didReceiveChallenge so that we do not end up calling
_session->downloadID(taskIdentifier) on a null _session.

* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):

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

19 months ago[Web Animations] Ensure setting the hold time invalidates the timing model
graouts@webkit.org [Mon, 26 Feb 2018 19:43:50 +0000 (19:43 +0000)]
[Web Animations] Ensure setting the hold time invalidates the timing model
https://bugs.webkit.org/show_bug.cgi?id=183136

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Update test expectations with progressions.

* web-platform-tests/css/css-multicol/multicol-gap-animation-001-expected.txt:
* web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt:
* web-platform-tests/web-animations/interfaces/Animation/cancel-expected.txt:
* web-platform-tests/web-animations/interfaces/Animation/finish-expected.txt:
* web-platform-tests/web-animations/interfaces/KeyframeEffect/iterationComposite-expected.txt:

Source/WebCore:

We used to always set the m_holdTime member variable directly, but the computation of the currentTime
depends on the value of m_holdTime, so setting the hold time should invalidate the timing model as well
as setting the m_holdTime member variable. In this patch we add a new setHoldTime() private method that
sets the member variable and invalidates the timing model.

* animation/WebAnimation.cpp:
(WebCore::WebAnimation::setTimeline):
(WebCore::WebAnimation::setHoldTime):
(WebCore::WebAnimation::silentlySetCurrentTime):
(WebCore::WebAnimation::setCurrentTime):
(WebCore::WebAnimation::cancel):
(WebCore::WebAnimation::finish):
(WebCore::WebAnimation::updateFinishedState):
(WebCore::WebAnimation::play):
(WebCore::WebAnimation::runPendingPlayTask):
(WebCore::WebAnimation::pause):
(WebCore::WebAnimation::runPendingPauseTask):
* animation/WebAnimation.h:

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

19 months ago[WinCairo] WebKit2_C.h should be included for TestWebKit
commit-queue@webkit.org [Mon, 26 Feb 2018 19:08:33 +0000 (19:08 +0000)]
[WinCairo] WebKit2_C.h should be included for TestWebKit
https://bugs.webkit.org/show_bug.cgi?id=182682

Patch by Yousuke Kimoto <yousuke.kimoto@sony.com> on 2018-02-26
Reviewed by Yusuke Suzuki.

.:

Added a new definition "BUILDING_WIN_CAIRO_WEBKIT" to specify
the wincairo webkit build.

* Source/cmake/OptionsWinCairo.cmake:

Tools:

* TestWebKitAPI/config.h:

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

19 months agoMessagePort is not always destroyed in the right thread
commit-queue@webkit.org [Mon, 26 Feb 2018 18:01:12 +0000 (18:01 +0000)]
MessagePort is not always destroyed in the right thread
https://bugs.webkit.org/show_bug.cgi?id=183053

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-26
Reviewed by Chris Dumez.

Source/WebCore:

Make existingMessagePortForIdentifier take a lambda so that we hold the lock until there
is no longer a need to keep the MessagePort around.
This is very time sensitive and does not happen a lot when running WPT tests.

Update existing call sites to pass a lambda.

* dom/MessagePort.cpp:
(WebCore::MessagePort::existingMessagePortForIdentifier):
* dom/MessagePort.h:
* dom/messageports/MessagePortChannelProviderImpl.cpp:
(WebCore::MessagePortChannelProviderImpl::postMessageToRemote):
(WebCore::MessagePortChannelProviderImpl::checkProcessLocalPortForActivity):

Source/WebKit:

Update code to pass a lambda to MessagePort::existingMessagePortForIdentifier.

* WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp:
(WebKit::WebMessagePortChannelProvider::checkProcessLocalPortForActivity):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::messagesAvailableForPort):

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

19 months agoUnreviewed, rolling out r226745.
commit-queue@webkit.org [Mon, 26 Feb 2018 17:38:14 +0000 (17:38 +0000)]
Unreviewed, rolling out r226745.
https://bugs.webkit.org/show_bug.cgi?id=183132

This is breaking some websites (Requested by youenn on
#webkit).

Reverted changeset:

"Use no-cache fetch mode when loading main documents with
location.reload()"
https://bugs.webkit.org/show_bug.cgi?id=181285
https://trac.webkit.org/changeset/226745

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

19 months agoUnreviewed, USE_GSTREAMER_PLAYBIN3 build fix.
philn@webkit.org [Mon, 26 Feb 2018 16:25:45 +0000 (16:25 +0000)]
Unreviewed, USE_GSTREAMER_PLAYBIN3 build fix.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
There is no such ENABLE_GSTREAMER_PLAYBIN3.

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

19 months agoUnreviewed, manual rollout of r228866 causing EGL_BAD_CONTEXT errors
philn@webkit.org [Mon, 26 Feb 2018 14:34:41 +0000 (14:34 +0000)]
Unreviewed, manual rollout of r228866 causing EGL_BAD_CONTEXT errors

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::ensureGstGLContext):
Create an EGL display, even in Wayland.

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

19 months ago[WebVR][OpenVR] Retrieve displayId and the z-depth of eye view frustum
svillar@igalia.com [Mon, 26 Feb 2018 13:37:55 +0000 (13:37 +0000)]
[WebVR][OpenVR] Retrieve displayId and the z-depth of eye view frustum
https://bugs.webkit.org/show_bug.cgi?id=182999

Reviewed by Žan Doberšek.

Retrieve the z-depth of the eye view frustum and the HMD unique id.
The unique identifier is generated by the VRPlatormManager whereas
we use the default values from the spec for the z-depth (those can
be changed by applications later via JavaScript).

Once this lands the only remaining data to be retrieved from VR
backends for VRDisplay is the pose (getPose() call) and the frame
data (getFrameData() call).

* Modules/webvr/VRDisplay.cpp:
(WebCore::VRDisplay::VRDisplay):
(WebCore::VRDisplay::displayId const): Deleted.
(WebCore::VRDisplay::displayName const): Deleted.
(WebCore::VRDisplay::depthNear const): Deleted.
(WebCore::VRDisplay::setDepthNear): Deleted.
(WebCore::VRDisplay::depthFar const): Deleted.
(WebCore::VRDisplay::setDepthFar): Deleted.
* Modules/webvr/VRDisplay.h:
(WebCore::VRDisplay::displayId const): Moved implementation from
source file.
(WebCore::VRDisplay::displayName const): Ditto.
(WebCore::VRDisplay::depthNear const):
(WebCore::VRDisplay::setDepthNear):
(WebCore::VRDisplay::depthFar const):
(WebCore::VRDisplay::setDepthFar):
* platform/vr/VRManager.cpp:
(WebCore::VRManager::generateUniqueDisplayIdentifier):
* platform/vr/VRManager.h:
* platform/vr/VRPlatformDisplay.h:
* platform/vr/openvr/VRPlatformDisplayOpenVR.cpp:
(WebCore::VRPlatformDisplayOpenVR::VRPlatformDisplayOpenVR):

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

19 months agoFix build error with !LOG_DISABLED
cturner@igalia.com [Mon, 26 Feb 2018 13:07:41 +0000 (13:07 +0000)]
Fix build error with !LOG_DISABLED
https://bugs.webkit.org/show_bug.cgi?id=183049

Reviewed by Philippe Normand.

The following error message was being reported when doing a
release build with -DLOG_DISABLED=0:

../../Source/WebCore/dom/messageports/MessagePortChannel.cpp: In member function ‘void WebCore::MessagePortChannel::entanglePortWithProcess(const WebCore::MessagePortIdentifier&, WebCore::ProcessIdentifier)’:

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

19 months ago[GStreamer] User current executable name instead of g_get_prgname() for gst_init
carlosgc@webkit.org [Mon, 26 Feb 2018 09:43:50 +0000 (09:43 +0000)]
[GStreamer] User current executable name instead of g_get_prgname() for gst_init
https://bugs.webkit.org/show_bug.cgi?id=183119

Reviewed by Philippe Normand.

Source/WebCore:

g_get_prgname() is only set for programs using GOptionContext, calling gtk_init or explicitly calling
g_set_prgname(). Use WTF::getCurrentExecutableName() instead.

* platform/graphics/gstreamer/GStreamerUtilities.cpp:
(WebCore::initializeGStreamer):

Source/WTF:

Add getCurrentExecutableName() helper function to get the name of the current executable.

* wtf/glib/GLibUtilities.cpp:
(getCurrentExecutableName): Get the basename of getCurrentExecutablePath() falling back to g_get_prgname().
* wtf/glib/GLibUtilities.h:

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

19 months agoUnreviewed, skip FTL tests if FTL is disabled
utatane.tea@gmail.com [Mon, 26 Feb 2018 08:57:48 +0000 (08:57 +0000)]
Unreviewed, skip FTL tests if FTL is disabled
https://bugs.webkit.org/show_bug.cgi?id=183071

* stress/has-indexed-property-array-storage-ftl.js:
* stress/has-indexed-property-slow-put-array-storage-ftl.js:

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

19 months ago[CMake][OpenVR] Linkage errors happen because only OpenVR is compiled with -stdlib...
commit-queue@webkit.org [Mon, 26 Feb 2018 08:01:12 +0000 (08:01 +0000)]
[CMake][OpenVR] Linkage errors happen because only OpenVR is compiled with -stdlib=libc++ if Clang is used
https://bugs.webkit.org/show_bug.cgi?id=183116

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2018-02-26
Reviewed by Žan Doberšek.

OpenVR has a option USE_LIBCXX to enable/disable that behavior. Let's disable it.

* Source/CMakeLists.txt: Added a option command for USE_LIBCXX to set OFF as default.

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

19 months ago[WK2] http/tests/navigation/new-window-redirect-history.html crashes
commit-queue@webkit.org [Mon, 26 Feb 2018 02:50:31 +0000 (02:50 +0000)]
[WK2] http/tests/navigation/new-window-redirect-history.html crashes
https://bugs.webkit.org/show_bug.cgi?id=127683

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2018-02-25
Reviewed by Dan Bernstein.

Tools:

m_previousTestBackForwardListItem was null for the new window.
m_previousTestBackForwardListItem is initialized only for the main
window in InjectedBundlePage::prepare.

* WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::dumpBackForwardList):
Do null-check of m_previousTestBackForwardListItem.

LayoutTests:

* platform/ios-wk2/TestExpectations:
Unmarked http/tests/navigation/new-window-redirect-history.html.
* platform/wk2/TestExpectations: Ditto.

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

19 months agoVarious crashes in WebKitTestRunner, especially when system is under heavy load
ap@apple.com [Mon, 26 Feb 2018 02:18:24 +0000 (02:18 +0000)]
Various crashes in WebKitTestRunner, especially when system is under heavy load
https://bugs.webkit.org/show_bug.cgi?id=183109

Reviewed by Tim Horton.

WebKitTestRunner had many places where it sent messages to WebContent with a timeout,
but it didn't handle the timeout when it did occur. Nearly all of those would result
in logic errors and failing tests, and most would even result in stack corruption,
as the response handler modified local variables.

There is only one timeout scenario that we actually mean to handle in WKTR. That's
when a test freezes after it is done (e.g. an infinite loop in beforeunload) - we don't
want to blame the next test for freezing, so we silently relaunch WebContent.
Everything else is cargo cult code that never worked.

This patch addresses the crashes, and actually makes tests pass a lot more on an
overloaded system.

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetStateToConsistentValues): Moved m_doneResetting assignment
to where it's actually needed, for clarity.
(WTR::TestController::reattachPageToWebProcess): This function used to always hit
and ignore message timeout, as m_doneResetting is only updated by navigation callback
when the state is Resetting. This change makes it faster.
(WTR::TestController::platformResetStateToConsistentValues): Style fix.
(WTR::TestController::clearServiceWorkerRegistrations): Timing out here wasn't
handled in a meaningful manner, and would even corrupt the stack.
(WTR::TestController::clearDOMCache): Ditto.
(WTR::TestController::clearDOMCaches): Ditto.
(WTR::TestController::hasDOMCache): Ditto.
(WTR::TestController::domCacheSize): Ditto.
(WTR::TestController::isStatisticsPrevalentResource): Ditto.
(WTR::TestController::isStatisticsRegisteredAsSubFrameUnder): Ditto.
(WTR::TestController::isStatisticsRegisteredAsRedirectingTo): Ditto.
(WTR::TestController::isStatisticsHasHadUserInteraction): Ditto.
(WTR::TestController::isStatisticsGrandfathered): Ditto.
(WTR::TestController::statisticsUpdateCookiePartitioning): Ditto.
(WTR::TestController::statisticsSetShouldPartitionCookiesForHost): Ditto.
(WTR::TestController::statisticsClearInMemoryAndPersistentStore): Ditto.
(WTR::TestController::statisticsClearInMemoryAndPersistentStoreModifiedSinceHours): Ditto.
(WTR::TestController::statisticsClearThroughWebsiteDataRemoval): Ditto.

* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::shortTimeout const): Made shortTimeout shorter (on a hunch).
(WTR::TestInvocation::invoke): Removed a timeout waiting for initial response. There
is never a logical reason for such a timeout, as we always have a new or responsive
WebContent process here.
(WTR::TestInvocation::dumpResults): Removed another timeout that we don't know how to
properly handle.
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle): Removed assignment to
m_errorMessage, which had no effect in this context.

* WebKitTestRunner/TestInvocation.h: Removed no longer used code.

* WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::cocoaResetStateToConsistentValues): Use a named constant for
no timeout.

* WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformConfigureViewForTest): Removed a useless timeout.
Not sure if timing out here would corrupt the stack or not, but there is no reason
to impose arbitrary limits on individual steps of a test.

* WebKitTestRunner/mac/TestControllerMac.mm:
(WTR::TestController::platformConfigureViewForTest): Use a named constant for
no timeout.

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

19 months agoFont smoothing doesn't get disabled if the preference is set before launching WebCont...
ap@apple.com [Mon, 26 Feb 2018 02:13:09 +0000 (02:13 +0000)]
Font smoothing doesn't get disabled if the preference is set before launching WebContent process
https://bugs.webkit.org/show_bug.cgi?id=183108

Reviewed by Tim Horton.

* WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess):
Fix the bug. While at it, also avoid the anti-pattern in setAlwaysUsesComplexTextCodePath.

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

19 months ago[Extra zoom mode] Disable downloadable binary fonts by default
wenson_hsieh@apple.com [Sun, 25 Feb 2018 22:36:37 +0000 (22:36 +0000)]
[Extra zoom mode] Disable downloadable binary fonts by default
https://bugs.webkit.org/show_bug.cgi?id=183102
<rdar://problem/37860699>

Reviewed by Tim Horton.

Disable downloadable binary fonts by default in extra zoom mode by making the initial value of
`downloadableBinaryFontsEnabled` conditional. Layout tests are not possible at this time; test to be added once
layout test support is in place.

* page/Settings.yaml:
* page/SettingsBase.cpp:
(WebCore::SettingsBase::defaultDownloadableBinaryFontsEnabled):
* page/SettingsBase.h:

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

19 months agoUnreviewed. Change my status to committer.
ajuma@chromium.org [Sun, 25 Feb 2018 21:48:13 +0000 (21:48 +0000)]
Unreviewed. Change my status to committer.

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

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

19 months agoUnreviewed GTK Debug build fix after r228942.
philn@webkit.org [Sun, 25 Feb 2018 19:37:35 +0000 (19:37 +0000)]
Unreviewed GTK Debug build fix after r228942.

* UIProcess/API/glib/IconDatabase.cpp:
(WebKit::IconDatabase::iconDatabaseSyncThread):
(WebKit::IconDatabase::syncThreadMainLoop):
(WebKit::IconDatabase::readFromDatabase):
(WebKit::IconDatabase::writeToDatabase):
(WebKit::IconDatabase::cleanupSyncThread):

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

19 months agoService workers do not work well inside Web.app
cdumez@apple.com [Sun, 25 Feb 2018 19:02:15 +0000 (19:02 +0000)]
Service workers do not work well inside Web.app
https://bugs.webkit.org/show_bug.cgi?id=183105
<rdar://problem/37864140>

Reviewed by Youenn Fablet.

Source/WebCore:

SessionID::defaultSessionID() was hardcoded in the ServiceWorkerThread constructor
instead of using the sessionID of the SWServer that created the service worker thread.
As a result, when the Service Worker would establish a SWClientConnection to the
server, it would use the wrong sessionID and would end up using a different SWServer
(Since we have a different SWServer instance per sessionID). As a result,
ServiceWorkerRegistration / ServiceWorker objects inside the service worker would not
be kept in sync with the server (since they registered themselves with the wrong
SWServer).

Covered by new API test.

* workers/service/ServiceWorkerContextData.cpp:
(WebCore::ServiceWorkerContextData::isolatedCopy const):
* workers/service/ServiceWorkerContextData.h:
(WebCore::ServiceWorkerContextData::encode const):
(WebCore::ServiceWorkerContextData::decode):
* workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
* workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::createPageForServiceWorker):
(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):
* workers/service/server/RegistrationDatabase.cpp:
(WebCore::RegistrationDatabase::importRecords):
* workers/service/server/RegistrationStore.h:
(WebCore::RegistrationStore::server):
* workers/service/server/SWServer.cpp:
(WebCore::SWServer::updateWorker):
* workers/service/server/SWServerWorker.cpp:
(WebCore::SWServerWorker::contextData const):

Source/WebKit:

* StorageProcess/StorageProcess.cpp:
(WebKit::StorageProcess::didReceiveMessage):
We were failing to forward IPC messages to the ChildProcess class here. As a result,
the ChildProcess::RegisterURLSchemeServiceWorkersCanHandle IPC was being ignored
by the StorageProcess.

Tools:

Add API test coverage.

* TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

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

19 months ago[build.webkit.org] unit-tests fail if buildbot 0.8.6p1 is not installed locally
aakash_jain@apple.com [Sun, 25 Feb 2018 18:38:36 +0000 (18:38 +0000)]
[build.webkit.org] unit-tests fail if buildbot 0.8.6p1 is not installed locally
https://bugs.webkit.org/show_bug.cgi?id=183103

Reviewed by Alexey Proskuryakov.

* BuildSlaveSupport/build.webkit.org-config/steps_unittest.py: Removed extra imports.

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

19 months agoUnreviewed, fix the TestWebKitAPI build after r228825.
wenson_hsieh@apple.com [Sat, 24 Feb 2018 23:30:16 +0000 (23:30 +0000)]
Unreviewed, fix the TestWebKitAPI build after r228825.

I removed a `>= iOS 11` check in r228825, but forgot that this was also neeed to guard against tvOS and watchOS
builds. This fixes the build by restoring the compile-time guard and also makes it explicit for these platforms.

* TestWebKitAPI/Tests/ios/ActionSheetTests.mm:

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

19 months agoNull-dereference of the second argument `resource` of DocumentLoader::scheduleSubstit...
commit-queue@webkit.org [Sat, 24 Feb 2018 22:06:39 +0000 (22:06 +0000)]
Null-dereference of the second argument `resource` of DocumentLoader::scheduleSubstituteResourceLoad
https://bugs.webkit.org/show_bug.cgi?id=182920

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2018-02-24
Reviewed by Darin Adler.

A test case
imported/w3c/web-platform-tests/html/browsers/offline/appcache/workers/appcache-worker.html
always crashes due to a null-dereference if compiled and optimized
by GCC 7.2. The second argument `resource` of
DocumentLoader::scheduleSubstituteResourceLoad can be null if the
resource can't be found in cache. I guess GCC optimizes inline
HashMap::add based on assuming the `resource` never becomes null
because its type is SubstituteResource&.

This changes introduces a new method
DocumentLoader::scheduleCannotShowURLError because it looks tricky
to pass a nullptr to the second argument of
scheduleSubstituteResourceLoad.

No new tests (Covered by existing tests).

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::scheduleCannotShowURLError): Added a new method.
* loader/DocumentLoader.h:
* loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::maybeLoadResource):
Call scheduleCannotShowURLError if the resource not found in the appcache.

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

19 months agoPrepare for ExtendedColor changes (first step)
darin@apple.com [Sat, 24 Feb 2018 21:47:52 +0000 (21:47 +0000)]
Prepare for ExtendedColor changes (first step)
https://bugs.webkit.org/show_bug.cgi?id=182904

Reviewed by Sam Weinig.

Source/WebCore:

* css/CSSValuePool.cpp:
(WebCore::CSSValuePool::createColorValue): Use HashMap::ensure.
(WebCore::CSSValuePool::createFontFamilyValue): Ditto.
(WebCore::CSSValuePool::createFontFaceValue): Ditto.

* css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::maybeParseValue): Tightened up
the logic a bit.

* html/canvas/CanvasRenderingContext2D.cpp: Removed many unneeded includes.

* inspector/InspectorCanvas.cpp:
(WebCore::InspectorCanvas::recordAction): Updated for Ref instead of
RefPtr and to use move semantics.
(WebCore::buildArrayForAffineTransform): Return Ref instead of RefPtr.
(WebCore::buildArrayForVector): Ditto.
(WebCore::InspectorCanvas::buildInitialState): Ditto. Also use auto more.
(WebCore::InspectorCanvas::buildAction): Ditto.
(WebCore::InspectorCanvas::buildArrayForCanvasGradient): Ditto.
(WebCore::InspectorCanvas::buildArrayForCanvasPattern): Ditto.
(WebCore::InspectorCanvas::buildArrayForImageData): Ditto.
* inspector/InspectorCanvas.h: Updated for the above. Also us "using" instead
of typedef and removed unneeded ErrorString typedef and some includes.

* page/DragController.cpp:
(WebCore::DragController::concludeEditDrag): Use auto and Ref.

* platform/DragData.h: Used pragma once and reorganized includes a bit.

* platform/graphics/ImageFrame.h:
(WebCore::ImageFrame::frameBytes const): Use uint32_t instead of RGBA32 to
prepare for removal of the RGBA32 type coming in a future patch.
* platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::cacheNativeImageAtIndex): Ditto.
(WebCore::ImageSource::canUseAsyncDecoding): Ditto.

* platform/graphics/cocoa/GraphicsContextCocoa.mm: Tweaked #if for Mac-only
code to use PLATFORM(MAC) to be easier to read.
(WebCore::GraphicsContext::focusRingColor): Use sRGBColorSpaceRef instead of
calling CGColorSpaceCreateWithName each time.

* platform/graphics/texmap/TextureMapperFPSCounter.cpp: Added include needed
now that it was removed from some header.

* platform/graphics/win/GraphicsContextPlatformPrivateDirect2D.h: Use uint32_t
instead of RGBA32 to prepare for removal of the RGBA32 type coming in a future patch.
* platform/image-decoders/ScalableImageDecoder.cpp:
(WebCore::ScalableImageDecoder::frameBytesAtIndex const): Ditto.
* platform/image-decoders/cairo/ImageBackingStoreCairo.cpp:
(WebCore::ImageBackingStore::image const): Ditto.
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::haveDecodedRow): Ditto.
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::setPixel): Ditto.
(WebCore::JPEGImageDecoder::outputScanlines): Ditto.
* platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageDecoder::rowAvailable): Ditto.
(WebCore::PNGImageDecoder::frameComplete): Ditto.
* platform/image-decoders/webp/WEBPImageDecoder.cpp:
(WebCore::WEBPImageDecoder::decodeFrame): Ditto.
(WebCore::WEBPImageDecoder::applyPostProcessing): Ditto.

* platform/mac/PlatformPasteboardMac.mm:
(WebCore::PlatformPasteboard::color): Added comments.

* rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::paintSelection): Use Color::isVisible.

Source/WebKitLegacy/mac:

* Misc/WebKitNSStringExtras.mm:
(-[NSString _web_drawAtPoint:font:textColor:]): Use colorFromNSColor.

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

19 months agoUnreviewed WPE breakage fix.
zandobersek@gmail.com [Sat, 24 Feb 2018 11:31:53 +0000 (11:31 +0000)]
Unreviewed WPE breakage fix.

* WebProcess/wpe/WebProcessMainWPE.cpp: Call g_set_prgname() in WebProcess
to prepare the GLib state for subsequent GStreamer initialization.

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

19 months agoCrash under SchemeRegistry::shouldTreatURLSchemeAsLocal(WTF::String const&)
cdumez@apple.com [Sat, 24 Feb 2018 06:36:07 +0000 (06:36 +0000)]
Crash under SchemeRegistry::shouldTreatURLSchemeAsLocal(WTF::String const&)
https://bugs.webkit.org/show_bug.cgi?id=183066
<rdar://problem/37804111>

Reviewed by Ryosuke Niwa.

SecurityOrigin objects are constructed on various threads. However, someone added a
shouldTreatAsPotentiallyTrustworthy() call to the SecurityOrigin constructor which
was not thread safe. This is because this function relies on SchemeRegistry::shouldTreatURLSchemeAsSecure()
and SchemeRegistry::shouldTreatURLSchemeAsLocal() which were relying on global static HashMaps without
locks.

Update SecurityOrigin to initialize m_isPotentiallyTrustworthy lazily, to avoid paying
initialization cost in the constructor. This is only queries by SecurityContext::isSecureContext().

Make SchemeRegistry::shouldTreatURLSchemeAsLocal() and SchemeRegistry::shouldTreatURLSchemeAsSecure()
thread-safe, since they are needed to initialize SecurityOrigin::m_isPotentiallyTrustworthy from
various threads.

SchemeRegistry::shouldTreatURLSchemeAsSecure() is only called from SecurityOrigin (which requires
thread-safety), and getUserMedia() which is not hot code so the extra locking there should not
be an issue.

SchemeRegistry::shouldTreatURLSchemeAsLocal() is called from SecurityOrigin (which requires thread-
safety). It is also called from isQuickLookPreviewURL(), MHTMLArchive::create(), Page::userStyleSheetLocationChanged(),
isRemoteWebArchive() and HTMLPlugInImageElement. All these are not hot code so I do not think
we need a fast path.

* page/SecurityOrigin.cpp:
(WebCore::isLoopbackIPAddress):
(WebCore::shouldTreatAsPotentiallyTrustworthy):
(WebCore::SecurityOrigin::isPotentiallyTrustworthy const):
(WebCore::SecurityOrigin::isLocalHostOrLoopbackIPAddress):
* page/SecurityOrigin.h:
* platform/SchemeRegistry.cpp:
(WebCore::localURLSchemesLock):
(WebCore::localURLSchemes):
(WebCore::secureSchemesLock):
(WebCore::secureSchemes):
(WebCore::SchemeRegistry::registerURLSchemeAsLocal):
(WebCore::SchemeRegistry::removeURLSchemeRegisteredAsLocal):
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsLocal):
(WebCore::SchemeRegistry::registerURLSchemeAsSecure):
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsSecure):
* platform/SchemeRegistry.h:

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

19 months ago[Curl] Cookie Database files are wrongfully getting deleted when the database is...
commit-queue@webkit.org [Sat, 24 Feb 2018 02:01:36 +0000 (02:01 +0000)]
[Curl] Cookie Database files are wrongfully getting deleted when the database is opened
https://bugs.webkit.org/show_bug.cgi?id=183051

Patch by Christopher Reid <chris.reid@sony.com> on 2018-02-23
Reviewed by Per Arne Vollan.

The file stat logic was backwards causing a wrongful detection of database corruption.
Fixed the logic and abstracted these calls to use FileSystem.

* platform/network/curl/CookieJarDB.cpp:

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

19 months agoMake Number.isInteger an intrinsic
sbarati@apple.com [Sat, 24 Feb 2018 00:48:32 +0000 (00:48 +0000)]
Make Number.isInteger an intrinsic
https://bugs.webkit.org/show_bug.cgi?id=183088

Reviewed by JF Bastien.

JSTests:

* stress/number-is-integer-intrinsic.js: Added.

Source/JavaScriptCore:

When profiling the ML subtest in ARES, I noticed it was spending some
time in Number.isInteger. This patch makes that operation an intrinsic
in the DFG/FTL. It might be a speedup by 1% or so on that subtest, but
it's likely not an aggregate speedup on ARES. However, it is definitely
faster than calling into a builtin function, so we might as well have
it as an intrinsic.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGNodeType.h:
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGPredictionPropagationPhase.cpp:
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileNumberIsInteger):
(JSC::FTL::DFG::LowerDFGToB3::unboxDouble):
* runtime/Intrinsic.cpp:
(JSC::intrinsicName):
* runtime/Intrinsic.h:
* runtime/NumberConstructor.cpp:
(JSC::NumberConstructor::finishCreation):
(JSC::numberConstructorFuncIsInteger):
* runtime/NumberConstructor.h:
(JSC::NumberConstructor::isIntegerImpl):

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

19 months agoIntroduce ITP debug logging as an opt-in developer feature
wilander@apple.com [Fri, 23 Feb 2018 23:26:40 +0000 (23:26 +0000)]
Introduce ITP debug logging as an opt-in developer feature
https://bugs.webkit.org/show_bug.cgi?id=183065
<rdar://problem/37803761>

Reviewed by Brent Fulgham.

Source/WebKit:

* Platform/Logging.h:
    Added a dedicated channel for Resource Load Statistics debug logging
    since this will be part of a developer-facing feature and should not
    be mixed with general Resource Load Statistics logging.
* UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm:
(WebKit::WebResourceLoadStatisticsStore::registerUserDefaultsIfNeeded):
    Now picks up the user default setting for
    ResourceLoadStatisticsDebugLoggingEnabled.
* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::removeDataRecords):
    Now logs for which domains it purges website data if
    ResourceLoadStatisticsDebugLoggingEnabled is set.
(WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioning):
    Now logs for which domains it partitions and blocks cookies
    in third-party contexts if ResourceLoadStatisticsDebugLoggingEnabled
    is set.
* UIProcess/WebResourceLoadStatisticsStore.h:

Source/WTF:

* wtf/Assertions.h:
    Introduces RELEASE_LOG_INFO() and RELEASE_LOG_INFO_IF().

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

19 months agoWebAssembly: cache memory address / size on instance
gskachkov@gmail.com [Fri, 23 Feb 2018 23:16:59 +0000 (23:16 +0000)]
WebAssembly: cache memory address / size on instance
https://bugs.webkit.org/show_bug.cgi?id=177305

Reviewed by JF Bastien.

JSTests:

* wasm/function-tests/memory-reuse.js: Added.
(createWasmInstance):
(doCheckTrap):
(doMemoryGrow):
(doCheck):
(checkWasmInstancesWithSharedMemory):

Source/JavaScriptCore:

Cache memory address/size in wasm:Instance to avoid load wasm:Memory
object during access to memory and memory size property in JiT

* wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::B3IRGenerator::addCurrentMemory):
(JSC::Wasm::B3IRGenerator::addCallIndirect):
* wasm/WasmBinding.cpp:
(JSC::Wasm::wasmToWasm):
* wasm/WasmInstance.h:
(JSC::Wasm::Instance::cachedMemory const):
(JSC::Wasm::Instance::cachedMemorySize const):
(JSC::Wasm::Instance::createWeakPtr):
(JSC::Wasm::Instance::setMemory):
(JSC::Wasm::Instance::updateCachedMemory):
(JSC::Wasm::Instance::offsetOfCachedMemory):
(JSC::Wasm::Instance::offsetOfCachedMemorySize):
(JSC::Wasm::Instance::offsetOfCachedIndexingMask):
(JSC::Wasm::Instance::allocationSize):
* wasm/WasmMemory.cpp:
(JSC::Wasm::Memory::grow):
(JSC::Wasm::Memory::registerInstance):
* wasm/WasmMemory.h:
(JSC::Wasm::Memory::indexingMask):
* wasm/js/JSToWasm.cpp:
(JSC::Wasm::createJSToWasmWrapper):
* wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::evaluate):

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

19 months ago[macOS] Correct sandbox violation during media playback
bfulgham@apple.com [Fri, 23 Feb 2018 22:19:37 +0000 (22:19 +0000)]
[macOS] Correct sandbox violation during media playback
https://bugs.webkit.org/show_bug.cgi?id=183092
<rdar://problem/37718495>

Reviewed by Eric Carlson.

* WebProcess/com.apple.WebProcess.sb.in:

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

19 months ago[RenderTreeBuilder] Make RenderTreeBuilder::* classes WTF_MAKE_FAST_ALLOCATED
zalan@apple.com [Fri, 23 Feb 2018 18:39:21 +0000 (18:39 +0000)]
[RenderTreeBuilder] Make RenderTreeBuilder::* classes WTF_MAKE_FAST_ALLOCATED
https://bugs.webkit.org/show_bug.cgi?id=183084
<rdar://problem/37828706>

Reviewed by Antti Koivisto.

* rendering/updating/RenderTreeBuilderBlock.h:
* rendering/updating/RenderTreeBuilderBlockFlow.h:
* rendering/updating/RenderTreeBuilderContinuation.h:
* rendering/updating/RenderTreeBuilderFirstLetter.h:
* rendering/updating/RenderTreeBuilderFormControls.h:
* rendering/updating/RenderTreeBuilderFullScreen.h:
* rendering/updating/RenderTreeBuilderInline.h:
* rendering/updating/RenderTreeBuilderList.h:
* rendering/updating/RenderTreeBuilderMathML.h:
* rendering/updating/RenderTreeBuilderMultiColumn.h:
* rendering/updating/RenderTreeBuilderRuby.h:
* rendering/updating/RenderTreeBuilderSVG.h:
* rendering/updating/RenderTreeBuilderTable.h:
* rendering/updating/RenderTreeUpdaterGeneratedContent.h:

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

19 months agowarning: unused variable 'InitialBufferSize' in Assertions.cpp
commit-queue@webkit.org [Fri, 23 Feb 2018 18:37:35 +0000 (18:37 +0000)]
warning: unused variable 'InitialBufferSize' in Assertions.cpp
https://bugs.webkit.org/show_bug.cgi?id=183076

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2018-02-23
Reviewed by Yusuke Suzuki.

* wtf/Assertions.cpp: Moved the definition of InitialBufferSize to inside #if.

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

19 months agoArgumentsEliminationPhase has a branch on GetByOffset that should be an assert
sbarati@apple.com [Fri, 23 Feb 2018 18:35:56 +0000 (18:35 +0000)]
ArgumentsEliminationPhase has a branch on GetByOffset that should be an assert
https://bugs.webkit.org/show_bug.cgi?id=182982

Reviewed by Yusuke Suzuki.

I don't know why this check was not always an assert. When we see
a GetByOffset on an eliminated allocation, that allocation *must*
be a PhantomClonedArguments. If it weren't, the GetByOffset would
have escaped it. Because this transformation happens by visiting
blocks in pre-order, and by visiting nodes in a block starting from
index zero to index block->size() - 1, we're guaranteed that eliminated
allocations get transformed before users of it, since we visit nodes
in dominator order.

* dfg/DFGArgumentsEliminationPhase.cpp:

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

19 months ago[MSVC] Unknown a type definition error in WebResourceLoadStatisticsStore on wincairo...
commit-queue@webkit.org [Fri, 23 Feb 2018 18:32:42 +0000 (18:32 +0000)]
[MSVC] Unknown a type definition error in WebResourceLoadStatisticsStore on wincairo webkit
https://bugs.webkit.org/show_bug.cgi?id=182873

Patch by Yousuke Kimoto <yousuke.kimoto@sony.com> on 2018-02-23
Reviewed by Yusuke Suzuki.

* UIProcess/WebResourceLoadStatisticsStore.h:

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

19 months ago[JSC] Implement $vm.ftlTrue function for FTL testing
utatane.tea@gmail.com [Fri, 23 Feb 2018 17:54:06 +0000 (17:54 +0000)]
[JSC] Implement $vm.ftlTrue function for FTL testing
https://bugs.webkit.org/show_bug.cgi?id=183071

Reviewed by Mark Lam.

JSTests:

* stress/dead-fiat-value-to-int52-then-exit-not-double.js:
(foo):
* stress/dead-fiat-value-to-int52-then-exit-not-int52.js:
(foo):
* stress/dead-fiat-value-to-int52.js:
(foo):
* stress/dead-osr-entry-value.js:
(foo):
* stress/fiat-value-to-int52-then-exit-not-double.js:
(foo):
* stress/fiat-value-to-int52-then-exit-not-int52.js:
(foo):
* stress/fiat-value-to-int52-then-fail-to-fold.js:
(foo):
* stress/fiat-value-to-int52-then-fold.js:
(foo):
* stress/fiat-value-to-int52.js:
(foo):
* stress/fold-based-on-int32-proof-mul-branch.js:
(foo):
* stress/fold-profiled-call-to-call.js:
(foo):
* stress/fold-to-double-constant-then-exit.js:
(foo):
* stress/fold-to-int52-constant-then-exit.js:
(foo):
* stress/fold-to-primitive-in-cfa.js:
(foo):
* stress/fold-to-primitive-to-identity-in-cfa.js:
(foo):
* stress/has-indexed-property-array-storage-ftl.js: Added.
(shouldBe):
(test1):
(test2):
* stress/has-indexed-property-slow-put-array-storage-ftl.js: Added.
(shouldBe):
(test1):
(test2):
* stress/int52-ai-add-then-filter-int32.js:
(foo):
* stress/int52-ai-mul-and-clean-neg-zero-then-filter-int32.js:
(foo):
* stress/int52-ai-mul-then-filter-int32.js:
(foo):
* stress/int52-ai-neg-then-filter-int32.js:
(foo):
* stress/int52-ai-sub-then-filter-int32.js:
(foo):
* stress/licm-pre-header-cannot-exit-nested.js:
(foo):
* stress/licm-pre-header-cannot-exit.js:
(foo):
* stress/sparse-array-entry-update-144067.js:
(useMemoryToTriggerGCs):
* stress/test-spec-misc.js:
(foo):
* stress/tricky-array-bounds-checks.js:
(foo):

Source/JavaScriptCore:

Add $vm.ftlTrue, which becomes true if the caller is compiled in FTL.
This is useful for testing whether the caller function is compiled in FTL.

We also remove duplicate DFGTrue function in jsc.cpp. We have $vm.dfgTrue.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
* jsc.cpp:
(GlobalObject::finishCreation):
(functionFalse1):
(functionFalse2): Deleted.
* runtime/Intrinsic.cpp:
(JSC::intrinsicName):
* runtime/Intrinsic.h:
* tools/JSDollarVM.cpp:
(JSC::functionFTLTrue):
(JSC::JSDollarVM::finishCreation):

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

19 months ago[RenderTreeBuilder] Move RenderFullScreen::createPlaceholder to RenderTreeBuilder
zalan@apple.com [Fri, 23 Feb 2018 16:16:27 +0000 (16:16 +0000)]
[RenderTreeBuilder] Move RenderFullScreen::createPlaceholder to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=183027
<rdar://problem/37773058>

Reviewed by Antti Koivisto.

No change in functionality.

* dom/Document.cpp:
(WebCore::Document::setFullScreenRenderer):
* dom/Document.h:
* rendering/RenderFullScreen.cpp:
(WebCore::RenderFullScreenPlaceholder::RenderFullScreenPlaceholder):
(WebCore::RenderFullScreenPlaceholder::isRenderFullScreenPlaceholder const):
(WebCore::RenderFullScreen::wrapNewRenderer):
(WebCore::RenderFullScreen::wrapExistingRenderer):
(): Deleted.
(WebCore::RenderFullScreen::createPlaceholder): Deleted.
* rendering/RenderFullScreen.h:
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::createPlaceholderForFullScreen):
* rendering/updating/RenderTreeBuilder.h:
* rendering/updating/RenderTreeBuilderFullScreen.cpp:
(WebCore::RenderTreeBuilder::FullScreen::createPlaceholder):
* rendering/updating/RenderTreeBuilderFullScreen.h:

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

19 months ago[RenderTreeBuilder] Add WARN_UNUSED_RETURN to detach()
zalan@apple.com [Fri, 23 Feb 2018 14:52:45 +0000 (14:52 +0000)]
[RenderTreeBuilder] Add WARN_UNUSED_RETURN to detach()
https://bugs.webkit.org/show_bug.cgi?id=183073
<rdar://problem/37814585>

Reviewed by Antti Koivisto.

So that we don't destroy a renderer accidentally.

* rendering/updating/RenderTreeBuilderBlock.h:
* rendering/updating/RenderTreeBuilderRuby.h:
* rendering/updating/RenderTreeBuilderSVG.h:

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

19 months agoREGRESSION (r228445): A big pause button shows over YouTube videos if you tap "Tap...
graouts@webkit.org [Fri, 23 Feb 2018 13:53:13 +0000 (13:53 +0000)]
REGRESSION (r228445): A big pause button shows over YouTube videos if you tap "Tap To Unmute" on iOS
https://bugs.webkit.org/show_bug.cgi?id=183074
<rdar://problem/37747028>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/modern-media-controls/start-support/start-support-disable-controls-and-re-enable-post-play.html

In the fix for webkit.org/b/182668, we made it so that when the "controls" attribute is absent from a media
element we stop listening to the bulk of media events and prevent controls from updating any DOM properties
so as to minimize the amount of CPU usage by the Web process.

An unfortunate side effect was that, if the media controls were disabled at the time the video starts playing,
the StartSupport class would thus not catch the "play" event and would not be able to set the "hasPlayed"
property to "true" on the MediaController, which would then prevent the _shouldShowStartButton() from returning
"false". As a result, if the "controls" attribute was turned back on after the media started playing, they
would default to showing the start button, which would be then in the play state, ie. showing the pause icon.

We now set the "hasPlayed" property in the "play" event handler on MediaController, which is always registered
regardless of the "controls" attribute setting. We also ensure we invalidate the "showStartButton" property on
the media controls when StartSupport is enabled, which is the case when the "controls" attribute is toggled back
to "true" from a previous "false" value.

* Modules/modern-media-controls/media/media-controller.js:
(MediaController.prototype.handleEvent):
* Modules/modern-media-controls/media/start-support.js:
(StartSupport):
(StartSupport.prototype.enable):
(StartSupport.prototype.handleEvent):
(StartSupport.prototype._updateShowsStartButton):

LayoutTests:

Add a new test that set controls on the video, then immediately removes them, plays the video and turns the controls
back on as soon as the video starts to check that the "showsStartButton" property is false on the media controls.
Prior to this patch this test would fail.

* media/modern-media-controls/start-support/start-support-disable-controls-and-re-enable-post-play-expected.txt: Added.
* media/modern-media-controls/start-support/start-support-disable-controls-and-re-enable-post-play.html: Added.
* platform/ios/TestExpectations:

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

19 months ago[GStreamer][MiniBrowser] Honor GStreamer command line parameters in MiniBrowser
carlosgc@webkit.org [Fri, 23 Feb 2018 12:53:04 +0000 (12:53 +0000)]
[GStreamer][MiniBrowser] Honor GStreamer command line parameters in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=173655
<rdar://problem/37706341>

Reviewed by Philippe Normand.

Source/WebCore:

Do not assume gst is only used in the WebProcess, the MIMETypeRegistry also uses gst to get the list of
supported media types. Move the code to extract gst options from the process command line to a helper function
and use it in the UI process to pass the options to the WebProcess, but also in the current process when gst is
initialized without providing options.

Fixes several unit tests that use MIMETypeRegistry in the UI process.

* platform/graphics/gstreamer/GStreamerUtilities.cpp:
(WebCore::extractGStreamerOptionsFromCommandLine): Helper to get the gst options from the current process
command line.
(WebCore::initializeGStreamer): Ensure this is called once. Get the gst options from the given vector or extract
it from the command line if not provided.
* platform/graphics/gstreamer/GStreamerUtilities.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::initializeGStreamerAndRegisterWebKitElements): Bring back the gst
initialization here.

Source/WebKit:

Actually pass the gst command line options to the WebProcess. The options in /proc/self/cmdline are separated by
null characters, so we are effectively passing always the first option only, which is the program name. Then, in
the web process we always ignore the first option and providing WebProcess unconditionally, so we were doing
nothing.

* UIProcess/gtk/WebProcessPoolGtk.cpp:
(WebKit::WebProcessPool::platformInitializeWebProcess): Use WebCore::extractGStreamerOptionsFromCommandLine()
* UIProcess/wpe/WebProcessPoolWPE.cpp:
(WebKit::WebProcessPool::platformInitializeWebProcess): Ditto.
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::platformInitializeWebProcess): Move the vector.

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

19 months ago[GStreamer] HTTP totalBytes query returns 0 after seeking (sometimes)
philn@webkit.org [Fri, 23 Feb 2018 10:06:46 +0000 (10:06 +0000)]
[GStreamer] HTTP totalBytes query returns 0 after seeking (sometimes)
https://bugs.webkit.org/show_bug.cgi?id=183002

Reviewed by Xabier Rodriguez-Calvar.

* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webkit_web_src_init): Initialize member variables. Also no need
to set the appsrc size at that point.
(webKitWebSrcStop): There is no need to reset the size when
seeking. Size should in most cases represent the Content-Length
response attribute, even when seeking.
(webKitWebSrcStart): No need to reset the size attribute.
(webKitWebSrcQueryWithParent): Let appsrc handle DURATION queries.
(CachedResourceStreamingClient::responseReceived): Emit duration notification one time only.

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

19 months ago[GStreamer] media/video-src-blob-using-open-panel.html crashes in Debug
philn@webkit.org [Fri, 23 Feb 2018 09:57:37 +0000 (09:57 +0000)]
[GStreamer] media/video-src-blob-using-open-panel.html crashes in Debug
https://bugs.webkit.org/show_bug.cgi?id=183005

Reviewed by Xabier Rodriguez-Calvar.

Test: media/video-src-blob-using-open-panel.html

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::convertToInternalProtocol): Also convert blob URIs
because they're handled by our httpsrc element.
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcGetProtocols): Prefix blob URIs too, for consistency purpose.

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

19 months ago[FTL] Support HasIndexedProperty for ArrayStorage and SlowPutArrayStorage
utatane.tea@gmail.com [Fri, 23 Feb 2018 06:41:50 +0000 (06:41 +0000)]
[FTL] Support HasIndexedProperty for ArrayStorage and SlowPutArrayStorage
https://bugs.webkit.org/show_bug.cgi?id=182792

Reviewed by Mark Lam.

JSTests:

* stress/has-indexed-property-array-storage.js: Added.
(shouldBe):
(test1):
(test2):
* stress/has-indexed-property-slow-put-array-storage.js: Added.
(shouldBe):
(test1):
(test2):

Source/JavaScriptCore:

This patch adds HasIndexedProperty for ArrayStorage and SlowPutArrayStorage in FTL.
HasIndexedProperty with ArrayStorage frequently causes FTL compilation failures
in web-tooling-benchmarks.

* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileHasIndexedProperty):

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

19 months agoRemove currentTime() / currentTimeMS()
utatane.tea@gmail.com [Fri, 23 Feb 2018 04:18:17 +0000 (04:18 +0000)]
Remove currentTime() / currentTimeMS()
https://bugs.webkit.org/show_bug.cgi?id=183052

Reviewed by Mark Lam.

Source/WebCore:

* Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::haveSuitableCachedPosition):
* dom/DOMTimeStamp.h:
(WebCore::convertSecondsToDOMTimeStamp):
* fileapi/File.cpp:
(WebCore::File::File):
(WebCore::File::lastModified const):
* history/HistoryItem.cpp:
(WebCore::generateSequenceNumber):
* html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::defaultValueForStepUp const):
* html/DateTimeInputType.cpp:
(WebCore::DateTimeInputType::defaultValueForStepUp const):
* html/MonthInputType.cpp:
(WebCore::MonthInputType::defaultValueForStepUp const):
* html/TimeInputType.cpp:
(WebCore::TimeInputType::defaultValueForStepUp const):
* inspector/agents/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::willSendRequest):
(WebCore::InspectorNetworkAgent::willSendWebSocketHandshakeRequest):
* loader/EmptyFrameLoaderClient.h:
* loader/FormSubmission.cpp:
(WebCore::generateFormDataIdentifier):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::clientRedirected):
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/NavigationScheduler.cpp:
* page/History.cpp:
(WebCore::History::stateObjectAdded):
* page/History.h:
* page/PageOverlay.cpp:
(WebCore::PageOverlay::startFadeAnimation):
(WebCore::PageOverlay::fadeAnimationTimerFired):
* page/PageOverlay.h:
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawNativeImage):
* platform/ios/LegacyTileLayerPool.h:
* platform/ios/LegacyTileLayerPool.mm:
(WebCore::LegacyTileLayerPool::LegacyTileLayerPool):
(WebCore::LegacyTileLayerPool::addLayer):
(WebCore::LegacyTileLayerPool::decayedCapacity const):
(WebCore::LegacyTileLayerPool::prune):
* platform/ios/SystemMemoryIOS.cpp:
(WebCore::systemMemoryLevel):
* platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:
* platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm:

Source/WebKit:

* NetworkProcess/cache/CacheStorageEngineCache.cpp:
* PluginProcess/WebProcessConnection.cpp:
* Shared/WebProcessCreationParameters.h:
* Shared/linux/WebMemorySamplerLinux.cpp:
(WebKit::WebMemorySampler::sampleWebKit const):
* Shared/mac/WebMemorySampler.mac.mm:
(WebKit::WebMemorySampler::sampleWebKit const):
* UIProcess/API/C/WKContext.cpp:
(WKContextSetPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime):
* UIProcess/API/glib/IconDatabase.cpp:
(WebKit::IconDatabase::setIconDataForIconURL):
(WebKit::IconDatabase::synchronousLoadDecisionForIconURL):
(WebKit::IconDatabase::performURLImport):
* UIProcess/DrawingAreaProxyImpl.cpp:
* UIProcess/Plugins/PlugInAutoStartProvider.cpp:
(WebKit::expirationTimeFromNow):
(WebKit::PlugInAutoStartProvider::addAutoStartOriginHash):
(WebKit::PlugInAutoStartProvider::autoStartOriginsTableCopy const):
(WebKit::PlugInAutoStartProvider::setAutoStartOriginsTable):
(WebKit::PlugInAutoStartProvider::setAutoStartOriginsFilteringOutEntriesAddedAfterTime):
(WebKit::PlugInAutoStartProvider::setAutoStartOriginsTableWithItemsPassingTest):
(WebKit::PlugInAutoStartProvider::didReceiveUserInteraction):
* UIProcess/Plugins/PlugInAutoStartProvider.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processDidFinishLaunching):
(WebKit::WebProcessPool::startMemorySampler):
(WebKit::WebProcessPool::setPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime):
* UIProcess/WebProcessPool.h:
* WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h:
(API::InjectedBundle::PageLoaderClient::willPerformClientRedirectForFrame):
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
(WebKit::InjectedBundlePageLoaderClient::willPerformClientRedirectForFrame):
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchWillPerformClientRedirect):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/WebProcess.cpp:
(WebKit::m_webSQLiteDatabaseTracker):
(WebKit::WebProcess::isPlugInAutoStartOriginHash):
(WebKit::WebProcess::plugInDidStartFromOrigin):
(WebKit::WebProcess::didAddPlugInAutoStartOriginHash):
(WebKit::WebProcess::resetPlugInAutoStartOriginDefaultHashes):
(WebKit::WebProcess::resetPlugInAutoStartOriginHashes):
(WebKit::WebProcess::plugInDidReceiveUserInteraction):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
* WebProcess/cocoa/WebProcessCocoa.mm:
* WebProcess/wpe/WebProcessMainWPE.cpp:

Source/WebKitLegacy/mac:

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

Source/WebKitLegacy/win:

* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::dispatchWillPerformClientRedirect):
* WebCoreSupport/WebFrameLoaderClient.h:
* WebDownload.h:
* WebDownloadCFNet.cpp:
(WebDownload::didStart):
(WebDownload::didReceiveData):
(WebDownload::didFinish):

Source/WTF:

This patch removes WTF::currentTime() and WTF::currentTimeMS().
We have fancy WallTime APIs. It has strong types like WallTime and Seconds,
and this reduces the chance of bugs mixing doubles which represent milliseconds
and seconds.

* wtf/Condition.h:
* wtf/CurrentTime.cpp:
(WTF::currentTime):
(WTF::WallTime::now):
* wtf/CurrentTime.h:
(WTF::currentTimeMS): Deleted.
* wtf/DateMath.h:
(WTF::jsCurrentTime):
* wtf/ParkingLot.cpp:
(WTF::ParkingLot::parkConditionallyImpl):
* wtf/ThreadingPrimitives.h:
* wtf/ThreadingPthreads.cpp:
(WTF::ThreadCondition::timedWait):
* wtf/ThreadingWin.cpp:
(WTF::ThreadCondition::timedWait):
(WTF::absoluteTimeToWaitTimeoutInterval):
* wtf/WallTime.cpp:
(WTF::WallTime::now): Deleted.
* wtf/WallTime.h:

Tools:

* DumpRenderTree/TestRunner.cpp:
(preciseTimeCallback):
* DumpRenderTree/mac/TestRunnerMac.mm:
(TestRunner::setMockGeolocationPosition):
* TestWebKitAPI/Tests/WTF/Condition.cpp:
* TestWebKitAPI/Tests/WTF/ThreadGroup.cpp:
* TestWebKitAPI/Tests/WTF/WorkQueue.cpp:
* WebKitTestRunner/GeolocationProviderMock.cpp:
(WTR::GeolocationProviderMock::setPosition):
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::preciseTime):

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

19 months agoThe WebContent process should not use NSScreen in the screenDepth implementation.
pvollan@apple.com [Fri, 23 Feb 2018 00:17:38 +0000 (00:17 +0000)]
The WebContent process should not use NSScreen in the screenDepth implementation.
https://bugs.webkit.org/show_bug.cgi?id=183048

Reviewed by Brent Fulgham.

NSScreen method calls should be done in the UIProcess, since these calls will communicate with
the WindowServer. The screen depth property can be retrieved in the UIProcess, and sent to the
WebContent process, where it is cached. Whenever screen properties change, the UIProcess will
send the new screen properties to the WebProcess.

No new tests, covered by existing tests.

* platform/ScreenProperties.h:
(WebCore::ScreenProperties::encode const):
(WebCore::ScreenProperties::decode):
* platform/mac/PlatformScreenMac.mm:
(WebCore::getScreenProperties):
(WebCore::screenDepth):
(WebCore::screenDepthPerComponent):
(WebCore::screenRect):
(WebCore::screenAvailableRect):

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

19 months ago[RenderTreeBuilder] Rename insertChild() -> attach(), takeChild() -> detach() and...
zalan@apple.com [Thu, 22 Feb 2018 23:19:44 +0000 (23:19 +0000)]
[RenderTreeBuilder] Rename insertChild() -> attach(), takeChild() -> detach() and removeAndDestroy() -> destroy()
https://bugs.webkit.org/show_bug.cgi?id=183061
<rdar://problem/37800269>

Reviewed by Ryosuke Niwa.

...and moveChildTo() -> move() (moveChildrenTo() -> moveChildren()),
removeFromParentAndDestroyCleaningUpAnonymousWrappers() -> destroyAndCleanUpAnonymousWrappers()

No change in functionality.

* dom/Document.cpp:
(WebCore::Document::destroyRenderTree):
(WebCore::Document::setFullScreenRenderer):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::styleDidChange):
* rendering/RenderButton.cpp:
(WebCore::RenderButton::setText):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::didAttachChild):
(WebCore::RenderElement::didInsertChild): Deleted.
* rendering/RenderElement.h:
* rendering/RenderFullScreen.cpp:
(WebCore::RenderFullScreen::wrapNewRenderer):
(WebCore::RenderFullScreen::wrapExistingRenderer):
(WebCore::RenderFullScreen::unwrapRenderer):
(WebCore::RenderFullScreen::createPlaceholder):
* rendering/RenderMenuList.cpp:
(RenderMenuList::didAttachChild):
(RenderMenuList::setText):
(RenderMenuList::didInsertChild): Deleted.
* rendering/RenderMenuList.h:
* rendering/RenderQuote.cpp:
(WebCore::RenderQuote::updateTextRenderer):
* rendering/RenderTextFragment.cpp:
(WebCore::RenderTextFragment::setText):
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::destroy):
(WebCore::RenderTreeBuilder::attach):
(WebCore::RenderTreeBuilder::attachIgnoringContinuation):
(WebCore::RenderTreeBuilder::detach):
(WebCore::RenderTreeBuilder::attachToRenderElement):
(WebCore::RenderTreeBuilder::attachToRenderElementInternal):
(WebCore::RenderTreeBuilder::move):
(WebCore::RenderTreeBuilder::moveAllChildren):
(WebCore::RenderTreeBuilder::moveChildren):
(WebCore::RenderTreeBuilder::moveAllChildrenIncludingFloats):
(WebCore::RenderTreeBuilder::makeChildrenNonInline):
(WebCore::RenderTreeBuilder::splitAnonymousBoxesAroundChild):
(WebCore::RenderTreeBuilder::childFlowStateChangesAndAffectsParentBlock):
(WebCore::RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers):
(WebCore::RenderTreeBuilder::detachFromRenderGrid):
(WebCore::RenderTreeBuilder::detachFromRenderElement):
(WebCore::RenderTreeBuilder::attachToRenderGrid):
(WebCore::RenderTreeBuilder::removeAndDestroy): Deleted.
(WebCore::RenderTreeBuilder::insertChild): Deleted.
(WebCore::RenderTreeBuilder::insertChildIgnoringContinuation): Deleted.
(WebCore::RenderTreeBuilder::takeChild): Deleted.
(WebCore::RenderTreeBuilder::insertChildToRenderElement): Deleted.
(WebCore::RenderTreeBuilder::insertChildToRenderElementInternal): Deleted.
(WebCore::RenderTreeBuilder::moveChildTo): Deleted.
(WebCore::RenderTreeBuilder::moveAllChildrenTo): Deleted.
(WebCore::RenderTreeBuilder::moveChildrenTo): Deleted.
(WebCore::RenderTreeBuilder::moveAllChildrenIncludingFloatsTo): Deleted.
(WebCore::RenderTreeBuilder::removeFromParentAndDestroyCleaningUpAnonymousWrappers): Deleted.
(WebCore::RenderTreeBuilder::takeChildFromRenderGrid): Deleted.
(WebCore::RenderTreeBuilder::takeChildFromRenderElement): Deleted.
(WebCore::RenderTreeBuilder::insertChildToRenderGrid): Deleted.
* rendering/updating/RenderTreeBuilder.h:
* rendering/updating/RenderTreeBuilderBlock.cpp:
(WebCore::RenderTreeBuilder::Block::attach):
(WebCore::RenderTreeBuilder::Block::insertChildToContinuation):
(WebCore::RenderTreeBuilder::Block::attachIgnoringContinuation):
(WebCore::RenderTreeBuilder::Block::removeLeftoverAnonymousBlock):
(WebCore::RenderTreeBuilder::Block::detach):
(WebCore::RenderTreeBuilder::Block::dropAnonymousBoxChild):
(WebCore::RenderTreeBuilder::Block::insertChild): Deleted.
(WebCore::RenderTreeBuilder::Block::insertChildIgnoringContinuation): Deleted.
(WebCore::RenderTreeBuilder::Block::takeChild): Deleted.
* rendering/updating/RenderTreeBuilderBlock.h:
* rendering/updating/RenderTreeBuilderBlockFlow.cpp:
(WebCore::RenderTreeBuilder::BlockFlow::attach):
(WebCore::RenderTreeBuilder::BlockFlow::moveAllChildrenIncludingFloats):
(WebCore::RenderTreeBuilder::BlockFlow::insertChild): Deleted.
(WebCore::RenderTreeBuilder::BlockFlow::moveAllChildrenIncludingFloatsTo): Deleted.
* rendering/updating/RenderTreeBuilderBlockFlow.h:
* rendering/updating/RenderTreeBuilderContinuation.cpp:
(WebCore::RenderTreeBuilder::Continuation::cleanupOnDestroy):
* rendering/updating/RenderTreeBuilderFirstLetter.cpp:
(WebCore::RenderTreeBuilder::FirstLetter::cleanupOnDestroy):
(WebCore::RenderTreeBuilder::FirstLetter::updateStyle):
(WebCore::RenderTreeBuilder::FirstLetter::createRenderers):
* rendering/updating/RenderTreeBuilderFormControls.cpp:
(WebCore::RenderTreeBuilder::FormControls::attach):
(WebCore::RenderTreeBuilder::FormControls::detach):
(WebCore::RenderTreeBuilder::FormControls::findOrCreateParentForChild):
(WebCore::RenderTreeBuilder::FormControls::insertChild): Deleted.
(WebCore::RenderTreeBuilder::FormControls::takeChild): Deleted.
* rendering/updating/RenderTreeBuilderFormControls.h:
* rendering/updating/RenderTreeBuilderFullScreen.cpp:
(WebCore::RenderTreeBuilder::FullScreen::cleanupOnDestroy):
* rendering/updating/RenderTreeBuilderInline.cpp:
(WebCore::RenderTreeBuilder::Inline::attach):
(WebCore::RenderTreeBuilder::Inline::insertChildToContinuation):
(WebCore::RenderTreeBuilder::Inline::attachIgnoringContinuation):
(WebCore::RenderTreeBuilder::Inline::splitFlow):
(WebCore::RenderTreeBuilder::Inline::splitInlines):
(WebCore::RenderTreeBuilder::Inline::childBecameNonInline):
(WebCore::RenderTreeBuilder::Inline::insertChild): Deleted.
(WebCore::RenderTreeBuilder::Inline::insertChildIgnoringContinuation): Deleted.
* rendering/updating/RenderTreeBuilderInline.h:
* rendering/updating/RenderTreeBuilderList.cpp:
(WebCore::RenderTreeBuilder::List::updateItemMarker):
* rendering/updating/RenderTreeBuilderMathML.cpp:
(WebCore::RenderTreeBuilder::MathML::makeFences):
(WebCore::RenderTreeBuilder::MathML::attach):
(WebCore::RenderTreeBuilder::MathML::insertChild): Deleted.
* rendering/updating/RenderTreeBuilderMathML.h:
* rendering/updating/RenderTreeBuilderMultiColumn.cpp:
(WebCore::RenderTreeBuilder::MultiColumn::createFragmentedFlow):
(WebCore::RenderTreeBuilder::MultiColumn::destroyFragmentedFlow):
(WebCore::RenderTreeBuilder::MultiColumn::processPossibleSpannerDescendant):
(WebCore::RenderTreeBuilder::MultiColumn::handleSpannerRemoval):
* rendering/updating/RenderTreeBuilderRuby.cpp:
(WebCore::RenderTreeBuilder::Ruby::moveInlineChildren):
(WebCore::RenderTreeBuilder::Ruby::moveBlockChildren):
(WebCore::RenderTreeBuilder::Ruby::attach):
(WebCore::RenderTreeBuilder::Ruby::findOrCreateParentForChild):
(WebCore::RenderTreeBuilder::Ruby::rubyBaseSafe):
(WebCore::RenderTreeBuilder::Ruby::detach):
(WebCore::RenderTreeBuilder::Ruby::insertChild): Deleted.
(WebCore::RenderTreeBuilder::Ruby::takeChild): Deleted.
* rendering/updating/RenderTreeBuilderRuby.h:
* rendering/updating/RenderTreeBuilderSVG.cpp:
(WebCore::RenderTreeBuilder::SVG::attach):
(WebCore::RenderTreeBuilder::SVG::detach):
(WebCore::RenderTreeBuilder::SVG::insertChild): Deleted.
(WebCore::RenderTreeBuilder::SVG::takeChild): Deleted.
* rendering/updating/RenderTreeBuilderSVG.h:
* rendering/updating/RenderTreeBuilderTable.cpp:
(WebCore::RenderTreeBuilder::Table::findOrCreateParentForChild):
(WebCore::RenderTreeBuilder::Table::attach):
(WebCore::RenderTreeBuilder::Table::collapseAndDestroyAnonymousSiblingRows):
(WebCore::RenderTreeBuilder::Table::insertChild): Deleted.
* rendering/updating/RenderTreeBuilderTable.h:
* rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::createRenderer):
(WebCore::RenderTreeUpdater::createTextRenderer):
(WebCore::RenderTreeUpdater::tearDownRenderers):
(WebCore::RenderTreeUpdater::tearDownTextRenderer):
(WebCore::RenderTreeUpdater::tearDownLeftoverPaginationRenderersIfNeeded):
* rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:
(WebCore::createContentRenderers):

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

19 months agoWeb Inspector: REGRESSION (r228349): ImageBitmap builtin is now runtime guarded
mattbaker@apple.com [Thu, 22 Feb 2018 22:58:50 +0000 (22:58 +0000)]
Web Inspector: REGRESSION (r228349): ImageBitmap builtin is now runtime guarded
https://bugs.webkit.org/show_bug.cgi?id=183056
<rdar://problem/37799067>

Reviewed by Joseph Pecoraro.

* WebProcess/WebPage/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::WebInspectorUI):

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

19 months agoCaches::initialize should call all pending initialization callbacks in case of error
commit-queue@webkit.org [Thu, 22 Feb 2018 22:53:41 +0000 (22:53 +0000)]
Caches::initialize should call all pending initialization callbacks in case of error
https://bugs.webkit.org/show_bug.cgi?id=183062

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-22
Reviewed by Chris Dumez.

* NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::Caches::initialize):
(WebKit::CacheStorage::Caches::initializeSize):

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

19 months agoCacheStorage::Engine::Caches::writeRecord is not always calling the completion handler
commit-queue@webkit.org [Thu, 22 Feb 2018 22:50:19 +0000 (22:50 +0000)]
CacheStorage::Engine::Caches::writeRecord is not always calling the completion handler
https://bugs.webkit.org/show_bug.cgi?id=183055

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-22
Reviewed by Chris Dumez.

Source/WebKit:

Add a completion handler to Storage::store.
Use it instead in Caches::writeRecord.
This ensures that the Cache add/put promise will be called once all write operations have been done.

* NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::Caches::writeRecord):
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::WriteOperation::WriteOperation):
(WebKit::NetworkCache::Storage::finishWriteOperation):
(WebKit::NetworkCache::Storage::store):
* NetworkProcess/cache/NetworkCacheStorage.h:
(WebKit::NetworkCache::Storage::store):

LayoutTests:

* http/tests/cache-storage/resources/cache-persistency-iframe.html:

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

19 months agoResourceRequestBase::isolatedCopy() fails to isolate copy the cachePartition
cdumez@apple.com [Thu, 22 Feb 2018 22:36:47 +0000 (22:36 +0000)]
ResourceRequestBase::isolatedCopy() fails to isolate copy the cachePartition
https://bugs.webkit.org/show_bug.cgi?id=183059
<rdar://problem/37800202>

Reviewed by Youenn Fablet.

Update ResourceRequestBase::setAsIsolatedCopy() to call isolatedCopy() on the cachePartition as well,
given that it is a String and it would not be safe to send it to another thread otherwise.

* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::setAsIsolatedCopy):

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

19 months agoAdd an entitlement check for service worker on iOS
rniwa@webkit.org [Thu, 22 Feb 2018 22:05:06 +0000 (22:05 +0000)]
Add an entitlement check for service worker on iOS
https://bugs.webkit.org/show_bug.cgi?id=182865

Reviewed by Dan Bernstein.

Addressed Dan's comment by using xpc_connection_copy_entitlement_value instead of obtaining the audit token first.

* Shared/mac/SandboxUtilities.h:
* Shared/mac/SandboxUtilities.mm:
(WebKit::connectedProcessHasEntitlement):
* StorageProcess/ios/StorageProcessIOS.mm:
(WebKit::StorageProcess::parentProcessHasServiceWorkerEntitlement const):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::parentProcessHasServiceWorkerEntitlement const):

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

19 months agoRefactor MacroAssembler code to improve reuse and extensibility.
mark.lam@apple.com [Thu, 22 Feb 2018 21:53:12 +0000 (21:53 +0000)]
Refactor MacroAssembler code to improve reuse and extensibility.
https://bugs.webkit.org/show_bug.cgi?id=183054
<rdar://problem/37797337>

Reviewed by Saam Barati.

* assembler/ARM64Assembler.h:
* assembler/MacroAssembler.cpp:
* assembler/MacroAssembler.h:
* assembler/MacroAssemblerARM.h:
* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::canCompact):
(JSC::MacroAssemblerARM64::computeJumpType):
(JSC::MacroAssemblerARM64::jumpSizeDelta):
(JSC::MacroAssemblerARM64::link):
(JSC::MacroAssemblerARM64::load64):
(JSC::MacroAssemblerARM64::load64WithAddressOffsetPatch):
(JSC::MacroAssemblerARM64::load32):
(JSC::MacroAssemblerARM64::load32WithAddressOffsetPatch):
(JSC::MacroAssemblerARM64::load16):
(JSC::MacroAssemblerARM64::load16SignedExtendTo32):
(JSC::MacroAssemblerARM64::load8):
(JSC::MacroAssemblerARM64::load8SignedExtendTo32):
(JSC::MacroAssemblerARM64::store64):
(JSC::MacroAssemblerARM64::store64WithAddressOffsetPatch):
(JSC::MacroAssemblerARM64::store32):
(JSC::MacroAssemblerARM64::store32WithAddressOffsetPatch):
(JSC::MacroAssemblerARM64::store16):
(JSC::MacroAssemblerARM64::store8):
(JSC::MacroAssemblerARM64::getEffectiveAddress):
(JSC::MacroAssemblerARM64::branchDoubleNonZero):
(JSC::MacroAssemblerARM64::branchDoubleZeroOrNaN):
(JSC::MacroAssemblerARM64::branchTruncateDoubleToInt32):
(JSC::MacroAssemblerARM64::loadDouble):
(JSC::MacroAssemblerARM64::loadFloat):
(JSC::MacroAssemblerARM64::moveConditionallyAfterFloatingPointCompare):
(JSC::MacroAssemblerARM64::moveDoubleConditionallyAfterFloatingPointCompare):
(JSC::MacroAssemblerARM64::storeDouble):
(JSC::MacroAssemblerARM64::storeFloat):
(JSC::MacroAssemblerARM64::call):
(JSC::MacroAssemblerARM64::jump):
(JSC::MacroAssemblerARM64::tailRecursiveCall):
(JSC::MacroAssemblerARM64::setCarry):
(JSC::MacroAssemblerARM64::reemitInitialMoveWithPatch):
(JSC::MacroAssemblerARM64::isBreakpoint):
(JSC::MacroAssemblerARM64::invert):
(JSC::MacroAssemblerARM64::readCallTarget):
(JSC::MacroAssemblerARM64::replaceWithVMHalt):
(JSC::MacroAssemblerARM64::replaceWithJump):
(JSC::MacroAssemblerARM64::maxJumpReplacementSize):
(JSC::MacroAssemblerARM64::patchableJumpSize):
(JSC::MacroAssemblerARM64::repatchCall):
(JSC::MacroAssemblerARM64::makeBranch):
(JSC::MacroAssemblerARM64::makeCompareAndBranch):
(JSC::MacroAssemblerARM64::makeTestBitAndBranch):
(JSC::MacroAssemblerARM64::ARM64Condition):
(JSC::MacroAssemblerARM64::moveWithFixedWidth):
(JSC::MacroAssemblerARM64::load):
(JSC::MacroAssemblerARM64::store):
(JSC::MacroAssemblerARM64::tryLoadWithOffset):
(JSC::MacroAssemblerARM64::tryLoadSignedWithOffset):
(JSC::MacroAssemblerARM64::tryStoreWithOffset):
(JSC::MacroAssemblerARM64::jumpAfterFloatingPointCompare):
(JSC::MacroAssemblerARM64::linkCall):
* assembler/MacroAssemblerARMv7.h:
* assembler/MacroAssemblerMIPS.h:
* assembler/MacroAssemblerX86Common.h:
* assembler/ProbeStack.h:
- Removed a forward declaration of an obsolete class.

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

19 months agoServiceWorkerContainer::startScriptFetchForJob() fails to isolate copy the registrati...
cdumez@apple.com [Thu, 22 Feb 2018 21:40:38 +0000 (21:40 +0000)]
ServiceWorkerContainer::startScriptFetchForJob() fails to isolate copy the registrationKey before passing it to the main thread
https://bugs.webkit.org/show_bug.cgi?id=183050
<rdar://problem/37796881>

Reviewed by Youenn Fablet.

Create an isolated copy of the registrationKey before passing it to the main thread in ServiceWorkerContainer's
startScriptFetchForJob() / jobFinishedLoadingScript() / jobFailedLoadingScript().

* workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::startScriptFetchForJob):
(WebCore::ServiceWorkerContainer::jobFinishedLoadingScript):
(WebCore::ServiceWorkerContainer::jobFailedLoadingScript):

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

19 months agoFetch event release assert should take into account the fetch mode
commit-queue@webkit.org [Thu, 22 Feb 2018 20:42:54 +0000 (20:42 +0000)]
Fetch event release assert should take into account the fetch mode
https://bugs.webkit.org/show_bug.cgi?id=183047

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-22
Reviewed by Chris Dumez.

In case of navigation tasks, we should use the request URL and not the origin of the loading client.

* WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::isValidFetch):
(WebKit::WebSWContextManagerConnection::startFetch):

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

19 months ago[WinCairo] Fix compile errors in WebPageWin.cpp and WebProcessWin.cpp due to WebCore...
commit-queue@webkit.org [Thu, 22 Feb 2018 19:50:57 +0000 (19:50 +0000)]
[WinCairo] Fix compile errors in WebPageWin.cpp and WebProcessWin.cpp due to WebCore forwarding header paths
https://bugs.webkit.org/show_bug.cgi?id=182969

Patch by Yousuke Kimoto <yousuke.kimoto@sony.com> on 2018-02-22
Reviewed by Konstantin Tokarev.

* WebProcess/WebPage/win/WebPageWin.cpp:
* WebProcess/win/WebProcessWin.cpp:

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

19 months agoServiceWorkerContainer::scheduleJob() fails to isolate copy the jobData before passin...
cdumez@apple.com [Thu, 22 Feb 2018 19:46:18 +0000 (19:46 +0000)]
ServiceWorkerContainer::scheduleJob() fails to isolate copy the jobData before passing it to the main thread
https://bugs.webkit.org/show_bug.cgi?id=183046
<rdar://problem/37793395>

Reviewed by Youenn Fablet.

Make sure we isolate copy the jobData before passing it to the main thread in ServiceWorkerContainer::scheduleJob().
The jobData contains Strings / URLs so it is not safe to have non-isolated copies of it on various threads.

* workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::scheduleJob):

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

19 months ago[Curl] Fix warning on clang.
commit-queue@webkit.org [Thu, 22 Feb 2018 19:41:18 +0000 (19:41 +0000)]
[Curl] Fix warning on clang.
https://bugs.webkit.org/show_bug.cgi?id=182986

Patch by Basuke Suzuki <Basuke.Suzuki@sony.com> on 2018-02-22
Reviewed by Konstantin Tokarev.

No new tests because there's no behaviro changes.

* platform/network/curl/CurlResourceHandleDelegate.cpp:
(WebCore::CurlResourceHandleDelegate::curlDidSendData):
(WebCore::CurlResourceHandleDelegate::curlDidReceiveBuffer):
(WebCore::CurlResourceHandleDelegate::curlDidFailWithError):
* platform/network/curl/CurlResourceHandleDelegate.h:

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

19 months agoRemove sleep(double) and sleepMS(double) interfaces
utatane.tea@gmail.com [Thu, 22 Feb 2018 18:54:07 +0000 (18:54 +0000)]
Remove sleep(double) and sleepMS(double) interfaces
https://bugs.webkit.org/show_bug.cgi?id=183038

Reviewed by Mark Lam.

Source/JavaScriptCore:

* bytecode/SuperSampler.cpp:
(JSC::initializeSuperSampler):

Source/WebKit:

* PluginProcess/WebProcessConnection.cpp:
(WebKit::WebProcessConnection::createPluginAsynchronously):
* UIProcess/linux/MemoryPressureMonitor.cpp:
(WebKit::pollIntervalForUsedMemoryPercentage):
(WebKit::MemoryPressureMonitor::MemoryPressureMonitor):
* WebProcess/wpe/WebProcessMainWPE.cpp:

Source/WTF:

This patch removes sleep(double) and sleepMS(double) interfaces.
We can just use sleep(Seconds) instead.

* benchmarks/LockFairnessTest.cpp:
* benchmarks/LockSpeedTest.cpp:
* wtf/CurrentTime.cpp:
(WTF::sleep):
* wtf/CurrentTime.h:
(WTF::sleepMS): Deleted.
* wtf/DebugUtilities.h:
* wtf/Seconds.cpp:
(WTF::sleep): Deleted.
* wtf/Seconds.h:
* wtf/StackShotProfiler.h:

Tools:

* DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp:
(PluginTest::indicateTestFailure):
* DumpRenderTree/TestNetscapePlugIn/Tests/EvaluateJSWithinNPP_New.cpp:
(EvaluteJSWithinNPP_New::NPP_New):
* DumpRenderTree/TestNetscapePlugIn/Tests/InvokeDestroysPluginWithinNPP_New.cpp:
(InvokeDestroysPluginWithinNPP_New::NPP_New):
* DumpRenderTree/TestNetscapePlugIn/Tests/SlowNPPNew.cpp:
* TestWebKitAPI/Tests/WTF/Signals.cpp:
(TEST):
* TestWebKitAPI/Tests/WTF/ThreadGroup.cpp:
(TestWebKitAPI::testThreadGroup):
* TestWebKitAPI/Tests/WTF/WorkQueue.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
(TestWebKitAPI::TEST):
* TestWebKitAPI/jsconly/PlatformUtilitiesJSCOnly.cpp:
(TestWebKitAPI::Util::sleep):

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

19 months agoAdd release logging for CacheStorage::Engine disk related functions
commit-queue@webkit.org [Thu, 22 Feb 2018 18:51:54 +0000 (18:51 +0000)]
Add release logging for CacheStorage::Engine disk related functions
https://bugs.webkit.org/show_bug.cgi?id=183042

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-22
Reviewed by Chris Dumez.

* NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::writeFile):
(WebKit::CacheStorage::Engine::readFile):

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

19 months agoWorkerCacheStorageConnection::doRemove can assert in case two frames try to delete...
commit-queue@webkit.org [Thu, 22 Feb 2018 18:48:34 +0000 (18:48 +0000)]
WorkerCacheStorageConnection::doRemove can assert in case two frames try to delete the same cache at the same time
https://bugs.webkit.org/show_bug.cgi?id=183041

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-22
Reviewed by Chris Dumez.

* Modules/cache/WorkerCacheStorageConnection.cpp:
(WebCore::WorkerCacheStorageConnection::doRemove): Update the assertion to accept the
case of an already deleted cache, i.e. returned identifer is 0.

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

19 months agoRemove some code leftovers in LibWebRTCMediaEndpoint and RealtimeOutgoingVideoSource...
commit-queue@webkit.org [Thu, 22 Feb 2018 18:32:43 +0000 (18:32 +0000)]
Remove some code leftovers in LibWebRTCMediaEndpoint and RealtimeOutgoingVideoSource classes
https://bugs.webkit.org/show_bug.cgi?id=183031

Patch by Alejandro G. Castro <alex@igalia.com> on 2018-02-22
Reviewed by Youenn Fablet.

This include and namespace are not required in the file.

Just removing unused code, no tests required.

* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

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

19 months agoDocument.open() cancels existing provisional load but not navigation policy check
cdumez@apple.com [Thu, 22 Feb 2018 18:29:26 +0000 (18:29 +0000)]
Document.open() cancels existing provisional load but not navigation policy check
https://bugs.webkit.org/show_bug.cgi?id=183012
<rdar://problem/37755831>

Reviewed by Alex Christensen.

Source/WebCore:

Test: fast/dom/Document/open-with-pending-load-async-policy.html

* dom/Document.cpp:
(WebCore::Document::open):
The existing code was calling FrameLoader::stopAllLoaders() when the loader's state
is FrameStateProvisional. The issue is that the FrameLoader's state only gets set
to FrameStateProvisional after the policy decision for the navigation is made.
This means that we fail to cancel a pending load if is still in the policy decision
stage, which can happen when the policy decision is made asynchronously. We now
also cancel such pending navigation policy checks as well.

* loader/PolicyChecker.cpp:
(WebCore::PolicyChecker::checkNavigationPolicy):
Make sure the m_delegateIsDecidingNavigationPolicy flag gets reset inside the
lambda. Otherwise, it gets reset too early when the policy decision is made
asynchronously.

LayoutTests:

Add layout test coverage.

* fast/dom/Document/open-with-pending-load-async-policy-expected.txt: Added.
* fast/dom/Document/open-with-pending-load-async-policy.html: Added.

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

19 months agoUpdated expectations for http/tests/appcache/404-resource-with-slow-main-resource...
jlewis3@apple.com [Thu, 22 Feb 2018 18:22:24 +0000 (18:22 +0000)]
Updated expectations for http/tests/appcache/404-resource-with-slow-main-resource.php.
https://bugs.webkit.org/show_bug.cgi?id=153503

Unreviewed test gardening.

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

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

19 months agoUnreviewed, rolling out r228902.
jlewis3@apple.com [Thu, 22 Feb 2018 18:01:08 +0000 (18:01 +0000)]
Unreviewed, rolling out r228902.

This broke internal builds.

Reverted changeset:

"[Cocoa] Web Automation: provide a way to ask clients the type
of a JavaScript dialog"
https://bugs.webkit.org/show_bug.cgi?id=182660
https://trac.webkit.org/changeset/228902

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

19 months agoAdd release asserts for service worker fetch and postMessage events
cdumez@apple.com [Thu, 22 Feb 2018 16:55:53 +0000 (16:55 +0000)]
Add release asserts for service worker fetch and postMessage events
https://bugs.webkit.org/show_bug.cgi?id=183025
rdar://problem/37765052

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-22
Reviewed by Daniel Bates.

Source/WebCore:

Add release assertion so that a service worker will only dispatch a message event
for clients and service workers with the same origin.
No change of behavior.

* platform/network/ResourceRequestBase.h:
* workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::postMessageToServiceWorker):
* workers/service/context/ServiceWorkerThreadProxy.h:

Source/WebKit:

Add assertion to protect interception of a fetch load by a service worker with
a different origin from the page.

* WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::startFetch):

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

19 months agoMark http/tests/preload/onerror_event.html as a flaky crash on Windows.
pvollan@apple.com [Thu, 22 Feb 2018 16:43:45 +0000 (16:43 +0000)]
Mark http/tests/preload/onerror_event.html as a flaky crash on Windows.
https://bugs.webkit.org/show_bug.cgi?id=179297

Unreviewed test gardening.

* platform/win/TestExpectations:

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

19 months agoincluding both gl3.h and gl2.h when USE_OPENGL_ES is enabled
magomez@igalia.com [Thu, 22 Feb 2018 15:33:03 +0000 (15:33 +0000)]
including both gl3.h and gl2.h when USE_OPENGL_ES is enabled
https://bugs.webkit.org/show_bug.cgi?id=183008

Reviewed by Michael Catanzaro.

Don't include GLES3 headers as we stick to GLES2 API resources.

No new tests, no behavior change.

* platform/graphics/GLContext.cpp:

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

19 months agoUnreviewed GTK+ gardening after r228915.
magomez@igalia.com [Thu, 22 Feb 2018 14:57:36 +0000 (14:57 +0000)]
Unreviewed GTK+ gardening after r228915.

* platform/gtk/TestExpectations:

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