WebKit-https.git
15 months agoLayout Test media/video-add-autoplay-user-gesture.html is flaky.
ryanhaddad@apple.com [Tue, 31 Jul 2018 16:52:42 +0000 (16:52 +0000)]
Layout Test media/video-add-autoplay-user-gesture.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=174591

Reviewed by Darin Adler.

Remove the 1000ms restriction for this test to complete in order to eliminate flakiness.

* media/video-add-autoplay-user-gesture.html:

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

15 months agoUse static const global variable for TransformationMatrix instead of NeverDestroyed
utatane.tea@gmail.com [Tue, 31 Jul 2018 16:31:47 +0000 (16:31 +0000)]
Use static const global variable for TransformationMatrix instead of NeverDestroyed
https://bugs.webkit.org/show_bug.cgi?id=188195

Reviewed by Darin Adler.

Since TransformationMatrix does not have a non-trivial destructor, we can put it
as static const global variable if its constructor is constexpr. This patch makes
some of constructors constexpr and makes identityTransform static const global variable
instead of NeverDestroyed<> + static function. This removes unnecessary static function
and lazy initialization.

No behavior change.

* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::transform const):
(WebCore::GraphicsLayer::childrenTransform const):
(WebCore::identityTransform): Deleted.
* platform/graphics/transforms/TransformationMatrix.h:
(WebCore::TransformationMatrix::TransformationMatrix):

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

15 months ago[JSC] Remove gcc warnings for 32-bit platforms
guijemont@igalia.com [Tue, 31 Jul 2018 15:57:10 +0000 (15:57 +0000)]
[JSC] Remove gcc warnings for 32-bit platforms
https://bugs.webkit.org/show_bug.cgi?id=187803

Reviewed by Yusuke Suzuki.

* assembler/MacroAssemblerPrinter.cpp:
(JSC::Printer::printPCRegister):
(JSC::Printer::printRegisterID):
(JSC::Printer::printAddress):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::speculateNumber):
(JSC::DFG::SpeculativeJIT::speculateMisc):
* jit/CCallHelpers.h:
(JSC::CCallHelpers::calculatePokeOffset):
* runtime/Options.cpp:
(JSC::parse):

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

15 months ago[LFC][Floating] Add basic left/right floating positioning.
zalan@apple.com [Tue, 31 Jul 2018 15:02:18 +0000 (15:02 +0000)]
[LFC][Floating] Add basic left/right floating positioning.
https://bugs.webkit.org/show_bug.cgi?id=188148

Reviewed by Antti Koivisto.

This patch implements simple floating positioning.
(Floatings with different containing blocks do not work yet.)

* layout/FloatingContext.cpp:
(WebCore::Layout::FloatingPair::isEmpty const):
(WebCore::Layout::Iterator::current const):
(WebCore::Layout::Iterator::verticalPosition const):
(WebCore::Layout::FloatingContext::FloatingContext):
(WebCore::Layout::FloatingContext::computePosition const):
(WebCore::Layout::FloatingContext::floatingPosition const):
(WebCore::Layout::FloatingContext::initialVerticalPosition const):
(WebCore::Layout::FloatingContext::alignWithContainingBlock const):
(WebCore::Layout::FloatingContext::alignWithFloatings const):
(WebCore::Layout::floatingDisplayBox):
(WebCore::Layout::FloatingPair::FloatingPair):
(WebCore::Layout::FloatingPair::left const):
(WebCore::Layout::FloatingPair::right const):
(WebCore::Layout::FloatingPair::intersects const):
(WebCore::Layout::Iterator::Iterator):
(WebCore::Layout::Iterator::operator++):
(WebCore::Layout::Iterator::set):
(WebCore::Layout::FloatingContext::computePosition): Deleted.
* layout/FloatingContext.h:
* layout/FloatingState.cpp:
(WebCore::Layout::FloatingState::append):
* layout/FloatingState.h:
(WebCore::Layout::FloatingState::floatings const):
(WebCore::Layout::FloatingState::last const):
* layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layout const):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot const):
* layout/displaytree/DisplayBox.cpp:
(WebCore::Display::Box::Rect::Rect):
* layout/displaytree/DisplayBox.h:
(WebCore::Display::Box::Rect::intersects const):
(WebCore::Display::Box::rect const):

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

15 months agoRemove ResourceResponse::cacheBodyKey API
commit-queue@webkit.org [Tue, 31 Jul 2018 12:01:48 +0000 (12:01 +0000)]
Remove ResourceResponse::cacheBodyKey API
https://bugs.webkit.org/show_bug.cgi?id=188192

Patch by Rob Buis <rbuis@igalia.com> on 2018-07-31
Reviewed by Frédéric Wang.

Source/WebCore:

Removed unused API.

No new tests needed since this API is not used.

* platform/network/ResourceResponseBase.h:
(WebCore::ResourceResponseBase::encode const):
(WebCore::ResourceResponseBase::decode):
(WebCore::ResourceResponseBase::cacheBodyKey const): Deleted.
(WebCore::ResourceResponseBase::setCacheBodyKey): Deleted.

Source/WebKit:

Remove unused API.

* NetworkProcess/cache/NetworkCacheEntry.cpp:
(WebKit::NetworkCache::Entry::decodeStorageRecord):

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

15 months ago[WPE] webanimations/partly-accelerated-transition-by-removing-property.html is failin...
magomez@igalia.com [Tue, 31 Jul 2018 10:39:36 +0000 (10:39 +0000)]
[WPE] webanimations/partly-accelerated-transition-by-removing-property.html is failing since added in r234250 "[Web Animations] REGRESSION: transition added immediately after element creation doesn't work"
https://bugs.webkit.org/show_bug.cgi?id=188058

Unreviewed. Adding custom test expectation for WPE, as it never leaves AC mode.

* platform/wpe/TestExpectations:
* platform/wpe/webanimations/partly-accelerated-transition-by-removing-property-expected.txt: Added.

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

15 months ago[WTF] String::formatWithArguments() is unused
tpopela@redhat.com [Tue, 31 Jul 2018 09:20:57 +0000 (09:20 +0000)]
[WTF] String::formatWithArguments() is unused
https://bugs.webkit.org/show_bug.cgi?id=187955

Reviewed by Darin Adler.

Source/WTF:

This method is unused, remove it.

* wtf/text/WTFString.cpp:
(WTF::String::formatWithArguments): Deleted.
* wtf/text/WTFString.h:

Tools:

Remove tests for WTF::String::formatWithArguments() as it's unused and
we are removing it.

* TestWebKitAPI/Tests/WTF/WTFString.cpp:

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

15 months agowatchOS engineering build is broken after r234227
wenson_hsieh@apple.com [Tue, 31 Jul 2018 00:48:50 +0000 (00:48 +0000)]
watchOS engineering build is broken after r234227
https://bugs.webkit.org/show_bug.cgi?id=188180

Reviewed by Keith Miller.

In the case where we're building with a `PLATFORM_NAME` of neither "macosx" nor "iphone*",
postprocess-headers.sh attempts to delete any usage of the JSC availability macros. However,
`JSC_MAC_VERSION_TBA` and `JSC_IOS_VERSION_TBA` still remain, and JSValue.h's usage of
`JSC_IOS_VERSION_TBA` causes engineering watchOS builds to fail.

To fix this, simply allow the fallback path to remove these macros from JavaScriptCore headers
entirely, since there's no relevant version to replace them with.

* postprocess-headers.sh:

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

15 months ago[ews-build] Fix typo in builder name for Bindings-tests-EWS.
aakash_jain@apple.com [Mon, 30 Jul 2018 23:51:05 +0000 (23:51 +0000)]
[ews-build] Fix typo in builder name for Bindings-tests-EWS.

* BuildSlaveSupport/ews-build/config.json: Changed 'tests' to 'Tests' to make it consistent with
other builders.

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

15 months ago[ews-build] Add support for API tests in OpenSource EWS
aakash_jain@apple.com [Mon, 30 Jul 2018 23:29:13 +0000 (23:29 +0000)]
[ews-build] Add support for API tests in OpenSource EWS
https://bugs.webkit.org/show_bug.cgi?id=188156

Reviewed by Lucas Forschler.

* BuildSlaveSupport/ews-build/config.json:
* BuildSlaveSupport/ews-build/factories.py:
(BuildFactory.__init__): Added triggers parameter.
(BuildFactory): If trigger is defined, create and upload archive and trigger appropriate queues.
(BuildFactory.propertiesToPassToTriggers): Pass all the required properties to triggered queue.
(APITestsFactory): Factory for running API tests.
* BuildSlaveSupport/ews-build/steps.py:
(ConfigureBuild.start): Set the property only if property is defined in config.json. Also set the
source of the property.

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

15 months agoAdd support for fetching and remove type _WKWebsiteDataTypeHSTSCache
sihui_liu@apple.com [Mon, 30 Jul 2018 23:23:40 +0000 (23:23 +0000)]
Add support for fetching and remove type  _WKWebsiteDataTypeHSTSCache
https://bugs.webkit.org/show_bug.cgi?id=187379
<rdar://problem/41879559>

Source/WebCore/PAL:

Reviewed by Geoffrey Garen.

* pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

WKWebsiteDataStore should support _WKWebsiteDataTypeHSTSCache so Safari could list HSTS cache entries
and be able to remove them on a per-domain basis.

Reviewed by Geoffrey Garen.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::filterPreloadHSTSEntry):
(WebKit::NetworkProcess::getHostNamesWithHSTSCache):
(WebKit::NetworkProcess::deleteHSTSCacheForHostNames):
* Shared/WebsiteData/WebsiteData.cpp:
(WebKit::WebsiteData::encode const):
(WebKit::WebsiteData::decode):
* Shared/WebsiteData/WebsiteData.h:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/WebsiteData/WebsiteDataRecord.cpp:
(WebKit::WebsiteDataRecord::displayNameForCookieHostName):
(WebKit::WebsiteDataRecord::displayNameForHostName):
(WebKit::WebsiteDataRecord::addHSTSCacheHostname):
(WebKit::WebsiteDataRecord::displayNameForPluginDataHostName): Deleted.
* UIProcess/WebsiteData/WebsiteDataRecord.h:
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::WebsiteDataStore::removeData):

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

15 months ago[ews-build] loadConfig should ensure that the triggers are valid
aakash_jain@apple.com [Mon, 30 Jul 2018 23:22:22 +0000 (23:22 +0000)]
[ews-build] loadConfig should ensure that the triggers are valid
https://bugs.webkit.org/show_bug.cgi?id=188134

Reviewed by Lucas Forschler.

* BuildSlaveSupport/ews-build/loadConfig.py:
(checkValidBuilder): Added a check to ensure that the builder doesn't refernce non-existing scheduler.
(checkValidSchedulers): Ensures that the scheduler is not un-used.
* BuildSlaveSupport/ews-build/loadConfig_unittest.py: Updated unit-tests.

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

15 months agoWeb Inspector: Dark Mode: Search sidebar panel text field has a white background
nvasilyev@apple.com [Mon, 30 Jul 2018 23:10:56 +0000 (23:10 +0000)]
Web Inspector: Dark Mode: Search sidebar panel text field has a white background
https://bugs.webkit.org/show_bug.cgi?id=188128
<rdar://problem/42678270>

Reviewed by Matt Baker.

Make the search bar in Search tab match the style of the filter bar.

* UserInterface/Views/DarkMode.css:
(@media (prefers-dark-interface)):
(:matches(.search-bar, .filter-bar) > input[type="search"],):
(:matches(.search-bar, .filter-bar) > input[type="search"]::placeholder):
(:matches(.search-bar, .filter-bar) > input[type="search"]:focus):
(.filter-bar > input[type="search"]): Deleted.
(.filter-bar > input[type="search"]::placeholder): Deleted.
(.filter-bar > input[type="search"]:focus): Deleted.

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

15 months agoShrink GraphicsLayerCA
simon.fraser@apple.com [Mon, 30 Jul 2018 23:07:17 +0000 (23:07 +0000)]
Shrink GraphicsLayerCA
https://bugs.webkit.org/show_bug.cgi?id=188141

Reviewed by Zalan Bujtas.
Source/WebCore:

Shrink GraphicsLayerCA from 1040 to 880 bytes by:
* moving all the clone-related stuff into the lazily-allocated m_layerClones
* moving all the animation-related stuff into the lazily-allocated m_animations
* making enums be 8-bit
* re-ordering data members

* page/cocoa/ResourceUsageOverlayCocoa.mm:
(WebCore::ResourceUsageOverlay::platformInitialize):
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::GraphicsLayer):
(WebCore::operator<<):
* platform/graphics/GraphicsLayer.h:
* platform/graphics/GraphicsLayerClient.h:
* platform/graphics/WindRule.h:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::moveOrCopyAnimations):
(WebCore::GraphicsLayerCA::addProcessingActionForAnimation):
(WebCore::GraphicsLayerCA::setContentsToSolidColor):
(WebCore::GraphicsLayerCA::setContentsToImage):
(WebCore::GraphicsLayerCA::setContentsToPlatformLayer):
(WebCore::GraphicsLayerCA::contentsLayerForMedia const):
(WebCore::GraphicsLayerCA::layerDidDisplay):
(WebCore::layerTypeForCustomBackdropAppearance):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateGeometry):
(WebCore::GraphicsLayerCA::updateMasksToBounds):
(WebCore::GraphicsLayerCA::updateContentsVisibility):
(WebCore::GraphicsLayerCA::updateContentsOpaque):
(WebCore::GraphicsLayerCA::updateBackfaceVisibility):
(WebCore::GraphicsLayerCA::updateFilters):
(WebCore::GraphicsLayerCA::updateBackdropFilters):
(WebCore::GraphicsLayerCA::updateBackdropFiltersRect):
(WebCore::GraphicsLayerCA::ensureStructuralLayer):
(WebCore::GraphicsLayerCA::updateDrawsContent):
(WebCore::GraphicsLayerCA::updateCoverage):
(WebCore::GraphicsLayerCA::updateDebugIndicators):
(WebCore::GraphicsLayerCA::updateContentsImage):
(WebCore::GraphicsLayerCA::updateContentsPlatformLayer):
(WebCore::GraphicsLayerCA::updateContentsColorLayer):
(WebCore::GraphicsLayerCA::updateContentsRects):
(WebCore::GraphicsLayerCA::updateMasksToBoundsRect):
(WebCore::GraphicsLayerCA::updateMaskLayer):
(WebCore::GraphicsLayerCA::updateAnimations):
(WebCore::GraphicsLayerCA::isRunningTransformAnimation const):
(WebCore::GraphicsLayerCA::ensureLayerAnimations):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
* platform/graphics/ca/GraphicsLayerCA.h:
(WebCore::GraphicsLayerCA::animationIsRunning const):
(WebCore::GraphicsLayerCA::primaryLayerClones const): Deleted.
* platform/graphics/ca/PlatformCALayerClient.h:
(WebCore::PlatformCALayerClient::platformCALayerContentsOrientation const):
* platform/graphics/ca/TileCoverageMap.h:
* platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
* platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(PlatformCALayerCocoa::PlatformCALayerCocoa):
(PlatformCALayerCocoa::requiresCustomAppearanceUpdateOnBoundsChange const):
(PlatformCALayerCocoa::updateCustomAppearance):
(PlatformCALayer::drawLayerContents):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateCustomAppearance):
(WebCore::RenderLayerBacking::updateConfiguration):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::rootBackgroundColorOrTransparencyChanged):
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):

Source/WebKit:

Shrink GraphicsLayerCA from 1040 to 880 bytes by:
* moving all the clone-related stuff into the lazily-allocated m_layerClones
* moving all the animation-related stuff into the lazily-allocated m_animations
* making enums be 8-bit
* re-ordering data members

* Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
(WebKit::updateCustomAppearance):
(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
* Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
* WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::requiresCustomAppearanceUpdateOnBoundsChange const):

Source/WebKitLegacy/mac:

Shrink GraphicsLayerCA from 1040 to 880 bytes by:
* moving all the clone-related stuff into the lazily-allocated m_layerClones
* moving all the animation-related stuff into the lazily-allocated m_animations
* making enums be 8-bit
* re-ordering data members

* WebView/WebView.mm:
(-[WebView _setMediaLayer:forPluginView:]):

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

15 months agoREGRESSION (r230817): Terrible performance when selecting text on Stash code review
wenson_hsieh@apple.com [Mon, 30 Jul 2018 21:47:31 +0000 (21:47 +0000)]
REGRESSION (r230817): Terrible performance when selecting text on Stash code review
https://bugs.webkit.org/show_bug.cgi?id=188144
<rdar://problem/42642489>

Reviewed by Darin Adler.

After r230817, mouse events were serially dispatched to the web process and handled before the subsequent mouse
event. However, this resulted in rapid-fire mouse move events filling up the mouse event queue in the case where
mouse move events were being handled by the web process at a slower rate than the UI process was enqueueing
them. To mitigate this, r231511 introduced a mechanism for replacing the most recently enqueued mouse move event
with an incoming mouse move event.

However, when a user with a force-click-enabled trackpad performs a mouse drag, a rapid stream of
"mouseforcechanged" events is interleaved alongside the stream of "mousemove" events. This renders r231511
ineffective, since the most recently queued event is often a "mouseforcechanged" event instead of a "mousemove".
On the stash code review page, this can result in hundreds of mouse events being backed up in the mouse event
queue, causing perceived slowness when selecting text.

To fix this, we extend the mechanism introduced in r231511, such that it is capable of replacing both
"mouseforcechanged" and "mousemove" events in the queue. Rather than consider only the most recently queued
item, we instead find the most recently queued event that matches the type of the incoming event, remove it from
the queue, and then append the incoming event to the end of the queue. To avoid the risk of removing the only
"mousemove" or "mouseforcechanged" event in the middle of a mouse down and mouse up, we also bail when searching
backwards for an event to replace if we come across any event that is neither of these types.

This effectively throttles the rate at which mouseforcechanged or mousemove events are dispatched when a user
with force-click-enabled hardware clicks and drags the mouse across the page.

* UIProcess/WebPageProxy.cpp:
(WebKit::removeOldRedundantEvent):
(WebKit::WebPageProxy::handleMouseEvent):

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

15 months agoClarify conversion rules for JSValue property access API
keith_miller@apple.com [Mon, 30 Jul 2018 21:27:43 +0000 (21:27 +0000)]
Clarify conversion rules for JSValue property access API
https://bugs.webkit.org/show_bug.cgi?id=188179

Reviewed by Geoffrey Garen.

* API/JSValue.h:

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

15 months agoAdd missing CoreGraphics SPI
webkit@devinrousso.com [Mon, 30 Jul 2018 20:38:20 +0000 (20:38 +0000)]
Add missing CoreGraphics SPI
https://bugs.webkit.org/show_bug.cgi?id=188177

Reviewed by Joseph Pecoraro.

Source/WebCore/PAL:

* pal/spi/cg/CoreGraphicsSPI.h:

Source/WebKit:

* WebProcess/cocoa/WebProcessCocoa.mm:

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

15 months agoRename some JSC API functions/types.
keith_miller@apple.com [Mon, 30 Jul 2018 20:13:37 +0000 (20:13 +0000)]
Rename some JSC API functions/types.
https://bugs.webkit.org/show_bug.cgi?id=188173

Reviewed by Saam Barati.

* API/JSObjectRef.cpp:
(JSObjectHasPropertyForKey):
(JSObjectGetPropertyForKey):
(JSObjectSetPropertyForKey):
(JSObjectDeletePropertyForKey):
(JSObjectHasPropertyKey): Deleted.
(JSObjectGetPropertyKey): Deleted.
(JSObjectSetPropertyKey): Deleted.
(JSObjectDeletePropertyKey): Deleted.
* API/JSObjectRef.h:
* API/JSValue.h:
* API/JSValue.mm:
(-[JSValue valueForProperty:]):
(-[JSValue setValue:forProperty:]):
(-[JSValue deleteProperty:]):
(-[JSValue hasProperty:]):
(-[JSValue defineProperty:descriptor:]):
* API/tests/testapi.cpp:
(TestAPI::run):

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

15 months ago[WebGL2] Support compilation of GLSL ES version 300 shaders
commit-queue@webkit.org [Mon, 30 Jul 2018 20:00:54 +0000 (20:00 +0000)]
[WebGL2] Support compilation of GLSL ES version 300 shaders
https://bugs.webkit.org/show_bug.cgi?id=187982
<rdar://problem/42564229>

Patch by Justin Fan <justin_fan@apple.com> on 2018-07-30
Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/canvas/webgl/webgl2-glsl3-compile.html

* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::create): Rename 'useGLES3' to 'isWebGL2' (everywhere) to make more sense.
* platform/graphics/GraphicsContext3DAttributes.h: Rename 'useGLES3' to 'isWebGL2'.
* platform/graphics/cocoa/GraphicsContext3DCocoa.mm:
(WebCore::setPixelFormat): Back WebGL2 contexts with OpenGL 4 for full OpenGL ES 3 support.
(WebCore::GraphicsContext3D::GraphicsContext3D): Request correct GLSL output version and WebGL 2 for ANGLE shader compilation.
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::checkVaryingsPacking const): MAX_VARYING_FLOATS is deprecated in OpenGL 3+.
* platform/graphics/texmap/GraphicsContext3DTextureMapper.cpp: Rename 'useGLES3' to 'isWebGL2'.
(WebCore::GraphicsContext3D::create):
(WebCore::GraphicsContext3D::GraphicsContext3D):

LayoutTests:

New simple test added to ensure that GLSL ES version 300 shaders compile.
Updated other test results in glsl3 to match new functionality.

* fast/canvas/webgl/webgl2-glsl3-compile-expected.txt: Added.
* fast/canvas/webgl/webgl2-glsl3-compile.html: Added.
* platform/ios/TestExpectations: Skipping ios for now.
* webgl/2.0.0/conformance2/glsl3/compound-assignment-type-combination-expected.txt:
* webgl/2.0.0/conformance2/glsl3/forbidden-operators-expected.txt:
* webgl/2.0.0/conformance2/glsl3/invalid-default-precision-expected.txt:
* webgl/2.0.0/conformance2/glsl3/invalid-invariant-expected.txt:
* webgl/2.0.0/conformance2/glsl3/misplaced-version-directive-expected.txt:
* webgl/2.0.0/conformance2/glsl3/sampler-no-precision-expected.txt:
* webgl/2.0.0/conformance2/glsl3/sequence-operator-returns-non-constant-expected.txt:
* webgl/2.0.0/conformance2/glsl3/texture-offset-out-of-range-expected.txt:
* webgl/2.0.0/conformance2/glsl3/texture-offset-uniform-texture-coordinate-expected.txt:
* webgl/2.0.0/conformance2/glsl3/uniform-block-layout-match-expected.txt:
* webgl/2.0.0/conformance2/glsl3/uniform-block-layouts-expected.txt:

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

15 months agoRebaseline fast/forms/file/input-file-re-render.html for Mojave.
ryanhaddad@apple.com [Mon, 30 Jul 2018 19:56:16 +0000 (19:56 +0000)]
Rebaseline fast/forms/file/input-file-re-render.html for Mojave.

Unreviewed test gardening.

* platform/mac-highsierra/fast/forms/file/input-file-re-render-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/file/input-file-re-render-expected.txt.
* platform/mac/fast/forms/file/input-file-re-render-expected.txt:

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

15 months agoUpdate TestExpectations for mac-wk1.
ryanhaddad@apple.com [Mon, 30 Jul 2018 19:56:00 +0000 (19:56 +0000)]
Update TestExpectations for mac-wk1.

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

15 months agoMatch GraphicsContext3D with correct virtual screen using registryID
commit-queue@webkit.org [Mon, 30 Jul 2018 19:52:51 +0000 (19:52 +0000)]
Match GraphicsContext3D with correct virtual screen using registryID
https://bugs.webkit.org/show_bug.cgi?id=188072
<rdar://problem/42634940>

Patch by Justin Fan <justin_fan@apple.com> on 2018-07-30
Reviewed by Dean Jackson.

Follow up to https://bugs.webkit.org/show_bug.cgi?id=187750. Rather than matching rendererIDs,
which can vary between processes, match GPU to display using registryID that is unique to a GPU,
which was added to CGL in MacOS 10.13.

No new tests. Manually tested on MacBookPro13,3 and iMacPro1,1 with Apple DisplayPort Cinema Display
and RX 580 external GPU.

* platform/PlatformScreen.h:
* platform/ScreenProperties.h:
(WebCore::ScreenData::encode const):
(WebCore::ScreenData::decode):
* platform/graphics/cocoa/GraphicsContext3DCocoa.mm:
(WebCore::setGPUByRegistryID):
(WebCore::setGPUByDisplayMask):
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::screenDidChange):
(WebCore::identifyAndSetCurrentGPU): Deleted.
* platform/mac/PlatformScreenMac.mm:
(WebCore::collectScreenProperties):
(WebCore::primaryRegistryID):
(WebCore::registryIDForDisplay):
(WebCore::registryIDForDisplayMask):
(WebCore::rendererIDForDisplayMask): Deleted.
(WebCore::rendererIDForDisplay): Deleted.
(WebCore::primaryRendererID): Deleted.

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

15 months agoSource/WebCore:
commit-queue@webkit.org [Mon, 30 Jul 2018 19:37:42 +0000 (19:37 +0000)]
Source/WebCore:
Merge PlatformCookieJar functions into NetworkStorageSession
https://bugs.webkit.org/show_bug.cgi?id=188137

Patch by Rob Buis <rbuis@igalia.com> on 2018-07-30
Reviewed by Alex Christensen.

No new tests -- no change in WebKit functionality.

* PlatformMac.cmake: Remove CookieJarMac.mm reference
* SourcesCocoa.txt: Remove CookieJarMac.mm reference
* WebCore.xcodeproj/project.pbxproj:
* loader/CookieJar.cpp: Remove PlatformCookieJar.h reference.
* platform/Curl.cmake: Remove CookieJarCurl.cpp reference.
* platform/SourcesSoup.txt: Remove CookieJarSoup.cpp reference.
* platform/network/CacheValidation.cpp: Adapt callsites to use
NetworkStorageSession instead of CookieJar functions.

(WebCore::headerValueForVary):
* platform/network/NetworkStorageSession.h: Add PlatformCookieJar
functions.

* platform/network/PlatformCookieJar.h: Removed.
* platform/network/SocketStreamHandleImpl.cpp: Adapt callsites to
use NetworkStorageSession instead of CookieJar functions.
(WebCore::cookieDataForHandshake):
* platform/network/cf/CookieJarCFNet.cpp: Removed.
* platform/network/cf/NetworkStorageSessionCFNet.cpp: Move functions
from CookieJarCFNet.cpp.
(WebCore::cookieDomain):
(WebCore::canonicalCookieTime):
(WebCore::cookieCreatedTime):
(WebCore::cookieExpirationTime):
(WebCore::cookieName):
(WebCore::cookiePath):
(WebCore::cookieValue):
(WebCore::filterCookies):
(WebCore::copyCookiesForURLWithFirstPartyURL):
(WebCore::createCookies):
(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::containsSecureCookies):
(WebCore::NetworkStorageSession::cookiesForDOM const):
(WebCore::NetworkStorageSession::cookieRequestHeaderFieldValue const):
(WebCore::NetworkStorageSession::cookiesEnabled const):
(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::NetworkStorageSession::deleteCookie const):
(WebCore::NetworkStorageSession::getHostnamesWithCookies):
(WebCore::NetworkStorageSession::deleteAllCookies):
(WebCore::NetworkStorageSession::deleteCookiesForHostnames):
(WebCore::NetworkStorageSession::deleteAllCookiesModifiedSince):
* platform/network/cocoa/NetworkStorageSessionCocoa.mm: Move functions
from CookieJarMac.mm.
(WebCore::httpCookies):
(WebCore::deleteHTTPCookie):
(WebCore::policyProperties):
(WebCore::cookiesForURL):
(WebCore::setHTTPCookiesForURL):
(WebCore::httpCookiesForURL):
(WebCore::filterCookies):
(WebCore::applyPartitionToCookies):
(WebCore::cookiesAreBlockedForURL):
(WebCore::cookiesInPartitionForURL):
(WebCore::cookiesForSession):
(WebCore::deleteAllHTTPCookies):
(WebCore::NetworkStorageSession::cookiesForDOM const):
(WebCore::NetworkStorageSession::cookieRequestHeaderFieldValue const):
(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::httpCookieAcceptPolicy):
(WebCore::NetworkStorageSession::cookiesEnabled const):
(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::NetworkStorageSession::deleteCookie const):
(WebCore::NetworkStorageSession::getHostnamesWithCookies):
(WebCore::NetworkStorageSession::deleteAllCookies):
(WebCore::NetworkStorageSession::deleteCookiesForHostnames):
(WebCore::NetworkStorageSession::deleteAllCookiesModifiedSince):
* platform/network/curl/CookieJarCurl.cpp: Removed.
* platform/network/curl/CookieJarCurl.h:
* platform/network/curl/NetworkStorageSessionCurl.cpp: Merge functions
from CookieJarCurl.cpp.
(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::NetworkStorageSession::cookiesEnabled const):
(WebCore::NetworkStorageSession::cookiesForDOM const):
(WebCore::NetworkStorageSession::deleteCookie const):
(WebCore::NetworkStorageSession::deleteAllCookies):
(WebCore::NetworkStorageSession::deleteAllCookiesModifiedSince):
(WebCore::NetworkStorageSession::deleteCookiesForHostnames):
(WebCore::NetworkStorageSession::getHostnamesWithCookies):
(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::NetworkStorageSession::cookieRequestHeaderFieldValue const):
* platform/network/mac/CookieJarMac.mm: Removed.
* platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
* platform/network/soup/CookieJarSoup.cpp: Removed.
* platform/network/soup/NetworkStorageSessionSoup.cpp: Merge functions
from CookieJarSoup.cpp.
(WebCore::NetworkStorageSession::cookiesEnabled const):
(WebCore::httpOnlyCookieExists):
(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::NetworkStorageSession::deleteCookie const):
(WebCore::NetworkStorageSession::deleteAllCookies):
(WebCore::NetworkStorageSession::deleteAllCookiesModifiedSince):
(WebCore::NetworkStorageSession::deleteCookiesForHostnames):
(WebCore::NetworkStorageSession::getHostnamesWithCookies):
(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::cookiesForSession):
(WebCore::NetworkStorageSession::cookiesForDOM const):
(WebCore::NetworkStorageSession::cookieRequestHeaderFieldValue const):

Source/WebKit:
https://bugs.webkit.org/show_bug.cgi?id=188137
Merge PlatformCookieJar functions into NetworkStorageSession

Adapt callsites to use NetworkStorageSession instead of CookieJar functions.

Patch by Rob Buis <rbuis@igalia.com> on 2018-07-30
Reviewed by Alex Christensen.

* NetworkProcess/Cookies/WebCookieManager.cpp:
(WebKit::WebCookieManager::getHostnamesWithCookies):
(WebKit::WebCookieManager::deleteCookiesForHostname):
(WebKit::WebCookieManager::deleteAllCookies):
(WebKit::WebCookieManager::deleteAllCookiesModifiedSince):
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
(WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):
(WebKit::NetworkConnectionToWebProcess::cookiesEnabled):
(WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue):
(WebKit::NetworkConnectionToWebProcess::getRawCookies):
(WebKit::NetworkConnectionToWebProcess::deleteCookie):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::logCookieInformationInternal):
* NetworkProcess/cache/NetworkCache.cpp:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

Source/WebKitLegacy/mac:
Merge PlatformCookieJar functions into NetworkStorageSession
https://bugs.webkit.org/show_bug.cgi?id=188137

Adapt callsites to use NetworkStorageSession instead of CookieJar functions.

Patch by Rob Buis <rbuis@igalia.com> on 2018-07-30
Reviewed by Alex Christensen.

* WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::cookiesForDOM):
(WebPlatformStrategies::setCookiesFromDOM):
(WebPlatformStrategies::cookiesEnabled):
(WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebPlatformStrategies::getRawCookies):
(WebPlatformStrategies::deleteCookie):
* WebView/WebPreferences.mm:
(+[WebPreferences _clearNetworkLoaderSession]):

Source/WebKitLegacy/win:
https://bugs.webkit.org/show_bug.cgi?id=188137
Merge PlatformCookieJar functions into NetworkStorageSession

Adapt callsites to use NetworkStorageSession instead of CookieJar functions.

Patch by Rob Buis <rbuis@igalia.com> on 2018-07-30
Reviewed by Alex Christensen.

* WebCoreSupport/WebPlatformStrategies.cpp:
(WebPlatformStrategies::cookiesForDOM):
(WebPlatformStrategies::setCookiesFromDOM):
(WebPlatformStrategies::cookiesEnabled):
(WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebPlatformStrategies::getRawCookies):
(WebPlatformStrategies::deleteCookie):
* WebPreferences.cpp:
(WebPreferences::clearNetworkLoaderSession):

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

15 months agoAdd RefCounted CompletionHandler wrapping abstraction for sending policy decisions...
achristensen@apple.com [Mon, 30 Jul 2018 19:12:03 +0000 (19:12 +0000)]
Add RefCounted CompletionHandler wrapping abstraction for sending policy decisions back to WebProcess
https://bugs.webkit.org/show_bug.cgi?id=188089

Reviewed by Geoffrey Garen and Said Abou-Hallawa.

This will be necessary for when I add an asynchronous parallel step to decidePolicyForNavigationAction.
We will want to wait for that asynchronous step for decidePolicyForNavigationActionSync but not for a client.

No change in behavior.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::PolicyDecisionSender::create):
(WebKit::WebPageProxy::PolicyDecisionSender::operator()):
(WebKit::WebPageProxy::PolicyDecisionSender::PolicyDecisionSender):
(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSync):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

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

15 months agoNullptr crash accessing Document in GenericEventQueue::dispatchOneEvent()
cdumez@apple.com [Mon, 30 Jul 2018 18:17:12 +0000 (18:17 +0000)]
Nullptr crash accessing Document in GenericEventQueue::dispatchOneEvent()
https://bugs.webkit.org/show_bug.cgi?id=187284

Unreviewed, roll r233496 and r233571 now that all known issues have been fixed via
dependency bugs.

Source/WebCore:

Test: media/track/video-track-addition-and-frame-removal.html

* Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:
(WebCore::WebKitMediaKeySession::suspend):
(WebCore::WebKitMediaKeySession::resume):
(WebCore::WebKitMediaKeySession::stop):
* Modules/encryptedmedia/legacy/WebKitMediaKeySession.h:
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::removeSourceBuffer):
(WebCore::MediaSource::suspend):
(WebCore::MediaSource::resume):
* Modules/mediasource/MediaSource.h:
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::suspend):
(WebCore::SourceBuffer::resume):
(WebCore::SourceBuffer::stop):
* Modules/mediasource/SourceBuffer.h:
* Modules/mediasource/SourceBufferList.cpp:
(WebCore::SourceBufferList::SourceBufferList):
(WebCore::SourceBufferList::canSuspendForDocumentSuspension const):
(WebCore::SourceBufferList::suspend):
(WebCore::SourceBufferList::resume):
(WebCore::SourceBufferList::stop):
(WebCore::SourceBufferList::activeDOMObjectName const):
* Modules/mediasource/SourceBufferList.h:
* Modules/mediasource/SourceBufferList.idl:
* dom/Document.h:
(WebCore::Document::hasBrowsingContext const):
* dom/GenericEventQueue.cpp:
(WebCore::GenericEventQueue::dispatchOneEvent):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::prepareForLoad):
(WebCore::HTMLMediaElement::selectMediaResource):
(WebCore::HTMLMediaElement::prepareToPlay):
(WebCore::HTMLMediaElement::playInternal):
(WebCore::HTMLMediaElement::pauseInternal):
(WebCore::HTMLMediaElement::sourceWasAdded):
* html/track/AudioTrackList.cpp:
(AudioTrackList::activeDOMObjectName const):
* html/track/AudioTrackList.h:
* html/track/AudioTrackList.idl:
* html/track/TextTrackList.cpp:
(TextTrackList::activeDOMObjectName const):
* html/track/TextTrackList.h:
* html/track/TextTrackList.idl:
* html/track/TrackListBase.cpp:
(WebCore::TrackListBase::TrackListBase):
(WebCore::TrackListBase::canSuspendForDocumentSuspension const):
(WebCore::TrackListBase::suspend):
(WebCore::TrackListBase::resume):
(WebCore::TrackListBase::stop):
* html/track/TrackListBase.h:
* html/track/VideoTrackList.cpp:
(VideoTrackList::activeDOMObjectName const):
* html/track/VideoTrackList.h:
* html/track/VideoTrackList.idl:

LayoutTests:

* media/track/video-track-addition-and-frame-removal-expected.txt: Added.
* media/track/video-track-addition-and-frame-removal.html: Added.

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

15 months agoUnreviewed, rolling out r234327.
david_fenton@apple.com [Mon, 30 Jul 2018 17:14:11 +0000 (17:14 +0000)]
Unreviewed, rolling out r234327.

Caused 2 crashes on macOS and iOS debug API tests

Reverted changeset:

"Add RefCounted CompletionHandler wrapping abstraction for
sending policy decisions back to WebProcess"
https://bugs.webkit.org/show_bug.cgi?id=188089
https://trac.webkit.org/changeset/234327

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

15 months agoUnreviewed internal build fix after r234347.
cdumez@apple.com [Mon, 30 Jul 2018 16:53:37 +0000 (16:53 +0000)]
Unreviewed internal build fix after r234347.

* html/StepRange.cpp:
(WebCore::StepRange::StepRange):

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

15 months agoPotential null dereference under WebPage::applicationDidBecomeActive()
cdumez@apple.com [Mon, 30 Jul 2018 16:50:40 +0000 (16:50 +0000)]
Potential null dereference under WebPage::applicationDidBecomeActive()
https://bugs.webkit.org/show_bug.cgi?id=188170
<rdar://problem/37493418>

Reviewed by Wenson Hsieh.

WebPage::m_page gets nulled out when the page is closed but the WebPage object may receive IPC
until it gets destroyed. Therefore, we need to null-check m_page before using it in IPC message
handlers.

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::applicationDidEnterBackground):
(WebKit::WebPage::applicationWillEnterForeground):
(WebKit::WebPage::applicationDidBecomeActive):

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

15 months agoShrink GraphicsLayer by making m_transform and m_childrenTransform be unique_ptrs
simon.fraser@apple.com [Mon, 30 Jul 2018 16:36:42 +0000 (16:36 +0000)]
Shrink GraphicsLayer by making m_transform and m_childrenTransform be unique_ptrs
https://bugs.webkit.org/show_bug.cgi?id=188143

Reviewed by Zalan Bujtas.

m_transform and m_childrenTransform are usually identity; save space by making
these unique_ptrs. The getters still return references by returning a reference
to a NeverDestroyed<TransformationMatrix> if necessary.

Shrinks GraphicsLayerCA from 840 to 640 bytes.

* platform/graphics/GraphicsLayer.cpp:
(WebCore::identityTransform):
(WebCore::GraphicsLayer::transform const):
(WebCore::GraphicsLayer::setTransform):
(WebCore::GraphicsLayer::childrenTransform const):
(WebCore::GraphicsLayer::setChildrenTransform):
(WebCore::GraphicsLayer::dumpProperties const):
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::hasNonIdentityTransform const):
(WebCore::GraphicsLayer::hasNonIdentityChildrenTransform const):
(WebCore::GraphicsLayer::transform const): Deleted.
(WebCore::GraphicsLayer::setTransform): Deleted.
(WebCore::GraphicsLayer::childrenTransform const): Deleted.
(WebCore::GraphicsLayer::setChildrenTransform): Deleted.
(WebCore::GraphicsLayer::hasFlattenedPerspectiveTransform): Deleted. It was unused.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setTransform):
(WebCore::GraphicsLayerCA::setChildrenTransform):
(WebCore::GraphicsLayerCA::layerTransform const):
(WebCore::GraphicsLayerCA::updateTransform):
(WebCore::GraphicsLayerCA::updateChildrenTransform):
(WebCore::GraphicsLayerCA::removeCAAnimationFromLayer):

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

15 months ago[Win] Layout test http/tests/security/canvas-remote-read-remote-video-hls.html is...
pvollan@apple.com [Mon, 30 Jul 2018 15:56:29 +0000 (15:56 +0000)]
[Win] Layout test http/tests/security/canvas-remote-read-remote-video-hls.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=188169

Unreviewed test gardening.

* platform/win/TestExpectations:

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

15 months ago[Win] Layout test fast/text/complex-first-glyph-with-initial-advance.html is failing.
pvollan@apple.com [Mon, 30 Jul 2018 15:50:03 +0000 (15:50 +0000)]
[Win] Layout test fast/text/complex-first-glyph-with-initial-advance.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=188168

Unreviewed test gardening.

* platform/win/TestExpectations:

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

15 months ago[Win] Layout test fast/repaint/canvas-object-fit.html is failing.
pvollan@apple.com [Mon, 30 Jul 2018 15:36:12 +0000 (15:36 +0000)]
[Win] Layout test fast/repaint/canvas-object-fit.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=188167

Unreviewed test gardening.

* platform/win/TestExpectations:

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

15 months ago[Win] Layout test webanimations/accessing-current-time-after-clearing-css-animation...
pvollan@apple.com [Mon, 30 Jul 2018 15:25:29 +0000 (15:25 +0000)]
[Win] Layout test webanimations/accessing-current-time-after-clearing-css-animation-effect.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=188166

Unreviewed test gardening.

* platform/win/TestExpectations:

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

15 months agoAdd a debugging utility to dump the memory layout of a JSCell.
mark.lam@apple.com [Mon, 30 Jul 2018 14:46:25 +0000 (14:46 +0000)]
Add a debugging utility to dump the memory layout of a JSCell.
https://bugs.webkit.org/show_bug.cgi?id=188157

Reviewed by Yusuke Suzuki.

This patch adds $vm.dumpCell() and VMInspector::dumpCellMemory() to allow us to
dump the memory contents of a cell and if present, its butterfly for debugging
purposes.

Example usage for JS code when JSC_useDollarVM=true:

    $vm.dumpCell(obj);

Example usage from C++ code or from lldb:

    (lldb) p JSC::VMInspector::dumpCellMemory(obj)

Some examples of dumps:

    <0x104bc8260, Object>
      [0] 0x104bc8260 : 0x010016000000016c header
        structureID 364 0x16c structure 0x104b721b0
        indexingTypeAndMisc 0 0x0 NonArray
        type 22 0x16
        flags 0 0x0
        cellState 1
      [1] 0x104bc8268 : 0x0000000000000000 butterfly
      [2] 0x104bc8270 : 0xffff000000000007
      [3] 0x104bc8278 : 0xffff000000000008

    <0x104bb4360, Array>
      [0] 0x104bb4360 : 0x0108210b00000171 header
        structureID 369 0x171 structure 0x104b723e0
        indexingTypeAndMisc 11 0xb ArrayWithArrayStorage
        type 33 0x21
        flags 8 0x8
        cellState 1
      [1] 0x104bb4368 : 0x00000008000f4718 butterfly
        base 0x8000f46e0
        hasIndexingHeader YES hasAnyArrayStorage YES
        publicLength 4 vectorLength 7 indexBias 2
        preCapacity 2 propertyCapacity 4
          <--- preCapacity
          [0] 0x8000f46e0 : 0x0000000000000000
          [1] 0x8000f46e8 : 0x0000000000000000
          <--- propertyCapacity
          [2] 0x8000f46f0 : 0x0000000000000000
          [3] 0x8000f46f8 : 0x0000000000000000
          [4] 0x8000f4700 : 0xffff00000000000d
          [5] 0x8000f4708 : 0xffff00000000000c
          <--- indexingHeader
          [6] 0x8000f4710 : 0x0000000700000004
          <--- butterfly
          <--- arrayStorage
          [7] 0x8000f4718 : 0x0000000000000000
          [8] 0x8000f4720 : 0x0000000400000002
          <--- indexedProperties
          [9] 0x8000f4728 : 0xffff000000000008
          [10] 0x8000f4730 : 0xffff000000000009
          [11] 0x8000f4738 : 0xffff000000000005
          [12] 0x8000f4740 : 0xffff000000000006
          [13] 0x8000f4748 : 0x0000000000000000
          [14] 0x8000f4750 : 0x0000000000000000
          [15] 0x8000f4758 : 0x0000000000000000
          <--- unallocated capacity
          [16] 0x8000f4760 : 0x0000000000000000
          [17] 0x8000f4768 : 0x0000000000000000
          [18] 0x8000f4770 : 0x0000000000000000
          [19] 0x8000f4778 : 0x0000000000000000

* runtime/JSObject.h:
* tools/JSDollarVM.cpp:
(JSC::functionDumpCell):
(JSC::JSDollarVM::finishCreation):
* tools/VMInspector.cpp:
(JSC::VMInspector::dumpCellMemory):
(JSC::IndentationScope::IndentationScope):
(JSC::IndentationScope::~IndentationScope):
(JSC::VMInspector::dumpCellMemoryToStream):
* tools/VMInspector.h:

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

15 months ago[GStreamer] Make codecparsers optionnal
commit-queue@webkit.org [Mon, 30 Jul 2018 13:06:24 +0000 (13:06 +0000)]
[GStreamer] Make codecparsers optionnal
https://bugs.webkit.org/show_bug.cgi?id=188010

And avoid building libWebRTC if it won't be used. While there is no other
WebRTC backend, it makes no sense to expose an option.

Error out when WEBRTC or MEDIA_STREAM is enabled but GStreamer < 1.10

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-07-30
Reviewed by Alejandro G. Castro.

.:

* Source/cmake/GStreamerChecks.cmake:
* Source/cmake/OptionsGTK.cmake:
* Source/cmake/OptionsWPE.cmake:

Source/WebCore:

* platform/GStreamer.cmake:

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

15 months agoUnreviewed WPE gardening. Adding and adjusting a bunch of expectations
zandobersek@gmail.com [Mon, 30 Jul 2018 11:31:45 +0000 (11:31 +0000)]
Unreviewed WPE gardening. Adding and adjusting a bunch of expectations
to cover various ASSERT crashers.

* platform/wpe/TestExpectations:

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

15 months agoUnreviewed WPE gardening.
zandobersek@gmail.com [Mon, 30 Jul 2018 08:16:02 +0000 (08:16 +0000)]
Unreviewed WPE gardening.

Adding two WPE-specific test baselines. Adjusting or adding a few
additional test expectations.

* platform/wpe/TestExpectations:
* platform/wpe/webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block-expected.txt: Added.
* platform/wpe/webgl/2.0.0/conformance2/glsl3/texture-offset-out-of-range-expected.txt: Added.

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

15 months ago[Curl] Test gardening
Basuke.Suzuki@sony.com [Mon, 30 Jul 2018 06:40:42 +0000 (06:40 +0000)]
[Curl] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=188155

Unreviewed test gardening.

* platform/wincairo/TestExpectations:

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

15 months agoFix incorrect guards around a method declaration in PageClient.h
wenson_hsieh@apple.com [Mon, 30 Jul 2018 05:39:49 +0000 (05:39 +0000)]
Fix incorrect guards around a method declaration in PageClient.h
https://bugs.webkit.org/show_bug.cgi?id=188153

Reviewed by Tim Horton.

`WebCore::DragItem` is forward declared under `ENABLE(DRAG_SUPPORT)`, but `startDrag` is declared under
`PLATFORM(COCOA)`. If `ENABLE(DRAG_SUPPORT)` is off but `PLATFORM(COCOA)` is on, the build breaks.

We fix this by moving `startDrag` under `ENABLE(DRAG_SUPPORT)`.

* UIProcess/PageClient.h:
(WebKit::PageClient::startDrag):

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

15 months ago[Wi-Fi Assertions] Pass a ResumptionReason to resumeWiFiAssertions
aestes@apple.com [Sun, 29 Jul 2018 22:13:19 +0000 (22:13 +0000)]
[Wi-Fi Assertions] Pass a ResumptionReason to resumeWiFiAssertions
https://bugs.webkit.org/show_bug.cgi?id=188142
<rdar://problem/42628842>

Reviewed by Darin Adler.

* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformProcessDidResume):
(WebKit::NetworkProcess::platformProcessDidTransitionToForeground):

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

15 months ago[Cocoa] Update more WebCore Objective-C code to be ARC compatible
darin@apple.com [Sun, 29 Jul 2018 21:45:43 +0000 (21:45 +0000)]
[Cocoa] Update more WebCore Objective-C code to be ARC compatible
https://bugs.webkit.org/show_bug.cgi?id=188140

Reviewed by Sam Weinig.

Source/WebCore:

This make sure we don't put any Objective-C objects into HashMap/Set
data structures, which doesn't work under ARC at this time. We could
fix that some day, but it's pretty simple to change code not to rely
on it, for now, and not as simple to support it in HashMap/Set.

* accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(-[WebAccessibilityObjectWrapperBase updateObjectBackingStore]):
Use CFRetain/CFAutorelease instead of retain/autorelease.

* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(createAccessibilityRoleMap): Use CFStringRef in a HashMap rather than
NSString * for string constants.
(roleValueToNSString): Updated for above change.

* bridge/objc/WebScriptObject.mm:
(-[WebScriptObject stringRepresentation]): Updated since objectValue
is now CFTypeRef rather than NSObject *.

* bridge/objc/objc_instance.mm:
(ObjcInstance::create): Use CFTypeRef instead of id for the key types
in a HashMap.
(ObjcInstance::~ObjcInstance): Updated for the above change.
(ObjcInstance::invokeObjcMethod): Updated since objectValue is now
CFTypeRef.
(ObjcInstance::invokeDefaultMethod): Ditto.
(ObjcInstance::setValueOfUndefinedField): Ditto.
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::ObjcArray::setValueAt const): Ditto.

* bridge/objc/objc_utility.h: Use #pragma once. Use CFTypeRef instead
of NSObject * for objectValue, since it's in a union and ARC does not
support strong Objective-C object pointers in a union.

* bridge/objc/objc_utility.mm:
(JSC::Bindings::convertValueToObjcValue): Updated since objectValue is
now CFTypeRef.

* editing/cocoa/HTMLConverter.mm:
(HTMLConverter::_processElement): Use CFTypeRef rather than NSTextTable
for a HashMap.
(HTMLConverter::_exitElement): Ditto.

* editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::attributesForAttributedStringConversion): Use CFRetain rather
than -[NSObject retain] in a workaround for an overrelease.

* editing/mac/DictionaryLookup.h: Removed code to make this usable from
non-Objective-C source files. Use tuples rather than out arguments
for the results of the various functions.

* editing/mac/DictionaryLookup.mm:
(WebCore::DictionaryLookup::rangeForSelection): Return a tuple rather
than using an out argument for options.
(WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.
(WebCore::DictionaryLookup::stringForPDFSelection): Ditto.
(WebCore::showPopupOrCreateAnimationController): Removed use of typedef
PlatformAnimationController.
(WebCore::DictionaryLookup::animationControllerForPopup): Ditto.

* html/HTMLMediaElement.h: Put the videoFullscreenLayer function inside
an __OBJC__ ifdef since we can't do the type conversion without the
full Objective-C type.

* page/mac/EventHandlerMac.mm:
(WebCore::selfRetainingNSScrollViewScrollWheel): Use CFRetain/CFRelease
instead of retain/release.
(WebCore::EventHandler::selectClosestWordFromHitTestResultBasedOnLookup):
Updated to use tuple return value from DictionaryLookup.

* page/scrolling/ScrollingStateNode.h: Replaced direct use of PlatformLayer*
in a union with use of a "typless" void* pointer and added helper functions
to convert in both directions.
* page/scrolling/cocoa/ScrollingStateNode.mm:
(WebCore::LayerRepresentation::retainPlatformLayer): Use CFRetain instead
of retain.
(WebCore::LayerRepresentation::releasePlatformLayer): Use CFRelease instead
of release.
(WebCore::LayerRepresentation::makePlatformLayerTyped): Added.
(WebCore::LayerRepresentation::makePlatformLayerTypeless): Ditto.
* page/scrolling/coordinatedgraphics/ScrollingStateNodeCoordinatedGraphics.cpp:
(WebCore::LayerRepresentation::retainPlatformLayer): Updated argument type.
(WebCore::LayerRepresentation::releasePlatformLayer): Ditto.
(WebCore::LayerRepresentation::makePlatformLayerTyped): Added.
(WebCore::LayerRepresentation::makePlatformLayerTypeless): Ditto.

* platform/gamepad/cocoa/GameControllerGamepadProvider.h: Use CFTypeRef
instad of GCController * for key type of HashMap.
* platform/gamepad/cocoa/GameControllerGamepadProvider.mm:
(WebCore::GameControllerGamepadProvider::controllerDidConnect): Updated
for the above change.
(WebCore::GameControllerGamepadProvider::controllerDidDisconnect): Ditto.

* platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:
Use SOFT_LINK_CONSTANT_MAY_FAIL instead of SOFT_LINK_POINTER_OPTIONAL for
strings, since SOFT_LINK_POINTER_OPTIONAL does not work for Objective-C
types under ARC.
(WebCore::AVTrackPrivateAVFObjCImpl::audioKind const): Added checks
for the constants.
(WebCore::AVTrackPrivateAVFObjCImpl::videoKind const): Ditto.
(WebCore::AVTrackPrivateAVFObjCImpl::label const): Ditto.

* platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.h:
Use #pragma once and use CFTypeRef instead of AVMediaSelectionOption *
in the key to a HashMap.
* platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:
(WebCore::MediaSelectionGroupAVFObjC::updateOptions): Updated for
the above change.

* platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:
Use SOFT_LINK_CONSTANT_MAY_FAIL instead of SOFT_LINK_POINTER_OPTIONAL for
strings, since SOFT_LINK_POINTER_OPTIONAL does not work for Objective-C
types under ARC.
(WebCore::customSchemeURL): Removed unnecessary use of
NeverDestroyed<RetainPtr>. Can just use a straight pointer without calling
release, and that works with or without ARC.
(WebCore::imageDecoderAssetOptions): Ditto. Here, had to add a retain,
which we'll remove when we turn on ARC. Added canLoad checks, needed
because of SOFT_LINK_CONSTANT_MAY_FAIL.
(WebCore::ImageDecoderAVFObjC::firstEnabledTrack): Added canLoad check,
needed because of SOFT_LINK_CONSTANT_MAY_FAIL.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
Use CFTypeRef instead of AVAssetResourceLoadingRequest in HashMap.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
Updated for above.
(WebCore::MediaPlayerPrivateAVFoundationObjC::didCancelLoadingRequest): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::didStopLoadingRequest): Ditto.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
Use CFTypeRef instead of AVSampleBufferAudioRenderer in HashMap.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVolume): Updated for above.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setMuted): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setPreservesPitch): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setHasAvailableAudioSample): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addAudioRenderer): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::removeAudioRenderer): Ditto.

* platform/graphics/metal/GPUDrawableMetal.mm: Updated include; under ARC, it's
not safe to call a method on a class without seeing its interface.

* platform/mac/VideoFullscreenInterfaceMac.mm: Added an explicit
__unsafe_unretained for a delegate. Could consider moving to weak, but for now
this preserves the current behavior and compiles under ARC.

* platform/mac/WebCoreFullScreenPlaceholderView.h: Use strong for the contents,
weak for the target, and changed the action to be hard-coded instead of an
arbitrary selector. If we find we need the flexibility again later, we can do
it with a block, which is more ARC-friendly than calling an arbitrary selector.
* platform/mac/WebCoreFullScreenPlaceholderView.mm:
(-[WebCoreFullScreenPlaceholderView initWithFrame:]): Call function directly
instead of taking advantage of "using".
(-[WebCoreFullScreenPlaceholderView mouseDown:]): Call cancelOperation: on the
target rather than performing an arbitrary selector.

* platform/mac/WebCoreObjCExtras.mm:
(WebCoreObjCScheduleDeallocateOnMainThread): Use sel_registerName instead of
@selector, since @selector is not supported under ARC.

* platform/network/ResourceHandle.h: Use a return value rather than using an
inout argument in applySniffingPoliciesAndStoragePartitionIfNeeded.

* platform/network/cocoa/CookieStorageObserver.mm:
(WebCore::CookieStorageObserver::startObserving): Removed unnecessary
assertion of repondsToSelector since we are about to dispatch it immediately
after. Call the selector in the conventional way instead of using performSelector.

* platform/network/cocoa/WebCoreNSURLSession.h: Use #pragma once and use
CFTypeRef instead of an Objective-C type. Also use an explicit __unsafe_unretained
for the session in the data task.
* platform/network/cocoa/WebCoreNSURLSession.mm:
(-[WebCoreNSURLSession dealloc]): Updated for the above.
(-[WebCoreNSURLSession taskCompleted:]): Ditto.
(-[WebCoreNSURLSession invalidateAndCancel]): Ditto.
(-[WebCoreNSURLSession getTasksWithCompletionHandler:]): Ditto.
(-[WebCoreNSURLSession getAllTasksWithCompletionHandler:]): Ditto.
(-[WebCoreNSURLSession dataTaskWithRequest:]): Ditto.
(-[WebCoreNSURLSession dataTaskWithURL:]): Ditto.

* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::applySniffingPoliciesAndStoragePartitionIfNeeded):
Use a return value instead of an inout argument. Also use bridging casts.
(WebCore::ResourceHandle::createNSURLConnection): Updated for the change above.
Also use a bridging cast.
(WebCore::ResourceHandle::schedule): Use a bridging cast.
(WebCore::ResourceHandle::unschedule): Ditto.

* platform/network/mac/WebCoreURLResponse.mm:
(WebCore::adjustMIMETypeIfNecessary): Use a bridging cast.

* testing/Internals.cpp:
(WebCore::Internals::rangeForDictionaryLookupAtLocation): Moved the macOS
version of this function out of this file ...
* testing/Internals.mm:
(WebCore::Internals::rangeForDictionaryLookupAtLocation): ... to here.

Source/WebKit:

* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController enterFullScreen:]): Removed the call to
setAction: since the full screen placeholder view now always uses the
cancelOperation: method.

* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::lookupTextAtLocation): Updated to use the new
DictionaryLookup function that returns a tuple instead of using an out argument.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performDictionaryLookupAtLocation): Ditto.
(WebKit::WebPage::performDictionaryLookupForSelection): Ditto.

Source/WebKitLegacy/mac:

* WebView/WebImmediateActionController.mm:
(-[WebImmediateActionController _animationControllerForText]): Updated to use the
new DictionaryLookup function that returns a tuple instead of using an out argument.

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

15 months agoUse static global variables instead of static NeverDestroyed inside function if possible
utatane.tea@gmail.com [Sun, 29 Jul 2018 18:13:28 +0000 (18:13 +0000)]
Use static global variables instead of static NeverDestroyed inside function if possible
https://bugs.webkit.org/show_bug.cgi?id=188146

Reviewed by Darin Adler.

This patch leverages constexpr constructors / trivial destructors more to remove unnecessary `static NeverDestroyed`
inside a function. It simplifies the code, removes the unnecessary function, and ensures the initialization at
a program loader phase.

We make StepRange::StepDescription constructor constexpr to remove bunch of `static NeverDestroyed<const StepRange::StepDescription>`.
And we use `static Lock` since WTF::Lock has constexpr constructor.

No behavior change.

* dom/MessagePort.cpp:
(WebCore::MessagePort::deref const):
(WebCore::MessagePort::isExistingMessagePortLocallyReachable):
(WebCore::MessagePort::notifyMessageAvailable):
(WebCore::MessagePort::MessagePort):
(WebCore::MessagePort::~MessagePort):
(WebCore::allMessagePortsLock): Deleted.
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::contextIdentifier const):
(WebCore::ScriptExecutionContext::removeFromContextsMap):
(WebCore::ScriptExecutionContext::~ScriptExecutionContext):
(WebCore::ScriptExecutionContext::postTaskTo):
(WebCore::allScriptExecutionContextsMapLock): Deleted.
* html/DateInputType.cpp:
(WebCore::DateInputType::createStepRange const):
* html/DateTimeInputType.cpp:
(WebCore::DateTimeInputType::createStepRange const):
* html/DateTimeLocalInputType.cpp:
(WebCore::DateTimeLocalInputType::createStepRange const):
* html/MonthInputType.cpp:
(WebCore::MonthInputType::createStepRange const):
* html/RangeInputType.cpp:
(WebCore::RangeInputType::createStepRange const):
* html/StepRange.h:
(WebCore::StepRange::StepDescription::StepDescription):
* html/TimeInputType.cpp:
(WebCore::TimeInputType::createStepRange const):
* html/WeekInputType.cpp:
(WebCore::WeekInputType::createStepRange const):
* page/SecurityPolicy.cpp:
(WebCore::originAccessMap):
(WebCore::SecurityPolicy::isAccessWhiteListed):
(WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
(WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):
(WebCore::SecurityPolicy::resetOriginAccessWhitelists):
(WebCore::originAccessMapLock): Deleted.
* platform/SchemeRegistry.cpp:
(WebCore::allBuiltinSchemes):
(WebCore::builtinLocalURLSchemes):
(WebCore::localURLSchemes):
(WebCore::displayIsolatedURLSchemes):
(WebCore::builtinSecureSchemes):
(WebCore::secureSchemes):
(WebCore::builtinSchemesWithUniqueOrigins):
(WebCore::schemesWithUniqueOrigins):
(WebCore::builtinCanDisplayOnlyIfCanRequestSchemes):
(WebCore::canDisplayOnlyIfCanRequestSchemes):
(WebCore::SchemeRegistry::registerURLSchemeAsLocal):
(WebCore::SchemeRegistry::removeURLSchemeRegisteredAsLocal):
(WebCore::ContentSecurityPolicyBypassingSchemes):
(WebCore::cachePartitioningSchemes):
(WebCore::serviceWorkerSchemes):
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsLocal):
(WebCore::SchemeRegistry::registerURLSchemeAsNoAccess):
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsNoAccess):
(WebCore::SchemeRegistry::registerURLSchemeAsDisplayIsolated):
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsDisplayIsolated):
(WebCore::SchemeRegistry::registerURLSchemeAsSecure):
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsSecure):
(WebCore::SchemeRegistry::canDisplayOnlyIfCanRequest):
(WebCore::SchemeRegistry::registerAsCanDisplayOnlyIfCanRequest):
(WebCore::SchemeRegistry::registerURLSchemeAsBypassingContentSecurityPolicy):
(WebCore::SchemeRegistry::removeURLSchemeRegisteredAsBypassingContentSecurityPolicy):
(WebCore::SchemeRegistry::schemeShouldBypassContentSecurityPolicy):
(WebCore::SchemeRegistry::registerURLSchemeAsCachePartitioned):
(WebCore::SchemeRegistry::shouldPartitionCacheForURLScheme):
(WebCore::SchemeRegistry::registerURLSchemeServiceWorkersCanHandle):
(WebCore::SchemeRegistry::canServiceWorkersHandleURLScheme):
(WebCore::SchemeRegistry::isServiceWorkerContainerCustomScheme):
(WebCore::schemeRegistryLock): Deleted.

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

15 months ago[Curl] Fix the bug when client reject the redirect on WebKitLegacy.
Basuke.Suzuki@sony.com [Sun, 29 Jul 2018 16:18:32 +0000 (16:18 +0000)]
[Curl] Fix the bug when client reject the redirect on WebKitLegacy.
https://bugs.webkit.org/show_bug.cgi?id=188130

Reviewed by Darin Adler.

Source/WebCore:

ResourceHandle for Curl port has a bug when a client returns en empty request which
indicates the redirecti is rejected by the client. It should be quit the task immediately,
but it kept doing the job. Fixed.
NetworkDataTask implementation did the right thing and there's no bug for them.

Test: http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt

* platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::continueAfterWillSendRequest):

LayoutTests:

* platform/wincairo/TestExpectations:
- xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt: Pass

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

15 months agoReset CompositingPolicyOverride between tests
simon.fraser@apple.com [Sat, 28 Jul 2018 18:39:58 +0000 (18:39 +0000)]
Reset CompositingPolicyOverride between tests
https://bugs.webkit.org/show_bug.cgi?id=188138

Reviewed by Zalan Bujtas.

WK1 tests were failing after r234330 because the compositing policy override optional
was left set on the Page (WK1 has injected bundle SPI to clear it). Fix by having
Internals::resetToConsistentState clear this state.

* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):

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

15 months agoGardening: build fix for internal builds.
mark.lam@apple.com [Sat, 28 Jul 2018 16:35:24 +0000 (16:35 +0000)]
Gardening: build fix for internal builds.
https://bugs.webkit.org/show_bug.cgi?id=188123
<rdar://problem/42672268>

Not reviewed.

Some code is relying on RELEASE_ASSERT (without extra crash info arguments)
being purely inlined and not require linkage to an external symbol.  This patch
restores this property of the original RELEASE_ASSERT.

This means moving the variant of WTFCrashWithInfo that does not take extra args
to Assertions.h and making it an "inline" function.  When compiling with clang,
we also specify __attribute__((optnone)) to force the function out of being an
inline function (each linkage unit will get a copy of the function).  This causes
the 1st 4 arguments of WTFCrashWithInfo (e.g. line number) to still be captured
in the argument registers for crash diagnostics.

* wtf/Assertions.cpp:
(WTFCrashWithInfo):
* wtf/Assertions.h:

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

15 months agoAnimation stops with object-fit:contain on an animated 2d canvas
simon.fraser@apple.com [Sat, 28 Jul 2018 05:22:05 +0000 (05:22 +0000)]
Animation stops with object-fit:contain on an animated 2d canvas
https://bugs.webkit.org/show_bug.cgi?id=187840

Reviewed by Zalan Bujtas.
Source/WebCore:

If a canvas has object-fit: cover or contain, repaints need to mapped through
the rect that is used to position the canvas in the element bounds, which is replacedContentRect().

Add a version of replacedContentRect() that doesn't require passing the intrinsicSize() since
all but RenderVideo just pass the RenderReplaced's intrinsicSize.

Test: fast/repaint/canvas-object-fit.html

* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::didDraw):
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::paintReplaced):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::updateInnerContentRect):
(WebCore::RenderImage::paintReplaced):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::contentsBox const):
* rendering/RenderReplaced.h:
(WebCore::RenderReplaced::replacedContentRect const):
* rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::ShapeOutsideInfo::createShapeForImage const):

LayoutTests:

* fast/repaint/canvas-object-fit-expected.txt: Added.
* fast/repaint/canvas-object-fit.html: Added.

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

15 months agoUnreviewed, fix typo in test expectations and mark another test as timing out
mcatanzaro@igalia.com [Sat, 28 Jul 2018 02:23:30 +0000 (02:23 +0000)]
Unreviewed, fix typo in test expectations and mark another test as timing out

* TestWebKitAPI/glib/TestExpectations.json:

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

15 months ago[Curl] Test gardening
Basuke.Suzuki@sony.com [Sat, 28 Jul 2018 00:35:24 +0000 (00:35 +0000)]
[Curl] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=188129

Unreviewed test gardening.

* platform/wincairo/TestExpectations:
* platform/wincairo/http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt: Added.

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

15 months agoAdjust the color matrix for the inverse apple-invert-lightness() transformation
simon.fraser@apple.com [Sat, 28 Jul 2018 00:35:01 +0000 (00:35 +0000)]
Adjust the color matrix for the inverse apple-invert-lightness() transformation
https://bugs.webkit.org/show_bug.cgi?id=188131
rdar://problem/42673070

Reviewed by Zalan Bujtas.

Source/WebCore:

Use the correct inverse matrix values.

Test: editing/style/inverse-color-filter.html

* platform/graphics/filters/FilterOperation.cpp:
(WebCore::InvertLightnessFilterOperation::inverseTransformColor const):

LayoutTests:

Rebaseline tests that use the filter inversion. Add a new test that does inversion
for a whole range of colors, to get good coverage of the inversion matrix.

* editing/style/inverse-color-filter-expected.txt: Added.
* editing/style/inverse-color-filter.html: Added.
* editing/style/set-backColor-with-color-filter-expected.txt:
* editing/style/set-foreColor-with-color-filter-expected.txt:
* platform/win/TestExpectations:

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

15 months ago[iOS] Don't deactivate audio session
eric.carlson@apple.com [Sat, 28 Jul 2018 00:24:03 +0000 (00:24 +0000)]
[iOS] Don't deactivate audio session
https://bugs.webkit.org/show_bug.cgi?id=188127
<rdar://problem/42544143>

Reviewed by Jon Lee.

r233435 includes a change that deactivates the shared audio session when there are no more
active media sessions. This is a good in WK2 because it allows other applications to resume
playing audio when WebKit stops playing, but it is potentially bad in WK1 where the host
app may also be playing audio.

* platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::removeSession): Don't deactivate the audio session.

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

15 months agoInitialize bmalloc::DebugHeap::m_pageSize for non-Darwin builds.
mark.lam@apple.com [Sat, 28 Jul 2018 00:17:47 +0000 (00:17 +0000)]
Initialize bmalloc::DebugHeap::m_pageSize for non-Darwin builds.
https://bugs.webkit.org/show_bug.cgi?id=188132
<rdar://problem/40401599>

Reviewed by Saam Barati.

* bmalloc/DebugHeap.cpp:
(bmalloc::DebugHeap::DebugHeap):

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

15 months agoMore unreviewed GTK test gardening
mcatanzaro@igalia.com [Fri, 27 Jul 2018 23:26:33 +0000 (23:26 +0000)]
More unreviewed GTK test gardening

Tools:

* TestWebKitAPI/glib/TestExpectations.json:

WebDriverTests:

I don't really know what I'm doing with these WebDriver expectations... will this work?

* TestExpectations.json:

LayoutTests:

* TestExpectations:

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

15 months agoLayoutTest http/tests/cache/disk-cache/disk-cache-204-status-code.html is a flaky...
david_fenton@apple.com [Fri, 27 Jul 2018 22:54:46 +0000 (22:54 +0000)]
LayoutTest http/tests/cache/disk-cache/disk-cache-204-status-code.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=162685

Unreviewed test gardening, marked as flaky on iOS Release.

* platform/ios-wk2/TestExpectations:

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

15 months agoAdd some crash info to Heap::checkConn() RELEASE_ASSERTs.
mark.lam@apple.com [Fri, 27 Jul 2018 22:44:47 +0000 (22:44 +0000)]
Add some crash info to Heap::checkConn() RELEASE_ASSERTs.
https://bugs.webkit.org/show_bug.cgi?id=188123
<rdar://problem/42672268>

Reviewed by Keith Miller.

Source/JavaScriptCore:

1. Add VM::m_id and Heap::m_lastPhase fields.  Both of these fit within existing
   padding space in VM and Heap, and should not cost any measurable perf to
   initialize and update.

2. Add some crash info to the RELEASE_ASSERTs in Heap::checkConn():

   worldState tells us the value we failed the assertion on.

   m_lastPhase, m_currentPhase, and m_nextPhase tells us the GC phase transition
   that led us here.

   VM::id(), and VM::numberOfIDs() tells us how many VMs may be in play.

   VM::isEntered() tells us if the current VM is currently executing JS code.

   Some of this data may be redundant, but the redundancy is intentional so that
   we can double check what is really happening at the time of crash.

* heap/Heap.cpp:
(JSC::asInt):
(JSC::Heap::checkConn):
(JSC::Heap::changePhase):
* heap/Heap.h:
* runtime/VM.cpp:
(JSC::VM::nextID):
(JSC::VM::VM):
* runtime/VM.h:
(JSC::VM::numberOfIDs):
(JSC::VM::id const):
(JSC::VM::isEntered const):

Source/WTF:

1. Rename STUFF_FOR_CRASH_REGISTERx to CRASH_GPRx.  These are only used in
   locally in Assertions.cpp.  There is little to no chance of a name collision,
   and the shorter names will be much easier to read and grok in the code.

2. Added an additional 2 registers so that we can pass more info.

3. Change the WTFCrashWithInfo() implementations to issue only a single asm
   statement so that the compiler does not inadvertently move values out of the
   CRASH_GPRs that we want them to be in.

4. Use register targeting for local variables to get the compiler to put our
   desired values in specific registers.  For how this works, see
   https://gcc.gnu.org/onlinedocs/gcc/Local-Register-Variables.html#Local-Register-Variables

   "The only supported use for this feature is to specify registers for input and
   output operands when calling Extended asm (see Extended Asm).  This may be
   necessary if the constraints for a particular machine don’t provide sufficient
   control to select the desired register."

5. Enhance ASSERT, ASSERT_UNUSED, RELEASE_ASSERT, RELEASE_ASSERT_NOT_REACHED to
   accept crash info arguments.  We no longer need to use an if statement with a
   call to CRASH_WITH_INFO instead of these assertions.  The only case not handled
   yet is one where we might want to dataLog some info before the crash.  I'll
   add that functionality in a subsequent patch.

6. Move UNREACHABLE_FOR_PLATFORM to the bottom of Assertions.h because it depends
   on the definition of RELEASE_ASSERT_NOT_REACHED, which now depends on the
   definiton of CRASH_WITH_INFO.

* wtf/Assertions.cpp:
(WTFCrashWithInfo):
* wtf/Assertions.h:

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

15 months agoFix thread-safety issues related to RealtimeMediaSource::audioSamplesAvailable()
cdumez@apple.com [Fri, 27 Jul 2018 22:33:52 +0000 (22:33 +0000)]
Fix thread-safety issues related to RealtimeMediaSource::audioSamplesAvailable()
https://bugs.webkit.org/show_bug.cgi?id=188097
<rdar://problem/42558823>

Reviewed by Eric Carlson.

Source/WebCore:

Fix thread-safety issues related to RealtimeMediaSource::audioSamplesAvailable(). RealtimeMediaSource::audioSamplesAvailable()
is called on a background thread but iterates over observers that may get destroyed concurrently on the main thread.

To address the issue:
- Introduce a Lock to protect m_observer accesses
- Copy observers to a Vector before iterating over them

* platform/mediastream/MediaStreamTrackPrivate.cpp:
(WebCore::MediaStreamTrackPrivate::forEachObserver const):
(WebCore::MediaStreamTrackPrivate::addObserver):
(WebCore::MediaStreamTrackPrivate::removeObserver):
(WebCore::MediaStreamTrackPrivate::setEnabled):
(WebCore::MediaStreamTrackPrivate::endTrack):
(WebCore::MediaStreamTrackPrivate::sourceStarted):
(WebCore::MediaStreamTrackPrivate::sourceStopped):
(WebCore::MediaStreamTrackPrivate::sourceMutedChanged):
(WebCore::MediaStreamTrackPrivate::sourceSettingsChanged):
(WebCore::MediaStreamTrackPrivate::videoSampleAvailable):
(WebCore::MediaStreamTrackPrivate::audioSamplesAvailable):
(WebCore::MediaStreamTrackPrivate::updateReadyState):
* platform/mediastream/MediaStreamTrackPrivate.h:
(WebCore::MediaStreamTrackPrivate::Observer::sampleBufferUpdated):
(WebCore::MediaStreamTrackPrivate::Observer::audioSamplesAvailable):
* platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::addObserver):
(WebCore::RealtimeMediaSource::removeObserver):
(WebCore::RealtimeMediaSource::forEachObserver const):
(WebCore::RealtimeMediaSource::notifyMutedObservers const):
(WebCore::RealtimeMediaSource::settingsDidChange):
(WebCore::RealtimeMediaSource::videoSampleAvailable):
(WebCore::RealtimeMediaSource::audioSamplesAvailable):
(WebCore::RealtimeMediaSource::start):
(WebCore::RealtimeMediaSource::requestStop):
(WebCore::RealtimeMediaSource::captureFailed):
* platform/mediastream/RealtimeMediaSource.h:
* platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.cpp:
(WebCore::AudioTrackPrivateMediaStreamCocoa::audioSamplesAvailable):
* platform/mediastream/mac/RealtimeOutgoingAudioSourceCocoa.cpp:
* platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm:

Source/WebKit:

* UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

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

15 months agoDon't include WebPageProxy.h just for UndoOrRedo
achristensen@apple.com [Fri, 27 Jul 2018 22:32:25 +0000 (22:32 +0000)]
Don't include WebPageProxy.h just for UndoOrRedo
https://bugs.webkit.org/show_bug.cgi?id=188086

Reviewed by Saam Barati.

Source/WebCore:

* platform/DragItem.h:

Source/WebKit:

* Shared/UndoOrRedo.h: Added.
* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::registerEditCommand):
* UIProcess/PageClient.h:
* UIProcess/WebEditCommandProxy.cpp:
(WebKit::WebEditCommandProxy::unapply):
(WebKit::WebEditCommandProxy::reapply):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::registerEditCommandForUndo):
(WebKit::WebPageProxy::canUndoRedo):
(WebKit::WebPageProxy::executeUndoRedo):
(WebKit::WebPageProxy::canUndo):
(WebKit::WebPageProxy::canRedo):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::registerEditCommand):
(WebKit::PageClientImpl::canUndoRedo):
(WebKit::PageClientImpl::executeUndoRedo):
* UIProcess/mac/PageClientImplMac.h:
* UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::registerEditCommand):
(WebKit::PageClientImpl::canUndoRedo):
(WebKit::PageClientImpl::executeUndoRedo):
* UIProcess/mac/WebContextMenuProxyMac.mm:
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::canUndo const):
(WebKit::WebEditorClient::canRedo const):
(WebKit::WebEditorClient::undo):
(WebKit::WebEditorClient::redo):

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

15 months agoMake CompletionHandler more const correct
achristensen@apple.com [Fri, 27 Jul 2018 22:29:58 +0000 (22:29 +0000)]
Make CompletionHandler more const correct
https://bugs.webkit.org/show_bug.cgi?id=186543

Reviewed by Saam Barati.

Source/WebCore:

* dom/messageports/MessagePortChannel.cpp:
(WebCore::MessagePortChannel::checkRemotePortForActivity):
* dom/messageports/MessagePortChannelProviderImpl.cpp:
(WebCore::MessagePortChannelProviderImpl::checkRemotePortForActivity):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::responseReceived):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::loadPostRequest):
* platform/network/cocoa/WebCoreNSURLSession.mm:
(WebCore::WebCoreNSURLSessionDataTaskClient::redirectReceived):
* workers/service/server/RegistrationDatabase.cpp:
(WebCore::RegistrationDatabase::pushChanges):
(WebCore::RegistrationDatabase::clearAll):
* workers/service/server/SWServer.cpp:
(WebCore::SWServer::matchAll):
* workers/service/server/SWServer.h:
* workers/service/server/SWServerWorker.cpp:
(WebCore::SWServerWorker::matchAll):
* workers/service/server/SWServerWorker.h:

Source/WebKit:

* NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::willPerformHTTPRedirection):
* NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::clearAllCaches):
* UIProcess/Automation/SimulatedInputDispatcher.cpp:
(WebKit::SimulatedInputDispatcher::transitionInputSourceToState):
* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::simulateMouseInteraction):
(WebKit::WebAutomationSession::simulateKeyboardInteraction):
* UIProcess/Cocoa/AutomationSessionClient.mm:
(WebKit::AutomationSessionClient::requestNewPageWithOptions):
(WebKit::AutomationSessionClient::requestSwitchToPage):
(WebKit::AutomationSessionClient::requestHideWindowOfPage):
(WebKit::AutomationSessionClient::requestRestoreWindowOfPage):
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::ContextMenuClient::menuFromProposedMenu):
(WebKit::UIDelegate::UIClient::createNewPage):
(WebKit::UIDelegate::UIClient::runJavaScriptAlert):
(WebKit::UIDelegate::UIClient::runJavaScriptConfirm):
(WebKit::UIDelegate::UIClient::runJavaScriptPrompt):
(WebKit::UIDelegate::UIClient::requestStorageAccessConfirm):
(WebKit::UIDelegate::UIClient::decidePolicyForGeolocationPermissionRequest):
(WebKit::UIDelegate::UIClient::runBeforeUnloadConfirmPanel):
(WebKit::UIDelegate::UIClient::decidePolicyForNotificationPermissionRequest):
(WebKit::UIDelegate::UIClient::runOpenPanel):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::createNewPage):
(WebKit::WebPageProxy::webGLPolicyForURL):
(WebKit::WebPageProxy::resolveWebGLPolicyForURL):
(WebKit::WebPageProxy::getWindowFrame):
* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::hasStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent):
(WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioning):

Source/WTF:

* wtf/CompletionHandler.h:
(WTF::CompletionHandler<Out):
Calling a CompletionHandler mutates it. Make the code reflect that.

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

15 months ago[JSC] Record CoW status in ArrayProfile correctly
utatane.tea@gmail.com [Fri, 27 Jul 2018 22:27:10 +0000 (22:27 +0000)]
[JSC] Record CoW status in ArrayProfile correctly
https://bugs.webkit.org/show_bug.cgi?id=187949

Reviewed by Saam Barati.

JSTests:

* stress/array-profile-should-record-copy-on-write.js: Added.
(shouldBe):
(test1):
(test2):
(test3):

Source/JavaScriptCore:

In this patch, we simplify asArrayModes: just shifting the value with IndexingMode.
This is important since our OSR exit compiler records m_observedArrayModes by calculating
ArrayModes with shifting. Since ArrayModes for CoW arrays are incorrectly calculated,
our OSR exit compiler records incorrect results in ArrayProfile. And it leads to
Array::Generic DFG nodes.

* bytecode/ArrayProfile.h:
(JSC::asArrayModes):
(JSC::ArrayProfile::ArrayProfile):
* dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::compileExit):
* ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileStub):
* runtime/IndexingType.h:

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

15 months agoBe more conservative with compositing layer creation when memory is low
simon.fraser@apple.com [Fri, 27 Jul 2018 22:20:26 +0000 (22:20 +0000)]
Be more conservative with compositing layer creation when memory is low
https://bugs.webkit.org/show_bug.cgi?id=187866
rdar://problem/42366345

Reviewed by Zalan Bujtas.

Source/WebCore:

When process physical footprint is above a fraction of the jetsam limit, be more conservative in making
compositing layers. We avoid compositing for these situations:
1. Layers with 3D transforms which are affine (like translateZ(0)).
2. Layers with will-change
3. Layers for canvases (other than WebGL/WebGPU)

We reuse some macOS code in MemoryPressureHandler() but choose different thresholds for iOS,
falling into "conservative mode" at 50% of jetsam limit, and "strict mode" at 65%.
Compositing chooses to be more conservative in either "conservative" or "strict" memory modes.

Plumb through a "compositingPolicyOverride" both so that on-device testing isn't
flakily falling into a different mode, and so that we can impose the conservative
mode for testing.

Test: compositing/layer-creation/compositing-policy.html

* page/Page.h:
(WebCore::Page::compositingPolicyOverride const):
(WebCore::Page::setCompositingPolicyOverride):
* platform/graphics/transforms/Matrix3DTransformOperation.cpp:
(WebCore::Matrix3DTransformOperation::isRepresentableIn2D const):
* platform/graphics/transforms/Matrix3DTransformOperation.h:
* platform/graphics/transforms/PerspectiveTransformOperation.h:
* platform/graphics/transforms/RotateTransformOperation.h:
* platform/graphics/transforms/ScaleTransformOperation.h:
* platform/graphics/transforms/TransformOperation.h:
(WebCore::TransformOperation::isRepresentableIn2D const):
* platform/graphics/transforms/TransformOperations.h:
(WebCore::TransformOperations::has3DOperation const):
(WebCore::TransformOperations::isRepresentableIn2D const):
* platform/graphics/transforms/TranslateTransformOperation.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGeometry):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
(WebCore::RenderLayerCompositor::updateCompositingPolicy):
(WebCore::RenderLayerCompositor::updateCompositingLayers):
(WebCore::RenderLayerCompositor::requiresCompositingForTransform const):
(WebCore::RenderLayerCompositor::requiresCompositingForVideo const):
(WebCore::RenderLayerCompositor::requiresCompositingForCanvas const):
(WebCore::RenderLayerCompositor::requiresCompositingForPlugin const):
(WebCore::RenderLayerCompositor::requiresCompositingForWillChange const):
(WebCore::RenderLayerCompositor::needsFixedRootBackgroundLayer const):
(WebCore::operator<<):
* rendering/RenderLayerCompositor.h:
* testing/Internals.cpp:
(WebCore::Internals::setCompositingPolicyOverride):
(WebCore::Internals::compositingPolicyOverride const):
* testing/Internals.h:
* testing/Internals.idl:

Source/WebKit:

When process physical footprint is above a fraction of the jetsam limit, be more conservative in making
compositing layers. We avoid compositing for these situations:
1. Layers with 3D transforms which are affine (like translateZ(0)).
2. Layers with will-change
3. Layers for canvases (other than WebGL/WebGPU)

We reuse some macOS code in MemoryPressureHandler() but choose different thresholds for iOS,
falling into "conservative mode" at 50% of jetsam limit, and "strict mode" at 65%.
Compositing chooses to be more conservative in either "conservative" or "strict" memory modes.

Plumb through a "compositingPolicyOverride" both so that on-device testing isn't
flakily falling into a different mode, and so that we can impose the conservative
mode for testing.

* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageSetCompositingPolicyOverride):
* WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:

Source/WTF:

When process physical footprint is above a fraction of the jetsam limit, be more conservative in making
compositing layers. We avoid compositing for these situations:
1. Layers with 3D transforms which are affine (like translateZ(0)).
2. Layers with will-change
3. Layers for canvases (other than WebGL/WebGPU)

We reuse some macOS code in MemoryPressureHandler() but choose different thresholds for iOS,
falling into "conservative mode" at 50% of jetsam limit, and "strict mode" at 65%.
Compositing chooses to be more conservative in either "conservative" or "strict" memory modes.

Plumb through a "compositingPolicyOverride" both so that on-device testing isn't
flakily falling into a different mode, and so that we can impose the conservative
mode for testing.

* wtf/MemoryPressureHandler.cpp:
(WTF::thresholdForPolicy):
(WTF::MemoryPressureHandler::currentMemoryUsagePolicy):
* wtf/MemoryPressureHandler.h:

Tools:

When process physical footprint is above a fraction of the jetsam limit, be more conservative in making
compositing layers. We avoid compositing for these situations:
1. Layers with 3D transforms which are affine (like translateZ(0)).
2. Layers with will-change
3. Layers for canvases (other than WebGL/WebGPU)

We reuse some macOS code in MemoryPressureHandler() but choose different thresholds for iOS,
falling into "conservative mode" at 50% of jetsam limit, and "strict mode" at 65%.
Compositing chooses to be more conservative in either "conservative" or "strict" memory modes.

Plumb through a "compositingPolicyOverride" both so that on-device testing isn't
flakily falling into a different mode, and so that we can impose the conservative
mode for testing.

* WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::prepare):

LayoutTests:

* compositing/layer-creation/compositing-policy-expected.txt: Added.
* compositing/layer-creation/compositing-policy.html: Added.

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

15 months ago[WK1] ASSERTION FAILED: renderer().repaintLayoutRects().m_repaintRect == renderer...
zalan@apple.com [Fri, 27 Jul 2018 22:11:32 +0000 (22:11 +0000)]
[WK1] ASSERTION FAILED: renderer().repaintLayoutRects().m_repaintRect == renderer().clippedOverflowRectForRepaint(renderer().containerForRepaint()) in WebCore::RenderLayer::updateLayerPositionsAfterScroll
https://bugs.webkit.org/show_bug.cgi?id=188122
<rdar://problem/42584790>

Reviewed by Simon Fraser.

Source/WebCore:

When ScrollView's m_paintsEntireContents flag flips due to layer backing changes, the repaint area transitions from
visual to layout overflow. When this happens the cached repaint rects become invalid and they need to be recomputed.
Currently there's no mechanism to trigger repaint cache invalidation from ScrollView.
Skip assertion for now on WK1 (see webkit.org/b/188121)

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositionsAfterScroll):

LayoutTests:

* platform/mac-wk1/TestExpectations:

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

15 months agoExplicitly handle memlimit_active < 0
sbarati@apple.com [Fri, 27 Jul 2018 21:20:22 +0000 (21:20 +0000)]
Explicitly handle memlimit_active < 0
https://bugs.webkit.org/show_bug.cgi?id=188125

Reviewed by Mark Lam.

This may come up during development when someone wants the limit
to be "infinite".

* bmalloc/AvailableMemory.cpp:
(bmalloc::jetsamLimit):

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

15 months agoAdd RefCounted CompletionHandler wrapping abstraction for sending policy decisions...
achristensen@apple.com [Fri, 27 Jul 2018 20:50:01 +0000 (20:50 +0000)]
Add RefCounted CompletionHandler wrapping abstraction for sending policy decisions back to WebProcess
https://bugs.webkit.org/show_bug.cgi?id=188089

Reviewed by Geoffrey Garen.

This will be necessary for when I add an asynchronous parallel step to decidePolicyForNavigationAction.
We will want to wait for that asynchronous step for decidePolicyForNavigationActionSync but not for a client.

No change in behavior.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::PolicyDecisionSender::create):
(WebKit::WebPageProxy::PolicyDecisionSender::operator()):
(WebKit::WebPageProxy::PolicyDecisionSender::PolicyDecisionSender):
(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSync):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

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

15 months agoUse SPI to compute the jetsam limit on iOS instead of hardcoding 840MB
sbarati@apple.com [Fri, 27 Jul 2018 20:35:05 +0000 (20:35 +0000)]
Use SPI to compute the jetsam limit on iOS instead of hardcoding 840MB
https://bugs.webkit.org/show_bug.cgi?id=188091
<rdar://problem/42647697>

Reviewed by Simon Fraser.

Source/bmalloc:

We want bmalloc to dynamically adapt to the jetsam limit of the process
it's running in. WTF::ramSize() is based off bmalloc's availableMemory,
so it will now reflect the result of the real jetsam limit when we can
read it.

Reading the jetsam limit requires an entitlement, so this patch opts in
the WebContent/Storage/Network processes. We fall back to 840MB (the
old hard coded value) when the SPI call fails (e.g, when we're in a
process without the proper entitlement).

* bmalloc.xcodeproj/project.pbxproj:
* bmalloc/AvailableMemory.cpp:
(bmalloc::jetsamLimit):
(bmalloc::computeAvailableMemory):
* bmalloc/darwin/MemoryStatusSPI.h: Added.

Source/WebKit:

Give the Network/Storage/WebContent process the com.apple.private.memorystatus
entitlement. This allows them to read the process jetsam limit.

* Configurations/Databases-iOS.entitlements:
* Configurations/Network-iOS.entitlements:
* Configurations/WebContent-iOS.entitlements:

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

15 months agoUnreviewed GTK test gardening
mcatanzaro@igalia.com [Fri, 27 Jul 2018 20:11:45 +0000 (20:11 +0000)]
Unreviewed GTK test gardening

Tools:

* TestWebKitAPI/glib/TestExpectations.json:

WebDriverTests:

* TestExpectations.json:

LayoutTests:

* TestExpectations:
* platform/gtk/TestExpectations:

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

15 months agoFix API tests after r234314
achristensen@apple.com [Fri, 27 Jul 2018 18:31:38 +0000 (18:31 +0000)]
Fix API tests after r234314
https://bugs.webkit.org/show_bug.cgi?id=188077

Make API tests use new delegate method.

* TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
(-[WebsitePoliciesWebsiteDataStoreDelegate _webView:decidePolicyForNavigationAction:userInfo:decisionHandler:]):
(-[WebsitePoliciesWebsiteDataStoreDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]): Deleted.

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

15 months agoFix API tests after r234314
achristensen@apple.com [Fri, 27 Jul 2018 18:30:28 +0000 (18:30 +0000)]
Fix API tests after r234314
https://bugs.webkit.org/show_bug.cgi?id=188077

Make API tests use new delegate method.

* TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
(-[ContentBlockingWebsitePoliciesDelegate _webView:decidePolicyForNavigationAction:userInfo:decisionHandler:]):
(-[AutoplayPoliciesDelegate _webView:decidePolicyForNavigationAction:userInfo:decisionHandler:]):
(-[AsyncAutoplayPoliciesDelegate _webView:decidePolicyForNavigationAction:userInfo:decisionHandler:]):
(-[CustomHeaderFieldsDelegate _webView:decidePolicyForNavigationAction:userInfo:decisionHandler:]):
(-[PopUpPoliciesDelegate _webView:decidePolicyForNavigationAction:userInfo:decisionHandler:]):
(-[ContentBlockingWebsitePoliciesDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]): Deleted.
(-[AutoplayPoliciesDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]): Deleted.
(-[AsyncAutoplayPoliciesDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]): Deleted.
(-[CustomHeaderFieldsDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]): Deleted.
(-[PopUpPoliciesDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]): Deleted.

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

15 months ago[WIN] Crash when trying to access store pages
mmaxfield@apple.com [Fri, 27 Jul 2018 18:21:16 +0000 (18:21 +0000)]
[WIN] Crash when trying to access store pages
https://bugs.webkit.org/show_bug.cgi?id=188032
<rdar://problem/42467016>

Reviewed by Brent Fulgham.

The Windows implementation of GlyphBuffer has an additional member, m_offsets, which represents
an additional offset to the position to paint each glyph. It also has two add() functions, one
which appends to this vector, and one which doesn't. The one that doesn't append to the vector
should never be called on Windows (because Windows requires this vector to be full).

There were two situations where it was getting called:
1) Inside ComplexTextController
2) Inside display list playback

Windows shouldn't be using ComplexTextController because the Windows implementation of this
class isn't ready yet; instead it should be using UniscribeController. The display list playback
code should be used on Windows.

Rather than fix the function to append an offset, we actually don't need the m_offsets vector
in the first place. Instead, we can do it the same way that the Cocoa ports do it, which is to
bake the offsets into the glyph advances. This is possible because the GlyphBuffer doesn't need
to distinguish between layout advances and paint advances, so we can bake them together and
just put paint advances in the GlyphBuffer. This should be a small (probably within-the-noise)
performance and memory improvement.

* platform/graphics/ComplexTextController.cpp:
(WebCore::ComplexTextController::ComplexTextController): Make sure that ComplexTextController
isn't used on Windows.
* platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::widthOfTextRange const): Switch from ComplexTextController to
UniscribeController on Windows.
(WebCore::FontCascade::drawGlyphBuffer const): After deleting the m_offsets vector, there's
no reason to consult it when drawing.
* platform/graphics/GlyphBuffer.h: Remove m_offsets
(WebCore::GlyphBuffer::clear):
(WebCore::GlyphBuffer::advanceAt const):
(WebCore::GlyphBuffer::add):
(WebCore::GlyphBuffer::expandLastAdvance):
(WebCore::GlyphBuffer::shrink):
(WebCore::GlyphBuffer::swap):
(WebCore::GlyphBuffer::offsetAt const): Deleted.
* platform/graphics/win/FontCGWin.cpp:
(WebCore::FontCascade::drawGlyphs): After deleting the m_offsets vector, there's no reason
to consult it when drawing.
* platform/graphics/win/FontCascadeDirect2D.cpp:
(WebCore::FontCascade::drawGlyphs): Ditto.
* platform/graphics/win/UniscribeController.cpp:
(WebCore::UniscribeController::shapeAndPlaceItem): Bake in the offsets into the glyph advances.

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

15 months ago[Curl] Crash on synchronous request via ResourceHandle.
Basuke.Suzuki@sony.com [Fri, 27 Jul 2018 18:19:17 +0000 (18:19 +0000)]
[Curl] Crash on synchronous request via ResourceHandle.
https://bugs.webkit.org/show_bug.cgi?id=188033

Reviewed by Alex Christensen.

Source/WebCore:

The timing of instantiation of delegate was wrong. Move it inside `delegate` getter().
This bug was introduced at r228577.

Test: http/tests/xmlhttprequest/simple-sync.html

* platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::delegate):

LayoutTests:

bug/188033 Crash sync xmlhttprequest

* platform/wincairo/TestExpectations:

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

15 months agoLayout Test tiled-drawing/scrolling/fixed/four-bars-zoomed.html is flaky text failure.
david_fenton@apple.com [Fri, 27 Jul 2018 18:02:11 +0000 (18:02 +0000)]
Layout Test tiled-drawing/scrolling/fixed/four-bars-zoomed.html is flaky text failure.
https://bugs.webkit.org/show_bug.cgi?id=188096

Unreviewed test gardening, marked test as flaky.

* platform/mac-wk2/TestExpectations:

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

15 months agoUnreviewed, rolling out r233461.
david_fenton@apple.com [Fri, 27 Jul 2018 18:02:06 +0000 (18:02 +0000)]
Unreviewed, rolling out r233461.

assertions triggered on ios11 Debug wk2

Reverted changeset:

"[iOS] Add assert to catch improper use of WebCore::Timer in
UI Process"
https://bugs.webkit.org/show_bug.cgi?id=185330
https://trac.webkit.org/changeset/233461

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

15 months agoRemove unused WKNavigationDelegatePrivate decidePolicyForNavigationAction SPI
commit-queue@webkit.org [Fri, 27 Jul 2018 17:03:15 +0000 (17:03 +0000)]
Remove unused WKNavigationDelegatePrivate decidePolicyForNavigationAction SPI
https://bugs.webkit.org/show_bug.cgi?id=188077

Patch by Alex Christensen <achristensen@webkit.org> on 2018-07-27
Reviewed by Darin Adler.

The one client has moved to the version with userInfo, and it never used the SPI
on old operating systems.

* UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):

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

15 months agoBegin making WKWebViewConfiguration a wrapper around an API::PageConfiguration
achristensen@apple.com [Fri, 27 Jul 2018 17:02:52 +0000 (17:02 +0000)]
Begin making WKWebViewConfiguration a wrapper around an API::PageConfiguration
https://bugs.webkit.org/show_bug.cgi?id=188030

Reviewed by Sam Weinig.

Eventually WKWebViewConfiguration should become just a API::ObjectStorage<API::PageConfiguration>.
The transition includes adding fields that exist in WKWebViewConfiguration to API::PageConfiguration
and making WKWebViewConfiguration's getters and setters just call API::PageConfiguration's corresponding methods
instead of having an ivar for each value then copying it to an API::PageConfiguration we construct in
the WKWebView constructor.  To transition incrementally, I've added a RefPtr<API::PageConfiguration> ivar to
WKWebViewConfiguration and moved a few ivars to use the values stored in that API::PageConfiguration instead.
I've arbitrarily chosen _treatsSHA1SignedCertificatesAsInsecure and _urlSchemeHandlers as the first two
properties to transition, and I'll continue transitioning each ivar in small, easy-to-review bunches.

* UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::copy const):
(API::PageConfiguration::urlSchemeHandlerForURLScheme):
(API::PageConfiguration::setURLSchemeHandlerForURLScheme):
* UIProcess/API/APIPageConfiguration.h:
(API::PageConfiguration::urlSchemeHandlers):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration setURLSchemeHandler:forURLScheme:]):
(-[WKWebViewConfiguration urlSchemeHandlerForURLScheme:]):
(-[WKWebViewConfiguration copyPageConfiguration]):
(-[WKWebViewConfiguration _treatsSHA1SignedCertificatesAsInsecure]):
(-[WKWebViewConfiguration _setTreatsSHA1SignedCertificatesAsInsecure:]):
(-[WKWebViewConfiguration _urlSchemeHandlers]): Deleted.
* UIProcess/API/Cocoa/WKWebViewConfigurationInternal.h:

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

15 months ago[Media] Avoid unnecessarily constructing *TrackList objects
cdumez@apple.com [Fri, 27 Jul 2018 16:58:20 +0000 (16:58 +0000)]
[Media] Avoid unnecessarily constructing *TrackList objects
https://bugs.webkit.org/show_bug.cgi?id=188094

Reviewed by Eric Carlson.

Avoid unnecessarily constructing *TrackList objects as this is preventing us from making them
ActiveDOMObjects.

* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::removeSourceBuffer):
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::addAudioTrack):
(WebCore::HTMLMediaElement::addTextTrack):
(WebCore::HTMLMediaElement::addVideoTrack):
(WebCore::HTMLMediaElement::ensureAudioTracks):
(WebCore::HTMLMediaElement::ensureTextTracks):
(WebCore::HTMLMediaElement::ensureVideoTracks):
(WebCore::HTMLMediaElement::setSelectedTextTrack):
(WebCore::HTMLMediaElement::audioTracks): Deleted.
(WebCore::HTMLMediaElement::textTracks): Deleted.
(WebCore::HTMLMediaElement::videoTracks): Deleted.
* html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::audioTracks const):
(WebCore::HTMLMediaElement::textTracks const):
(WebCore::HTMLMediaElement::videoTracks const):
* html/HTMLMediaElement.idl:
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay):
(WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):
(WebCore::MediaControlTextTrackContainerElement::updateTextStrokeStyle):
* html/track/TextTrack.cpp:
(WebCore::TextTrack::setKind):
(WebCore::TextTrack::trackIndex):
(WebCore::TextTrack::trackIndexRelativeToRenderedTracks):
(WebCore::TextTrack::setLanguage):
* html/track/VideoTrack.cpp:
(WebCore::VideoTrack::setKind):
(WebCore::VideoTrack::setLanguage):
* platform/cocoa/PlaybackSessionModelMediaElement.mm:
(WebCore::PlaybackSessionModelMediaElement::setMediaElement):
(WebCore::PlaybackSessionModelMediaElement::updateMediaSelectionOptions):

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

15 months ago[Curl] Set correct source info to ResourceResponse.
Basuke.Suzuki@sony.com [Fri, 27 Jul 2018 16:50:19 +0000 (16:50 +0000)]
[Curl] Set correct source info to ResourceResponse.
https://bugs.webkit.org/show_bug.cgi?id=188069

Reviewed by Fujii Hironori.

Source/WebCore:

ResourceResponseBase::Source::Network must be set by each ports. Curl port
didn't set this.

Test: http/tests/cache/disk-cache/disk-cache-302-status-code.html

* platform/network/curl/ResourceResponseCurl.cpp:
(WebCore::ResourceResponse::ResourceResponse):

LayoutTests:

* platform/wincairo/TestExpectations:
  - http/tests/cache/disk-cache/disk-cache-302-status-code.html: Pass

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

15 months agoLoading a file URL and then issuing a reload right away causes the load to fail due...
cdumez@apple.com [Fri, 27 Jul 2018 16:28:36 +0000 (16:28 +0000)]
Loading a file URL and then issuing a reload right away causes the load to fail due to sandboxing
https://bugs.webkit.org/show_bug.cgi?id=188078
<rdar://problem/42562493>

Unreviewed, follow-up fix after r234290 to address assertion hits on the bots. Make the fix
specific to reloads as we know the existing provisional sandbox extension is for the same
URL then.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::reload):
(WebKit::WebPage::SandboxExtensionTracker::beginLoad):
(WebKit::WebPage::SandboxExtensionTracker::beginReload):
* WebProcess/WebPage/WebPage.h:

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

15 months ago[WinCairo] Unreviewed test gardening
Hironori.Fujii@sony.com [Fri, 27 Jul 2018 10:46:12 +0000 (10:46 +0000)]
[WinCairo] Unreviewed test gardening

* platform/wincairo/TestExpectations:
Enable test cases under http/tests/css.

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

15 months ago[INTL] Remove INTL sub-feature compile flags
commit-queue@webkit.org [Fri, 27 Jul 2018 05:06:02 +0000 (05:06 +0000)]
[INTL] Remove INTL sub-feature compile flags
https://bugs.webkit.org/show_bug.cgi?id=188081

Patch by Andy VanWagoner <andy@vanwagoner.family> on 2018-07-26
Reviewed by Michael Catanzaro.

.:

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

PerformanceTests:

Removed old and unused i18n flag.

* StitchMarker/wtf/FeatureDefines.h:

Source/JavaScriptCore:

Removed ENABLE_INTL_NUMBER_FORMAT_TO_PARTS and ENABLE_INTL_PLURAL_RULES flags.
The runtime flags are still present, and should be relied on instead.
The defines for ICU features have also been updated to match HAVE() style.

* Configurations/FeatureDefines.xcconfig:
* runtime/IntlPluralRules.cpp:
(JSC::IntlPluralRules::resolvedOptions):
(JSC::IntlPluralRules::select):
* runtime/IntlPluralRules.h:
* runtime/Options.h:

Source/WebCore:

Compile time feature flags for INTL sub features were removed, and are covered by existing tests.

* Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit:

* Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

* Configurations/FeatureDefines.xcconfig:

Source/WTF:

Removed INTL sub-feature compile flags, and an old unused i18n flag.

* wtf/FeatureDefines.h:

Tools:

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

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

15 months ago[Curl] Test gardening
Basuke.Suzuki@sony.com [Fri, 27 Jul 2018 04:13:21 +0000 (04:13 +0000)]
[Curl] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=188090

Unreviewed test gardening.
Rearrange http test section.

* platform/wincairo/TestExpectations:

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

15 months ago[Fullscreen] Do not create composited layers for renderers unless they are part of...
zalan@apple.com [Fri, 27 Jul 2018 04:02:05 +0000 (04:02 +0000)]
[Fullscreen] Do not create composited layers for renderers unless they are part of the fullscreen subtree.
https://bugs.webkit.org/show_bug.cgi?id=188087
<rdar://problem/42632124>

Reviewed by Simon Fraser.

Source/WebCore:

Sibling composited layers prevent battery lifetime optimizations when in fullscreen.

Test: compositing/no-compositing-when-fulll-screen-is-present.html

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::isDescendantOf const):
* rendering/RenderLayer.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::isDescendantOfFullScreenLayer):
(WebCore::RenderLayerCompositor::requiresCompositingForWillChange const):
(WebCore::RenderLayerCompositor::requiresCompositingForPosition const):

LayoutTests:

* compositing/no-compositing-when-fulll-screen-is-present-expected.txt: Added.
* compositing/no-compositing-when-fulll-screen-is-present.html: Added.

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

15 months agoLoading a file URL and then issuing a reload right away causes the load to fail due...
cdumez@apple.com [Fri, 27 Jul 2018 01:50:08 +0000 (01:50 +0000)]
Loading a file URL and then issuing a reload right away causes the load to fail due to sandboxing
https://bugs.webkit.org/show_bug.cgi?id=188078
<rdar://problem/42562493>

Reviewed by Geoff Garen.

Source/WebKit:

When WebPageProxy::loadFile() is called, we create a SandboxExtension::Handle for the resource path provided
by the caller and pass it to the WebProcess. WebPage::loadRequest() then calls SandboxExtensionTracker::beginLoad()
to store this handle in m_provisionalSandboxExtension for later consumption.

If a reload is issued before this sandbox extension has been consumed, then the following happens:
1. WebPageProxy::reload() does NOT create a SandboxExtension::Handle because it has already issued one earlier.
   maybeInitializeSandboxExtensionHandle() returns early due to m_process->hasAssumedReadAccessToURL(url) check.
2. WebPage::reload() then calls SandboxExtensionTracker::beginLoad() with a null handle, which overwrites the
   previous m_provisionalSandboxExtension its needs.
3. The load fails because the WebContent process is missing the sandbox extension.

To address the issue, SandboxExtensionTracker::beginLoad() is updated to only overwrite m_provisionalSandboxExtension
if the new handle is not null. This avoids inadvertently clearing a valid sandbox extension we may need for the load,
since the UIProcess sends us a null handle if it previously sent us a sandbox extension for the path in question.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::SandboxExtensionTracker::beginLoad):

Tools:

Add API test coverage. It exercises the right code path but unfortunately is not yet a regression
test because TestWebKitAPI does not appear to be sandboxed (rdar://problem/42638129).

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/LoadFileThenReload.mm: Added.
(-[LoadFileThenReloadDelegate webView:didFinishNavigation:]):
(-[LoadFileThenReloadDelegate webView:didFailProvisionalNavigation:withError:]):
(-[LoadFileThenReloadDelegate webView:didFailNavigation:withError:]):
(TEST):

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

15 months agoUnreviewed, rolling out r234281.
ryanhaddad@apple.com [Fri, 27 Jul 2018 01:37:54 +0000 (01:37 +0000)]
Unreviewed, rolling out r234281.

Broke internal builds.

Reverted changeset:

"[Datalist] Add button to TextFieldInputs with a datalist"
https://bugs.webkit.org/show_bug.cgi?id=187741
https://trac.webkit.org/changeset/234281

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

15 months agoIt should be possible to use WTF::CallbackAggregator from a background thread
cdumez@apple.com [Fri, 27 Jul 2018 01:24:33 +0000 (01:24 +0000)]
It should be possible to use WTF::CallbackAggregator from a background thread
https://bugs.webkit.org/show_bug.cgi?id=188084

Reviewed by Alex Christensen.

Source/WebKit:

This code was passing CallbackAggregator objects for background thread and not being
careful on which thread the CallbackAggregator gets destroyed. This patch fixes this
since the CallbackAggregator destructor no longer takes care of dispatching to the
main thread.

* NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::clearAllCaches):
(WebKit::CacheStorage::Engine::clearCachesForOrigin):

Source/WTF:

Make WTF::CallbackAggregator usable on background threads by updating its destructor to call the
completion handler on whatever thread it is destroyed on, instead of always dispatching to the
main thread before calling the completion handler.

Existing CallbackAggregator users that deal with threads have been updated to make sure they
destroy the CallbackAggregator on the expected thread.

This will allow us to use CallbackAggregator in the ResourceLoadStatisticsMemoryStore, which lives
on a background WorkQueue.

* wtf/CallbackAggregator.h:
(WTF::CallbackAggregator::~CallbackAggregator):
(WTF::CallbackAggregator::CallbackAggregator):

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

15 months ago[JSC] Dump IndexingMode in Structure
utatane.tea@gmail.com [Fri, 27 Jul 2018 00:42:33 +0000 (00:42 +0000)]
[JSC] Dump IndexingMode in Structure
https://bugs.webkit.org/show_bug.cgi?id=188085

Reviewed by Keith Miller.

Dump IndexingMode instead of IndexingType.

* runtime/Structure.cpp:
(JSC::Structure::dump const):

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

15 months agoAdd Aaron Chu as a committer to contributors.json
aaron_chu@apple.com [Thu, 26 Jul 2018 23:19:45 +0000 (23:19 +0000)]
Add Aaron Chu as a committer to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=188066

Unreviwed. Added myself as committer.

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

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

15 months ago[Datalist] Add button to TextFieldInputs with a datalist
commit-queue@webkit.org [Thu, 26 Jul 2018 23:12:23 +0000 (23:12 +0000)]
[Datalist] Add button to TextFieldInputs with a datalist
https://bugs.webkit.org/show_bug.cgi?id=187741

Patch by Aditya Keerthi <akeerthi@apple.com> on 2018-07-26
Reviewed by Tim Horton.

Source/WebCore:

TextFieldInputs that have an associated datalist element should be drawn as
combo boxes. However, we cannot use NSComboBox for this control, as NSComboBox
is not height-resizable. Furthermore, the input should also be able to contain
additional elements, such as the stepper for type=number and the cancel button
for type=search. For these reasons, we draw a button at the end of the input,
mimicking appearance of a combo box.

The list-button -webkit-appearance value was added to display the new button.

Tests: fast/forms/datalist/datalist-searchinput-appearance.html
       fast/forms/datalist/datalist-textinput-appearance.html

* Resources/ListButtonArrow.png: Added.
* Resources/ListButtonArrow@2x.png: Added.
* WebCore.xcodeproj/project.pbxproj:
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
* css/CSSProperties.json:
* css/CSSValueKeywords.in:
* css/html.css:
(input::-webkit-list-button):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::dataListButtonElement const):
(WebCore::HTMLInputElement::isShowingList const):
* html/HTMLInputElement.h:
* html/InputType.h:
(WebCore::InputType::dataListButtonElement const):
(WebCore::InputType::isShowingList const):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::needsContainer const):
(WebCore::TextFieldInputType::createShadowSubtree):
(WebCore::TextFieldInputType::destroyShadowSubtree):
(WebCore::TextFieldInputType::listAttributeTargetChanged):
(WebCore::TextFieldInputType::dataListButtonElement const):
(WebCore::TextFieldInputType::dataListButtonElementWasClicked):
(WebCore::TextFieldInputType::didCloseSuggestions):
(WebCore::TextFieldInputType::isShowingList const):
* html/TextFieldInputType.h:
* html/shadow/DataListButtonElement.cpp: Added.
(WebCore::DataListButtonElement::create):
(WebCore::DataListButtonElement::DataListButtonElement):
(WebCore::DataListButtonElement::~DataListButtonElement):
(WebCore::DataListButtonElement::defaultEventHandler):
* html/shadow/DataListButtonElement.h: Added.
* platform/ThemeTypes.h:
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::adjustListButtonStyle const):
* rendering/RenderTheme.h:
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(-[WebListButtonCell drawWithFrame:inView:]):
(WebCore::RenderThemeMac::paintListButtonForInput):
(WebCore::RenderThemeMac::adjustListButtonStyle const):
(WebCore::RenderThemeMac::paintTextField):
(WebCore::RenderThemeMac::paintSearchField):
(WebCore::RenderThemeMac::paintSearchFieldCancelButton):
(WebCore::RenderThemeMac::listButton const):

Source/WebCore/PAL:

* pal/spi/cocoa/NSColorSPI.h: Added NSColorGetUserAccentColor().

Source/WebInspectorUI:

Add keyword completion for 'list-button'.

* UserInterface/External/CodeMirror/css.js:
* UserInterface/Models/CSSKeywordCompletions.js:

LayoutTests:

Added tests to verify appearance of TextFieldInputs with a datalist.

* fast/forms/datalist/datalist-searchinput-appearance.html: Added.
* fast/forms/datalist/datalist-textinput-appearance.html: Added.
* platform/mac/fast/forms/datalist/datalist-searchinput-appearance-expected.png: Added.
* platform/mac/fast/forms/datalist/datalist-searchinput-appearance-expected.txt: Added.
* platform/mac/fast/forms/datalist/datalist-textinput-appearance-expected.png: Added.
* platform/mac/fast/forms/datalist/datalist-textinput-appearance-expected.txt: Added.

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

15 months ago[ews-build] Add build step to run API Tests
aakash_jain@apple.com [Thu, 26 Jul 2018 22:51:39 +0000 (22:51 +0000)]
[ews-build] Add build step to run API Tests
https://bugs.webkit.org/show_bug.cgi?id=188079

Reviewed by Lucas Forschler.

* BuildSlaveSupport/ews-build/steps.py:
(TestWithFailureCount): Common class for various tests with failure count.
(TestWithFailureCount.start): Configure Buildbot's logobserver.
(TestWithFailureCount.commandComplete): Updates the failure count.
(TestWithFailureCount.evaluateCommand): Set the step status appropriately.
(TestWithFailureCount.getResultSummary): Set the step summary appropriately.
(RunAPITests): Build step to run API tests.
(RunAPITests.countFailures): Count the failures by parsing the output.
* BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.

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

15 months ago[Web Animations] Accelerated animations don't respect a positive delay value
graouts@webkit.org [Thu, 26 Jul 2018 22:16:28 +0000 (22:16 +0000)]
[Web Animations] Accelerated animations don't respect a positive delay value
https://bugs.webkit.org/show_bug.cgi?id=186930
<rdar://problem/41393393>

Reviewed by Dean Jackson.

Source/WebCore:

Test: webanimations/accelerated-animation-with-delay.html

We would mistakenly clear the list of pending accelerated actions in KeyframeEffectReadOnly::applyPendingAcceleratedActions()
even if we failed to proceed because of the target element's renderer not being composited yet. Now, we clear the list after
we've established we can apply them, and if we can't we inform the animation with a call to acceleratedStateDidChange() which
will in turn call into the document timeline so that we may consider these animations on the next tick.

For this to work correctly we must make a change to DocumentTimeline::applyPendingAcceleratedAnimations() which only cleared
its list of pending accelerated animations _after_ iterating through them, which would be problematic since we would now add
animations to this list. That list is now copied and cleared prior to iterating through its members.

We also fix the naming of the m_pendingAcceleratedActions copy in KeyframeEffectReadOnly::applyPendingAcceleratedActions()
to have a more similar name.

* animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::applyPendingAcceleratedAnimations):
* animation/KeyframeEffectReadOnly.cpp:
(WebCore::KeyframeEffectReadOnly::applyPendingAcceleratedActions):

LayoutTests:

Creating a new test that runs an accelerated animation on a non-positioned element with a small
positive delay. Prior to this patch, the element would move slightly when the delay elapses but
wouldn't animate towards the target value. With this patch, it animatea correctly. To check
that it does animate, we add a cache over the element except for the first 25px which is the area
within which it might have moved prior to this patch. This way the test only passes if the element
is fully hidden by the cache.

* webanimations/accelerated-animation-with-delay-expected.html: Added.
* webanimations/accelerated-animation-with-delay.html: Added.

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

15 months agoString(View) should have a splitAllowingEmptyEntries function instead of a flag parameter
ross.kirsling@sony.com [Thu, 26 Jul 2018 22:00:03 +0000 (22:00 +0000)]
String(View) should have a splitAllowingEmptyEntries function instead of a flag parameter
https://bugs.webkit.org/show_bug.cgi?id=187963

Reviewed by Alex Christensen.

Source/JavaScriptCore:

* inspector/InspectorBackendDispatcher.cpp:
(Inspector::BackendDispatcher::dispatch):
* jsc.cpp:
(ModuleName::ModuleName):
(resolvePath):
* runtime/IntlObject.cpp:
(JSC::canonicalizeLanguageTag):
(JSC::removeUnicodeLocaleExtension):
Update split/splitAllowingEmptyEntries usage.

Source/WebCore:

* Modules/applepay/cocoa/PaymentContactCocoa.mm:
(WebCore::convert):
* Modules/cache/DOMCache.cpp:
(WebCore::hasResponseVaryStarHeaderValue):
* Modules/cache/DOMCacheEngine.cpp:
(WebCore::DOMCacheEngine::queryCacheMatch):
* Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::filterICECandidate):
(WebCore::PeerConnectionBackend::filterSDP const):
* Modules/websockets/WebSocketHandshake.cpp:
(WebCore::WebSocketHandshake::checkResponseHeaders):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::determineARIADropEffects):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::determineARIADropEffects):
* accessibility/AccessibilityRenderObject.h:
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
* editing/cocoa/DataDetection.mm:
(WebCore::DataDetection::shouldCancelDefaultAction):
* editing/markup.cpp:
(WebCore::fillContainerFromString):
(WebCore::createFragmentFromText):
* html/EmailInputType.cpp:
(WebCore::EmailInputType::typeMismatchFor const):
(WebCore::EmailInputType::sanitizeValue const):
* html/HTMLInputElement.cpp:
(WebCore::parseAcceptAttribute):
* html/ValidationMessage.cpp:
(WebCore::ValidationMessage::setMessageDOMAndStartTimer):
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::compileShader):
* inspector/agents/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::nodeForPath):
* loader/FormSubmission.cpp:
(WebCore::encodingFromAcceptCharset):
* loader/ResourceTiming.cpp:
(WebCore::passesTimingAllowCheck):
* page/WindowFeatures.cpp:
(WebCore::parseDisabledAdaptations):
(WebCore::parseDialogFeaturesMap):
* platform/URL.cpp:
(WebCore::isIPv4Address):
(WebCore::isIPv6Address):
* platform/graphics/GLContext.cpp:
(WebCore::GLContext::version):
* platform/graphics/freetype/FontCacheFreeType.cpp:
(WebCore::patternToFamilies):
* platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::extractGStreamerOptionsFromCommandLine):
* platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
(WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon):
(WebCore::Extensions3DOpenGLCommon::initializeAvailableExtensions):
* platform/gtk/PasteboardHelper.cpp:
(WebCore::PasteboardHelper::fillSelectionData):
* platform/gtk/SelectionData.cpp:
(WebCore::SelectionData::setURIList):
* platform/network/CacheValidation.cpp:
(WebCore::collectVaryingRequestHeaders):
* platform/network/HTTPParsers.cpp:
(WebCore::filenameFromHTTPContentDisposition):
(WebCore::parseXFrameOptionsHeader):
(WebCore::parseAccessControlExposeHeadersAllowList):
* platform/network/curl/CookieUtil.cpp:
(WebCore::CookieUtil::parseCookieHeader):
* platform/network/curl/CurlCacheEntry.cpp:
(WebCore::CurlCacheEntry::loadResponseHeaders):
* platform/network/curl/CurlCacheManager.cpp:
(WebCore::CurlCacheManager::loadIndex):
* platform/network/soup/CookieJarSoup.cpp:
(WebCore::setCookiesFromDOM):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::parseAttribute):
* svg/SVGToOTFFontConversion.cpp:
(WebCore::SVGToOTFFontConverter::appendOS2Table):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::parseBeginOrEnd):
* testing/MockCDMFactory.cpp:
(WebCore::MockCDM::sanitizeResponse const):
(WebCore::MockCDMInstance::updateLicense):
Update split/splitAllowingEmptyEntries usage.

Source/WebDriver:

* WebDriverService.cpp:
(WebDriver::WebDriverService::findCommand):
* glib/WebDriverServiceGLib.cpp:
(WebDriver::parseVersion):
Update split/splitAllowingEmptyEntries usage.

Source/WebKit:

* NetworkProcess/cache/CacheStorageEngineCache.cpp:
(WebKit::CacheStorage::updateVaryInformation):
* NetworkProcess/capture/NetworkCaptureManager.cpp:
(WebKit::NetworkCapture::Manager::fuzzyMatchURLs):
* Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
(WebKit::getPluginInfoFromPropertyLists):
(WebKit::PluginVersion::parse):
* Shared/Plugins/Netscape/unix/NetscapePluginModuleUnix.cpp:
(WebKit::NetscapePluginModule::parseMIMEDescription):
* Shared/Plugins/unix/PluginSearchPath.cpp:
(WebKit::pluginsDirectories):
* Shared/mac/ChildProcessMac.mm:
(WebKit::ChildProcess::initializeSandbox):
* UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:
* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::fileCanBeAcceptedForUpload):
* UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:
(WebKit::ProcessLauncher::launchProcess):
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::ProcessLauncher::launchProcess):
* UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
(WebKit::PluginProcessProxy::scanPlugin):
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::isTransparentSilverlightBackgroundValue):
Update split/splitAllowingEmptyEntries usage.

Source/WebKitLegacy/win:

* Plugins/PluginPackageWin.cpp:
(WebCore::PluginPackage::fetchInfo):
Update split/splitAllowingEmptyEntries usage.

Source/WTF:

* wtf/Assertions.cpp:
Update split/splitAllowingEmptyEntries usage.

* wtf/text/StringView.h:
(WTF::StringView::splitAllowingEmptyEntries const):
* wtf/text/WTFString.cpp:
(WTF::String::splitInternal const):
(WTF::String::split const):
(WTF::String::splitAllowingEmptyEntries const):
* wtf/text/WTFString.h:
(WTF::String::split const):
Introduce splitAllowingEmptyEntries instead of boolean or enum parameter.

Tools:

* TestWebKitAPI/Tests/WTF/WTFString.cpp:
Add tests for String::split and String::splitAllowingEmptyEntries.

* TestWebKitAPI/Tests/WTF/StringView.cpp:
* WebKitTestRunner/TestController.cpp:
(WTR::updateTestOptionsFromTestHeader):
Update split/splitAllowingEmptyEntries usage.

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

15 months ago[Curl] Test gardening
Basuke.Suzuki@sony.com [Thu, 26 Jul 2018 21:50:02 +0000 (21:50 +0000)]
[Curl] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=188076

Unreviewed test gardening.

Mark diskcache test "Failure" for upcoming fix:
- https://bugs.webkit.org/show_bug.cgi?id=188069.

* platform/wincairo/TestExpectations:
  - http/tests/cache/disk-cache/disk-cache-302-status-code.html [ Failure ]

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

15 months agoFix assertions introduced in r234210
achristensen@apple.com [Thu, 26 Jul 2018 21:44:05 +0000 (21:44 +0000)]
Fix assertions introduced in r234210
https://bugs.webkit.org/show_bug.cgi?id=188074

Reviewed by Chris Dumez.

There is a client that uses WKFramePolicyListenerUseWithPolicies to send website policies as
a response to the WKPageNavigationClient's decidePolicyForNavigationResponse.  That is wasting
effort to generate policies that don't change anything. Once that client adopts WKWebView
they won't be able to do this any more, so temporarily remove the assertion.
Also, make the assertion about process swapping a release assert to prevent that client
from adopting WKFramePolicyListenerUseInNewProcessWithPolicies for navigation responses.
It should only be used for navigation actions.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):

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

15 months agoAX: nothing returned for various previous text marker APIs from one div/p node to...
n_wang@apple.com [Thu, 26 Jul 2018 21:34:27 +0000 (21:34 +0000)]
AX: nothing returned for various previous text marker APIs from one div/p node to another
https://bugs.webkit.org/show_bug.cgi?id=188071

Reviewed by Chris Fleizach.

Source/WebCore:

TextIterator is emitting an extra '\n' at the end of the <p> node and there's no
corresponding text node in the DOM tree, so we are not able to handle that for
text markers. Fixed it by ignoring the extra '\n' and anchor the text marker to
the previous child text node.

Test: accessibility/mac/text-marker-p-tags.html

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::traverseToOffsetInRange):

LayoutTests:

* accessibility/mac/text-marker-p-tags-expected.txt: Added.
* accessibility/mac/text-marker-p-tags.html: Added.
* accessibility/mac/text-marker-string-for-document-range-expected.txt:

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

15 months agoRemove unused/undefined String::appendInternal
commit-queue@webkit.org [Thu, 26 Jul 2018 21:32:00 +0000 (21:32 +0000)]
Remove unused/undefined String::appendInternal
https://bugs.webkit.org/show_bug.cgi?id=188063

Patch by Sam Weinig <sam@webkit.org> on 2018-07-26
Reviewed by Daniel Bates.

* wtf/text/WTFString.h:
String::appendInternal is declared in WTFString.h, but is never used
and and never even defined. Remove it.

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

15 months agoUnreviewed, rolling out r234181 and r234189.
commit-queue@webkit.org [Thu, 26 Jul 2018 21:11:11 +0000 (21:11 +0000)]
Unreviewed, rolling out r234181 and r234189.
https://bugs.webkit.org/show_bug.cgi?id=188075

These are not needed right now (Requested by thorton on
#webkit).

Reverted changesets:

"Enable Web Content Filtering on watchOS"
https://bugs.webkit.org/show_bug.cgi?id=187979
https://trac.webkit.org/changeset/234181

"HAVE(PARENTAL_CONTROLS) should be true on watchOS"
https://bugs.webkit.org/show_bug.cgi?id=187985
https://trac.webkit.org/changeset/234189

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

15 months agoUse the Page's appearance when converting pasteboard attributed strings.
timothy@apple.com [Thu, 26 Jul 2018 20:30:08 +0000 (20:30 +0000)]
Use the Page's appearance when converting pasteboard attributed strings.
https://bugs.webkit.org/show_bug.cgi?id=188067
rdar://problem/42632246

Reviewed by Wenson Hsieh.

Source/WebCore:

* editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::createFragment): Create a LocalDefaultSystemAppearance based on the Page.

Source/WebKitLegacy/mac:

* WebCoreSupport/WebEditorClient.mm:
(_WebCreateFragment): Create a LocalDefaultSystemAppearance based on the Page.

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

15 months agoarrayProtoPrivateFuncConcatMemcpy() should handle copying from an Undecided type...
mark.lam@apple.com [Thu, 26 Jul 2018 19:49:23 +0000 (19:49 +0000)]
arrayProtoPrivateFuncConcatMemcpy() should handle copying from an Undecided type array.
https://bugs.webkit.org/show_bug.cgi?id=188065
<rdar://problem/42515726>

Reviewed by Saam Barati.

JSTests:

* stress/regress-188065.js: Added.

Source/JavaScriptCore:

* runtime/ArrayPrototype.cpp:
(JSC::clearElement):
(JSC::copyElements):
(JSC::arrayProtoPrivateFuncConcatMemcpy):

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

15 months agoERROR: Unhandled web process message 'WebPage:SetUseDarkAppearance' when browsing...
cdumez@apple.com [Thu, 26 Jul 2018 19:49:09 +0000 (19:49 +0000)]
ERROR: Unhandled web process message 'WebPage:SetUseDarkAppearance' when browsing in dark mode
https://bugs.webkit.org/show_bug.cgi?id=188028

Reviewed by Wenson Hsieh.

The issue was that the WebViewImpl constructor was calling setUseDarkAppearance() *before* calling
initializeWebPage(), which would cause us to send IPC the WebContent process for a pageID that does
not exist on WebProcess side yet.

To address the issue, the WebViewImpl constructor no longer calls setUseDarkAppearance() and WebPageProxy
no longer holds a flag indicates is dark appearance is used. Instead, the WebPageProxy asks the WebView
for the value whenever it needs to, via the PageClient.

* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::WebViewImpl):
(WebKit::WebViewImpl::effectiveAppearanceDidChange):
(WebKit::WebViewImpl::setUseDarkAppearance): Deleted.
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::useDarkAppearance const):
(WebKit::WebPageProxy::effectiveAppearanceDidChange):
(WebKit::WebPageProxy::showPlaybackTargetPicker):
(WebKit::WebPageProxy::setUseDarkAppearance): Deleted.
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::useDarkAppearance const): Deleted.
* UIProcess/mac/PageClientImplMac.h:
* UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::effectiveAppearanceIsDark const):

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

15 months agoLayout Test webgl/2.0.0/conformance2/glsl3/compound-assignment-type-combination.html...
david_fenton@apple.com [Thu, 26 Jul 2018 17:50:04 +0000 (17:50 +0000)]
Layout Test webgl/2.0.0/conformance2/glsl3/compound-assignment-type-combination.html is timing out on mac Debug
https://bugs.webkit.org/show_bug.cgi?id=188061

Unreviewed test gardening.

Marked test as [ Slow ].

* platform/mac/TestExpectations:

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

15 months agoRemove a forward protocol declaration of '_WKWebViewPrintProvider'
sihui_liu@apple.com [Thu, 26 Jul 2018 17:04:52 +0000 (17:04 +0000)]
Remove a forward protocol declaration of '_WKWebViewPrintProvider'
https://bugs.webkit.org/show_bug.cgi?id=188012
<rdar://problem/42309526>

Reviewed by Darin Adler.

@procotol() expressions emit invalid protocol metadata when used with forward @protocol declarations.
Clang is going to make it an error for using a forward-declared protocol in a @protocol expression, so
we need to stop doing this.

* UIProcess/API/Cocoa/WKWebViewInternal.h:

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

15 months agoSwitching tabs should not close PiP window
eric.carlson@apple.com [Thu, 26 Jul 2018 17:03:39 +0000 (17:03 +0000)]
Switching tabs should not close PiP window
https://bugs.webkit.org/show_bug.cgi?id=188054
<rdar://problem/41212379>

Reviewed by Jon Lee.

No new tests, fixes an existing test.

Prior to r233926, calling VideoFullscreenInterfaceMac::requestHideAndExitFullscreen was a noop.
In r233926 it was updated to close the PiP window and was called from the PIPViewControllerDelegate
selectors to close the PiP window. requestHideAndExitFullscreen is also called from
WebPageProxy::viewDidLeaveWindow when the web view is removed from it window, so switching
tabs also closed the PiP window. Revert the changes to requestHideAndExitFullscreen, and add
a new method that is only used by the delegate to exit PiP.

* platform/mac/VideoFullscreenInterfaceMac.h:
(WebCore::VideoFullscreenInterfaceMac::requestHideAndExitFullscreen): Make this an empty,
do-nothing method.
* platform/mac/VideoFullscreenInterfaceMac.mm:
(-[WebVideoFullscreenInterfaceMacObjC pipShouldClose:]): Call requestHideAndExitPiP.
(-[WebVideoFullscreenInterfaceMacObjC pipActionStop:]): Ditto.
(WebCore::VideoFullscreenInterfaceMac::requestHideAndExitPiP): Renamed from requestHideAndExitFullscreen.
(WebCore::VideoFullscreenInterfaceMac::requestHideAndExitFullscreen): Deleted.

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

15 months agoUnreviewed, update TestExpectations for macOS WK1.
ryanhaddad@apple.com [Thu, 26 Jul 2018 17:02:30 +0000 (17:02 +0000)]
Unreviewed, update TestExpectations for macOS WK1.

* platform/mac-wk1/TestExpectations:

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