WebKit-https.git
12 months agoUnreviewed follow-up to r235635
mmaxfield@apple.com [Tue, 4 Sep 2018 21:41:54 +0000 (21:41 +0000)]
Unreviewed follow-up to r235635
https://bugs.webkit.org/show_bug.cgi?id=188940

Use "let" variables instead of "var" variables.

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

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

12 months agoDisable WebRTC unified plan runtime flag by default
youenn@apple.com [Tue, 4 Sep 2018 21:41:19 +0000 (21:41 +0000)]
Disable WebRTC unified plan runtime flag by default
https://bugs.webkit.org/show_bug.cgi?id=189264

Reviewed by Jer Noble.

Source/WebCore:

Covered by existing tests.

* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
Activate unified plan for testing.

Source/WebKit:

* Shared/WebPreferences.yaml:
Disable unified plan flag by default.

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

12 months ago[LFC][BFC] Merge computeInFlowWidth(Height)AndMargin and computeFloatingWidth(Height...
zalan@apple.com [Tue, 4 Sep 2018 21:25:50 +0000 (21:25 +0000)]
[LFC][BFC] Merge computeInFlowWidth(Height)AndMargin and computeFloatingWidth(Height)AndMargin.
https://bugs.webkit.org/show_bug.cgi?id=189271

Reviewed by Antti Koivisto.

This is in preparation for adding min/max-widht(height).

* layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeFloatingHeightAndMargin const): Deleted.
(WebCore::Layout::FormattingContext::computeFloatingWidthAndMargin const): Deleted.
* layout/FormattingContext.h:
* layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin const):
(WebCore::Layout::BlockFormattingContext::computeInFlowHeightAndMargin const): Deleted.
(WebCore::Layout::BlockFormattingContext::computeInFlowWidthAndMargin const): Deleted.
* layout/blockformatting/BlockFormattingContext.h:

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

12 months agoYARR: JIT RegExps with back references
msaboff@apple.com [Tue, 4 Sep 2018 21:18:58 +0000 (21:18 +0000)]
YARR: JIT RegExps with back references
https://bugs.webkit.org/show_bug.cgi?id=180874

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Implemented JIT'ed back references for all counted types.  The only type of back references
not handled in the JIT are 16bit matches that ignore case.  Such support would require the
canonicalization that is currently handled in the Yarr interpreter via a C funtion call.
The back reference processing for surrogate pairs is implemented by individually comparing
each surrogate ala memcmp.

Added a generated canonicalization table for the LChar (8bit) domain to process case
ignored back references.

Added macro assembler load16(ExtendedAddress) for indexed access to the canonicalization table.

Added a new JIT failure reason for forward references as the check to JIT expressions with
forward references we're handled synonimously those containing back references.

This change is only enabled for 64 bit platforms.

* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::load16):
* assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::load16):
* runtime/RegExp.cpp:
(JSC::RegExp::compile):
(JSC::RegExp::compileMatchOnly):
* yarr/YarrCanonicalize.h:
* yarr/YarrCanonicalizeUCS2.cpp:
* yarr/YarrCanonicalizeUCS2.js:
(set characters.hex.set string_appeared_here):
* yarr/YarrJIT.cpp:
(JSC::Yarr::YarrGenerator::checkNotEnoughInput):
(JSC::Yarr::YarrGenerator::readCharacterDontDecodeSurrogates):
(JSC::Yarr::YarrGenerator::matchBackreference):
(JSC::Yarr::YarrGenerator::generateBackReference):
(JSC::Yarr::YarrGenerator::backtrackBackReference):
(JSC::Yarr::YarrGenerator::generateTerm):
(JSC::Yarr::YarrGenerator::backtrackTerm):
(JSC::Yarr::YarrGenerator::compile):
(JSC::Yarr::dumpCompileFailure):
* yarr/YarrJIT.h:
* yarr/YarrPattern.h:
(JSC::Yarr::BackTrackInfoBackReference::beginIndex):
(JSC::Yarr::BackTrackInfoBackReference::matchAmountIndex):

Source/WTF:

Added ENABLE_YARR_JIT_BACKREFERENCES to enable RegExp JIT'ing of back references
for 64 bit platforms only.

* wtf/Platform.h:

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

12 months ago[WHLSL] Implement texture types
mmaxfield@apple.com [Tue, 4 Sep 2018 21:18:22 +0000 (21:18 +0000)]
[WHLSL] Implement texture types
https://bugs.webkit.org/show_bug.cgi?id=188940

Rubber-stamped by Dean Jackson.

Implement the texture types and operations. This includes Sample(), Load(), Store(), Gather(), and GetDimensions().
These functions were implemented according to section 15 of the Vulkan 1.1.83 spec, which lists each operation
and how to compute its results.

* WebGPUShadingLanguageRI/All.js:
* WebGPUShadingLanguageRI/Casts.js: Moved from Intrinsics. The texture operations need to cast too, so these are
moved into a common location.
(cast):
(bitwiseCast):
(castToUchar):
(castToUshort):
(castToUint):
(castToChar):
(castToShort):
(castToInt):
(castToHalf):
(castToFloat):
* WebGPUShadingLanguageRI/Intrinsics.js: Use Casts.js and call into TextureOperations.js.
(Intrinsics.):
(Intrinsics.checkFalse):
(Intrinsics.boxVector):
(Intrinsics.unboxVector):
(Intrinsics):
(Intrinsics.cast): Deleted.
(Intrinsics.bitwiseCast): Deleted.
(Intrinsics.castToHalf): Deleted.
* WebGPUShadingLanguageRI/SPIRV.html:
* WebGPUShadingLanguageRI/Sampler.js: Added. Represent the Sampler type.
(Sampler):
(Sampler.prototype.get rAddressMode):
(Sampler.prototype.get sAddressMode):
(Sampler.prototype.get tAddressMode):
(Sampler.prototype.get minFilter):
(Sampler.prototype.get magFilter):
(Sampler.prototype.get mipmapFilter):
(Sampler.prototype.get lodMinClamp):
(Sampler.prototype.get lodMaxClamp):
(Sampler.prototype.get maxAnisotropy):
(Sampler.prototype.get compareFunction):
(Sampler.prototype.get borderColor):
(Sampler.prototype.calculateBorderColor.computeValues):
(Sampler.prototype.calculateBorderColor):
* WebGPUShadingLanguageRI/StandardLibrary.js: Update the standard library. Some of the functions were
either missing or wrong.
(let.standardLibrary):
* WebGPUShadingLanguageRI/Test.html:
* WebGPUShadingLanguageRI/Test.js: Test many, many combinations of the texture operations.
(makeSampler):
(make1DTexture):
(make1DTextureArray):
(make2DTexture):
(make2DTextureArray):
(make3DTexture):
(makeTextureCube):
(makeRW1DTexture):
(makeRW1DTextureArray):
(makeRW2DTexture):
(makeRW2DTextureArray):
(makeRW3DTexture):
(make2DDepthTexture):
(make2DDepthTextureArray):
(makeDepthTextureCube):
(makeRW2DDepthTexture):
(makeRW2DDepthTextureArray):
(checkFloat4):
* WebGPUShadingLanguageRI/Texture.js: Added. Represents each of the texture types.
(Texture):
(Texture.prototype.get dimension):
(Texture.prototype.get width):
(Texture.prototype.get height):
(Texture.prototype.get depth):
(Texture.prototype.get levelCount):
(Texture.prototype.get layerCount):
(Texture.prototype.get innerType):
(Texture.prototype.get data):
(Texture.prototype.elementChecked):
(Texture.prototype.setElementChecked):
(Texture1D):
(Texture1D.prototype.widthAtLevel):
(Texture1D.prototype.heightAtLevel):
(Texture1D.prototype.depthAtLevel):
(Texture1D.prototype.element):
(Texture1D.prototype.setElement):
(Texture1DArray):
(Texture1DArray.prototype.widthAtLevel):
(Texture1DArray.prototype.heightAtLevel):
(Texture1DArray.prototype.depthAtLevel):
(Texture1DArray.prototype.element):
(Texture1DArray.prototype.setElement):
(Texture2D):
(Texture2D.prototype.widthAtLevel):
(Texture2D.prototype.heightAtLevel):
(Texture2D.prototype.depthAtLevel):
(Texture2D.prototype.element):
(Texture2D.prototype.setElement):
(Texture2DArray):
(Texture2DArray.prototype.widthAtLevel):
(Texture2DArray.prototype.heightAtLevel):
(Texture2DArray.prototype.depthAtLevel):
(Texture2DArray.prototype.element):
(Texture2DArray.prototype.setElement):
(Texture3D):
(Texture3D.prototype.widthAtLevel):
(Texture3D.prototype.heightAtLevel):
(Texture3D.prototype.depthAtLevel):
(Texture3D.prototype.element):
(Texture3D.prototype.setElement):
(TextureCube):
(TextureCube.prototype.widthAtLevel):
(TextureCube.prototype.heightAtLevel):
(TextureCube.prototype.depthAtLevel):
(TextureCube.prototype.element):
(TextureCube.prototype.setElement):
(Texture1DRW):
(Texture1DRW.prototype.widthAtLevel):
(Texture1DRW.prototype.heightAtLevel):
(Texture1DRW.prototype.depthAtLevel):
(Texture1DRW.prototype.element):
(Texture1DRW.prototype.setElement):
(Texture1DArrayRW):
(Texture1DArrayRW.prototype.widthAtLevel):
(Texture1DArrayRW.prototype.heightAtLevel):
(Texture1DArrayRW.prototype.depthAtLevel):
(Texture1DArrayRW.prototype.element):
(Texture1DArrayRW.prototype.setElement):
(Texture2DRW):
(Texture2DRW.prototype.widthAtLevel):
(Texture2DRW.prototype.heightAtLevel):
(Texture2DRW.prototype.depthAtLevel):
(Texture2DRW.prototype.element):
(Texture2DRW.prototype.setElement):
(Texture2DArrayRW):
(Texture2DArrayRW.prototype.widthAtLevel):
(Texture2DArrayRW.prototype.heightAtLevel):
(Texture2DArrayRW.prototype.depthAtLevel):
(Texture2DArrayRW.prototype.element):
(Texture2DArrayRW.prototype.setElement):
(let.TextureDepth2DArrayRW.Texture2DArrayRW.Texture3DRW):
(let.TextureDepth2DArrayRW.Texture2DArrayRW.Texture3DRW.prototype.widthAtLevel):
(let.TextureDepth2DArrayRW.Texture2DArrayRW.Texture3DRW.prototype.heightAtLevel):
(let.TextureDepth2DArrayRW.Texture2DArrayRW.Texture3DRW.prototype.depthAtLevel):
(let.TextureDepth2DArrayRW.Texture2DArrayRW.Texture3DRW.prototype.element):
(let.TextureDepth2DArrayRW.Texture2DArrayRW.Texture3DRW.prototype.setElement):
* WebGPUShadingLanguageRI/TextureOperations.js: Added. This implements the texture operations
as described in section 15 of the Vulkan 1.1.83 spec.
(depthCompareOperation):
(conversionToRGBA):
(projectionOperation):
(cubeMapFaceSelection):
(cubeMapCoordinateTransformation):
(cubeMapDerivativeTransformation):
(scaleFactorOperation):
(levelOfDetailOperation):
(nearest):
(imageLevelSelection):
(strqaToUVWATransformation):
(rne):
(uvwaToIJKLNTransformationAndArrayLayerSelection):
(integerTexelCoordinateOperations):
(mirror):
(transform):
(wrappingOperation):
(calculateLambda):
(shouldBeBorder):
(accessColor):
(computeTau):
(reduce):
(texelGathering):
(computeColorFromLevel):
(texelFiltering):
(castToInnerTypeForGather):
(gatherTexture):
(castToInnerType):
(sampleTexture):
* WebGPUShadingLanguageRI/index.html:

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

12 months agoRemoving an accidentally committed debugging print.
ap@apple.com [Tue, 4 Sep 2018 21:15:43 +0000 (21:15 +0000)]
Removing an accidentally committed debugging print.

* Scripts/run-leaks: (runLeaks)

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

12 months agorun-leaks should run leaks with --list (on Mojave)
ap@apple.com [Tue, 4 Sep 2018 21:06:31 +0000 (21:06 +0000)]
run-leaks should run leaks with --list (on Mojave)
https://bugs.webkit.org/show_bug.cgi?id=187716
<rdar://problem/42261676>

Reviewed by Lucas Forschler.

Also enabled dumping memgraphs. We'll be pruning these aggressively, as they take
significant space.

* Scripts/run-leaks:
(main): Added an option to store memgraphs.
(runLeaks): As there is no way to test whether the new format is supported in advance,
we have to try with --list first, and retry if that fails. Also, made leaks operate
on a memgraph file if we are saving it anyway.

* Scripts/webkitpy/port/leakdetector.py:
(LeakDetector._leaks_args): Pass --memgraph-file to run-leaks.
(LeakDetector.leaks_file_name): Removed an incorrect comment.
(LeakDetector.memgraph_file_name): Added.
(LeakDetector.check_for_leaks): Changed how arguments are passed to _leaks_args.
It is a bit ugly that leaks path ends up being computed twice, but this is the least
ugly approach that I could find.

* Scripts/webkitpy/port/leakdetector_unittest.py: Updated for _leaks_args changes.

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

12 months agoAdd process pool configuration flag to turn on automatic process pre-warming
cdumez@apple.com [Tue, 4 Sep 2018 20:47:23 +0000 (20:47 +0000)]
Add process pool configuration flag to turn on automatic process pre-warming
https://bugs.webkit.org/show_bug.cgi?id=189263
<rdar://problem/44101941>

Reviewed by Antti Koivisto.

Source/WebKit:

Add process pool configuration flag to turn on automatic process pre-warming and disassociate
it from the warmInitialProcess() SPI.

For now, turning on "process swap on navigation" via experimental features also turns on
automatic process pre-warming.

* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/C/WKContext.cpp:
(WKContextSetPrewarmsProcessesAutomatically):
(WKContextWarmInitialProcess):
* UIProcess/API/C/WKContextPrivate.h:
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _warmInitialProcess]):
(-[WKProcessPool _hasPrewarmedWebProcess]):
(-[WKProcessPool _webProcessCountIgnoringPrewarmed]):
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration setPrewarmsProcessesAutomatically:]):
(-[_WKProcessPoolConfiguration prewarmsProcessesAutomatically]):
* UIProcess/ServiceWorkerProcessProxy.cpp:
(WebKit::ServiceWorkerProcessProxy::ServiceWorkerProcessProxy):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setMaximumNumberOfProcesses):
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::tryTakePrewarmedProcess):
(WebKit::WebProcessPool::prewarmProcess):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::didReachGoodTimeToPrewarm):
* UIProcess/WebProcessPool.h:
(WebKit::WebProcessPool::sendToOneProcess):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::create):
(WebKit::WebProcessProxy::WebProcessProxy):
(WebKit::m_isInPrewarmedPool):
* UIProcess/WebProcessProxy.h:

Tools:

Add API test coverage.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/ProcessPreWarming.mm: Renamed from Tools/TestWebKitAPI/Tests/WebKitCocoa/InitialWarmedProcessUsed.mm.
(TEST):
* TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
* TestWebKitAPI/Tests/WebKitCocoa/SetMaximumPrewarmedProcessCount.mm: Removed.

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

12 months agoAdjust XMLHttpRequest username/password precedence rules
commit-queue@webkit.org [Tue, 4 Sep 2018 20:37:29 +0000 (20:37 +0000)]
Adjust XMLHttpRequest username/password precedence rules
https://bugs.webkit.org/show_bug.cgi?id=184910

Patch by Rob Buis <rbuis@igalia.com> on 2018-09-04
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Update test result.

* web-platform-tests/xhr/send-authentication-competing-names-passwords-expected.txt:

Source/WebCore:

Steps 9.1 and 9.2 in the XMLHTTPRequest::open [1] algorithm
specify that non null user or non null password ought
to be set on the URL, so implement this.

Behavior matches Firefox and Chrome.

[1] https://xhr.spec.whatwg.org/#dom-xmlhttprequest-open

Test: xhr/send-authentication-competing-names-passwords.htm

* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::open):

LayoutTests:

Adjust test because now we do set password on the url in
open(), even if the username is null.

* http/tests/xmlhttprequest/basic-auth.html:

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

12 months agoSimplify RenderLayer filter code
simon.fraser@apple.com [Tue, 4 Sep 2018 20:27:09 +0000 (20:27 +0000)]
Simplify RenderLayer filter code
https://bugs.webkit.org/show_bug.cgi?id=189248

Reviewed by Dean Jackson.

Painting filters in RenderLayer involved the confusingly named RenderLayer::FilterInfo,
and FilterEffectRenderer/FilterEffectRendererHelper. Reduce confusion by just collapsing
these together into RenderLayerFilters. RenderLayerFilters stores a reference to the
CSSFilter, and knows how to set it up, and vend a GraphicsContext* for painting the content
to be filtered.

It's also simpler to just give RenderLayer a member variable for RenderLayerFilters, rather
than using a side hash (we can recoup the space in other ways layer).

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSFilterImageValue.cpp:
* rendering/CSSFilter.h:
* rendering/FilterEffectRenderer.cpp: Removed.
* rendering/FilterEffectRenderer.h: Removed.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::~RenderLayer):
(WebCore::RenderLayer::paintsWithFilters const):
(WebCore::RenderLayer::requiresFullLayerImageForFilters const):
(WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
(WebCore::RenderLayer::filtersForPainting const):
(WebCore::RenderLayer::setupFilters):
(WebCore::RenderLayer::applyFilters):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::calculateClipRects const):
(WebCore::RenderLayer::filter const): Deleted.
(WebCore::RenderLayer::filterPainter const): Deleted.
(WebCore::RenderLayer::hasFilterThatIsPainting const): Deleted.
* rendering/RenderLayer.h:
* rendering/RenderLayerFilterInfo.cpp: Removed.
* rendering/RenderLayerFilters.cpp: Added.
(WebCore::RenderLayerFilters::RenderLayerFilters):
(WebCore::RenderLayerFilters::~RenderLayerFilters):
(WebCore::RenderLayerFilters::setFilter):
(WebCore::RenderLayerFilters::hasFilterThatMovesPixels const):
(WebCore::RenderLayerFilters::hasFilterThatShouldBeRestrictedBySecurityOrigin const):
(WebCore::RenderLayerFilters::notifyFinished):
(WebCore::RenderLayerFilters::updateReferenceFilterClients):
(WebCore::RenderLayerFilters::removeReferenceFilterClients):
(WebCore::RenderLayerFilters::buildFilter):
(WebCore::RenderLayerFilters::beginFilterEffect):
(WebCore::RenderLayerFilters::applyFilterEffect):
* rendering/RenderLayerFilters.h: Renamed from Source/WebCore/rendering/RenderLayerFilterInfo.h.

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

12 months agoBuild fix.
dino@apple.com [Tue, 4 Sep 2018 20:26:27 +0000 (20:26 +0000)]
Build fix.

* testing/Internals.cpp:

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

12 months agoPerl doesn't like calling keys on a reference
keith_miller@apple.com [Tue, 4 Sep 2018 20:16:55 +0000 (20:16 +0000)]
Perl doesn't like calling keys on a reference
https://bugs.webkit.org/show_bug.cgi?id=189261

Reviewed by Michael Saboff.

* Scripts/test262/Runner.pm:
(UpdateResults):

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

12 months agoMake the jsc shell print, printErr, and debug functions more robust.
mark.lam@apple.com [Tue, 4 Sep 2018 19:48:39 +0000 (19:48 +0000)]
Make the jsc shell print, printErr, and debug functions more robust.
https://bugs.webkit.org/show_bug.cgi?id=189268
<rdar://problem/41192690>

Reviewed by Keith Miller.

We'll now check for UTF8 conversion errors.

* jsc.cpp:
(cStringFromViewWithString):
(printInternal):
(functionDebug):

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

12 months agoMove SystemPreview code from WebKitAdditions to WebKit
dino@apple.com [Tue, 4 Sep 2018 19:38:33 +0000 (19:38 +0000)]
Move SystemPreview code from WebKitAdditions to WebKit
https://bugs.webkit.org/show_bug.cgi?id=189252
<rdar://problem/44080245>

Reviewed by Wenson Hsieh.

Source/WebCore:

Move the WebKitAdditions code into WebKit/WebCore.

* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::relList const): Look for "ar".
(WebCore::HTMLAnchorElement::isSystemPreviewLink const): Ditto.

* platform/MIMETypeRegistry.cpp: Add a couple of new static methods
for System Preview MIME types.
(WebCore::initializeSystemPreviewMIMETypes):
(WebCore::MIMETypeRegistry::getSystemPreviewMIMETypes):
(WebCore::MIMETypeRegistry::isSystemPreviewMIMEType):
* platform/MIMETypeRegistry.h:

* rendering/RenderThemeIOS.mm: Load the ARKit artwork from the framework.
(WebCore::arKitBundle):
(WebCore::loadARKitPDFPage):
(WebCore::systemPreviewLogo):
(WebCore::RenderThemeIOS::paintSystemPreviewBadge):

* testing/Internals.cpp: Remove internal helper.
(WebCore::Internals::systemPreviewRelType): Deleted.
* testing/Internals.h:
* testing/Internals.idl:

Source/WebKit:

Move the WebKitAdditions code into WebKit/WebCore.

* UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
(getUTIForMIMEType): Helper to get the system UTI for USDZ files.
(-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]):

* UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: Use the new methods
in MIMETypeRegistry.
(-[WKWebViewContentProviderRegistry initWithConfiguration:]):

* UIProcess/SystemPreviewController.cpp: Ditto.
(WebKit::SystemPreviewController::canPreview const):

* UIProcess/ios/WKSystemPreviewView.mm:
(getUTIForMIMEType): Similar helper to above.
(-[WKSystemPreviewView web_setContentProviderData:suggestedFilename:]):

LayoutTests:

This test no longer needs an internal helper.

* system-preview/detection.html:

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

12 months ago[Payment Request] PaymentResponse should have an onpayerdetailchange event handler
aestes@apple.com [Tue, 4 Sep 2018 19:14:23 +0000 (19:14 +0000)]
[Payment Request] PaymentResponse should have an onpayerdetailchange event handler
https://bugs.webkit.org/show_bug.cgi?id=189249

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

* web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute.https-expected.txt:

Source/WebCore:

Implemented the onpayerdetailchange event handler as defined in the Payment Request API W3C Editor's Draft of 30 August 2018.

The "payer detail changed" algorithm will be implemented in a follow-up patch.

Covered by existing web platform tests.

* Modules/paymentrequest/PaymentResponse.cpp:
(WebCore::PaymentResponse::scriptExecutionContext const):
* Modules/paymentrequest/PaymentResponse.h:
* Modules/paymentrequest/PaymentResponse.idl:
* dom/EventNames.h:
* dom/EventTargetFactory.in:

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

12 months agoSkip Test on 32-bit platforms.
david_fenton@apple.com [Tue, 4 Sep 2018 18:53:47 +0000 (18:53 +0000)]
Skip Test on 32-bit platforms.
https://bugs.webkit.org/show_bug.cgi?id=189185.

Unreviewed test gardening.

* stress/regress-189185.js:

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

12 months agoIntroduce LibWebRTC backends for sender and receiver
youenn@apple.com [Tue, 4 Sep 2018 18:48:38 +0000 (18:48 +0000)]
Introduce LibWebRTC backends for sender and receiver
https://bugs.webkit.org/show_bug.cgi?id=189171

Reviewed by Alejandro G. Castro.

Rename RTCRtpSender::Backend to RTCRtpSenderBackend, ditto for RTCRtpReceiver::Backend.
Make RTCRtpSender/RTCRtpReceiver own their backend.
This will allow the backends to own a libwebrtc sender/receiver ref counted object
and might allow us to cleanly separate code from unified plan vs plan B.

Update code so that libwebrtc code specific code is now creating senders and receivers.
This moves code from RTCPeerConnection down to LibWebRTCPeerConnectionBackend, in particular for
addTrack and addTransceiver methods.

Moved some code from LibWebRTCMediaEndpoint to LibWebRTCUtils to ease readability.

A future patch will allow to tie the libwebrtc sender/receiver to WebKit DOM sender/receiver.

Covered by existing tests.

* Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::PeerConnectionBackend::addTrack):
(WebCore::PeerConnectionBackend::addTransceiver):
* Modules/mediastream/PeerConnectionBackend.h:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::addTrack):
(WebCore::RTCPeerConnection::addTransceiver):
(WebCore::RTCPeerConnection::enqueueReplaceTrackTask):
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/RTCRtpReceiver.cpp:
(WebCore::RTCRtpReceiver::RTCRtpReceiver):
* Modules/mediastream/RTCRtpReceiver.h:
(WebCore::RTCRtpReceiver::create):
(WebCore::RTCRtpReceiver::setBackend):
* Modules/mediastream/RTCRtpReceiverBackend.h: Added.
(WebCore::RTCRtpReceiverBackend::getParameters):
* Modules/mediastream/RTCRtpSender.cpp:
(WebCore::RTCRtpSender::create):
(WebCore::RTCRtpSender::RTCRtpSender):
* Modules/mediastream/RTCRtpSender.h:
* Modules/mediastream/RTCRtpSenderBackend.h: Added.
* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::addRemoteTrack):
* Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::LibWebRTCPeerConnectionBackend::videoReceiver):
(WebCore::LibWebRTCPeerConnectionBackend::audioReceiver):
(WebCore::LibWebRTCPeerConnectionBackend::addTrack):
(WebCore::LibWebRTCPeerConnectionBackend::addTransceiver):
(WebCore::LibWebRTCPeerConnectionBackend::completeAddTransceiver):
* Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
* Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp: Added.
(WebCore::LibWebRTCRtpReceiverBackend::getParameters):
* Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h: Added.
* Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp: Added.
(WebCore::LibWebRTCRtpSenderBackend::replaceTrack):
(WebCore::LibWebRTCRtpSenderBackend::getParameters const):
* Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h: Added.
* Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp: Added.
(WebCore::fillEncodingParameters):
(WebCore::fillHeaderExtensionParameters):
(WebCore::fillCodecParameters):
(WebCore::fillRtpParameters):
* Modules/mediastream/libwebrtc/LibWebRTCUtils.h: Added.
(WebCore::fromStdString):
* WebCore.xcodeproj/project.pbxproj:

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

12 months ago[Modern Media Controls] Disabling both fullscreen and picture-in-picture shows an...
graouts@webkit.org [Tue, 4 Sep 2018 18:40:12 +0000 (18:40 +0000)]
[Modern Media Controls] Disabling both fullscreen and picture-in-picture shows an empty top left container
https://bugs.webkit.org/show_bug.cgi?id=189259
<rdar://problem/42026625>

Reviewed by Dean Jackson.

Source/WebCore:

Test: media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-disabled-fullscreen-and-pip.html

Ensure the top left controls bar is hidden when none of its children are visible.

* Modules/modern-media-controls/controls/inline-media-controls.js:
(InlineMediaControls.prototype.layout):

LayoutTests:

Adding a new test that checks that the top left container is hidden when both the fullscreen and picture-in-picture buttons are disabled.

* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-disabled-fullscreen-and-pip-expected.txt: Added.
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-disabled-fullscreen-and-pip.html: Added.

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

12 months agoAttempt to fix failing tests following r235615 (https://bugs.webkit.org/show_bug...
dbates@webkit.org [Tue, 4 Sep 2018 18:20:04 +0000 (18:20 +0000)]
Attempt to fix failing tests following r235615 (https://bugs.webkit.org/show_bug.cgi?id=187925)

An inline text box that does not have combined text and contains a single character
should be considered as having text content.

* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::hasTextContent const):

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

12 months agoUnreviewed, attempt to fix an internal build after r235585.
ryanhaddad@apple.com [Tue, 4 Sep 2018 18:10:52 +0000 (18:10 +0000)]
Unreviewed, attempt to fix an internal build after r235585.

* pal/spi/cf/CFNetworkSPI.h:

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

12 months agoAdd test for fix in https://bugs.webkit.org/show_bug.cgi?id=187922
pvollan@apple.com [Tue, 4 Sep 2018 18:03:10 +0000 (18:03 +0000)]
Add test for fix in https://bugs.webkit.org/show_bug.cgi?id=187922
https://bugs.webkit.org/show_bug.cgi?id=187925

Reviewed by Simon Fraser.

This will test that the function primaryScreenDisplayID() returns a valid display ID.

Source/WebCore:

Test: fast/misc/valid-primary-screen-displayID.html

* platform/PlatformScreen.h:
* platform/mac/PlatformScreenMac.mm:
(WebCore::primaryScreenDisplayID):
* testing/Internals.cpp:
(WebCore::Internals::primaryScreenDisplayID):
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

* TestExpectations:
* fast/misc/valid-primary-screen-displayID-expected.txt: Added.
* fast/misc/valid-primary-screen-displayID.html: Added.
* platform/mac-wk2/TestExpectations:

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

12 months agoBug 189190 - REGRESSION(r235398) ASSERTION failure !m_client.didFinishDocumentLoadFor...
commit-queue@webkit.org [Tue, 4 Sep 2018 17:28:28 +0000 (17:28 +0000)]
Bug 189190 - REGRESSION(r235398) ASSERTION failure !m_client.didFinishDocumentLoadForFrame
https://bugs.webkit.org/show_bug.cgi?id=189190

Patch by Frederic Wang <fwang@igalia.com> on 2018-09-04
Reviewed by Alex Christensen.

Assertions to prevent use of the deprecated WKPageSetPageLoaderClient class are hit when
running system Safari with the current macOS/iOS releases, making impossible to launch it.
This patch conditionally skips these assertions so that they are only verified for
macOS > 10.14 or other platforms.

* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageLoaderClient): Only assert on future OS releases.

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

12 months agoAdd helper function to create a potential CORS request
dbates@webkit.org [Tue, 4 Sep 2018 17:11:03 +0000 (17:11 +0000)]
Add helper function to create a potential CORS request
https://bugs.webkit.org/show_bug.cgi?id=189251

Reviewed by Andy Estes.

Add a new function, createPotentialAccessControlRequest, that we will use to implement the algorithm Create a potential-
CORS request from the HTML standard: <https://html.spec.whatwg.org/multipage/urls-and-fetching.html#create-a-potential-cors-request> (31 August 2018).
This function replaces CachedResourceRequest::setAsPotentiallyCrossOrigin() and is the first step towards separating
the concepts of CORS settings states and module script credentials mode as well as implementing the aforementioned
algorithm. Rename CachedResourceRequest::setAsPotentiallyCrossOrigin() to deprecatedSetAsPotentiallyCrossOrigin()
and switch existing callers to use createPotentialAccessControlRequest(). For now, createPotentialAccessControlRequest()
is implemented in terms of deprecatedSetAsPotentiallyCrossOrigin().

No functionality changed. So, no new tests.

* bindings/js/CachedScriptFetcher.cpp:
(WebCore::CachedScriptFetcher::requestScriptWithCache const): Write in terms of WebCore::createPotentialAccessControlRequest().
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process): Ditto.
* html/parser/HTMLResourcePreloader.cpp:
(WebCore::PreloadRequest::resourceRequest): Ditto.
* loader/CrossOriginAccessControl.cpp:
(WebCore::createPotentialAccessControlRequest): For now, implemented in terms of CachedResourceRequest::deprecatedSetAsPotentiallyCrossOrigin().
* loader/CrossOriginAccessControl.h:
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement): Write in terms of WebCore::createPotentialAccessControlRequest().
* loader/LinkLoader.cpp:
(WebCore::LinkLoader::preloadIfNeeded): Ditto.
* loader/MediaResourceLoader.cpp:
(WebCore::MediaResourceLoader::requestResource): Ditto. Also renamed local variable cacheRequest to cachedRequest.
* loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::load): Write in terms of WebCore::createPotentialAccessControlRequest(). Also change local variable
document from a pointer to a reference since this function asserts that the script execution context is a non-null Document.
* loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::deprecatedSetAsPotentiallyCrossOrigin): Renamed; formerly named setAsPotentiallyCrossOrigin.
(WebCore::CachedResourceRequest::setAsPotentiallyCrossOrigin): Deleted.
* loader/cache/CachedResourceRequest.h:
(WebCore::CachedResourceRequest::setPriority): Added.

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

12 months agoClean up WebGL policy getting code path
commit-queue@webkit.org [Tue, 4 Sep 2018 17:06:52 +0000 (17:06 +0000)]
Clean up WebGL policy getting code path
https://bugs.webkit.org/show_bug.cgi?id=189003

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

* UIProcess/API/APINavigationClient.h:
(API::NavigationClient::webGLLoadPolicy const):
(API::NavigationClient::resolveWebGLLoadPolicy const):
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::webGLLoadPolicy const):
(WebKit::NavigationState::NavigationClient::resolveWebGLLoadPolicy const):
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::webGLPolicyForURL): Deleted.
(WebKit::WebPage::resolveWebGLPolicyForURL): Deleted.

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

12 months agoRemove redundant inline text boxes for empty combined text
dbates@webkit.org [Tue, 4 Sep 2018 17:02:33 +0000 (17:02 +0000)]
Remove redundant inline text boxes for empty combined text
https://bugs.webkit.org/show_bug.cgi?id=189119

Reviewed by Zalan Bujtas.

Source/WebCore:

We should consider inline text boxes that have a combined text renderer (RenderCombineText)
whose composed string is empty as "redundant" just as we do for inline text boxes that have
a non-combined text renderer that have zero length so that we remove them. Such boxes are
visibly empty and do not take up space visually. By removing them we reduce memory and make
it easier to reason about the line box tree.

Currently RenderBlockFlow::computeBlockDirectionPositionsForLine() tests if an inline text
box is empty by checking if it has a zero length (InlineTextBox::len()). However an inline
text box associated with a RenderCombineText always has length 1 regardless of whether the
composed string it represents is the empty string. Instead we should expose a way to check
if an inline text box is visually empty and have RenderBlockFlow::computeBlockDirectionPositionsForLine()
query the inline text box for this answer.

* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::hasTextContent const): Added. Returns whether an inline text box
has text content. We do not need to consider hypenation since hypens are an embellishment (i.e.
they are not part of the markup of the page).
(WebCore::InlineTextBox::paint): Write in terms of hasTextContent().
(WebCore::InlineTextBox::subdivideAndResolveStyle): Assert that WebCore::subdivide() always
returns a non-empty list of subdivisions. A non-empty text box should always have at least
one subdivision, say for the unmarked text. I left the existing conditonal (though marked
it as UNLIKELY()) so as to be forgiving and avoid a bad user experience should WebCore::subdivide()
return an empty vector in a non-debug build.
* rendering/InlineTextBox.h:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::computeBlockDirectionPositionsForLine): Write in terms of InlineTextBox::hasTextContent()
so that we remove empty inline text boxes associated with combined text.
* rendering/RenderText.cpp:
(WebCore::RenderText::positionLineBox): Write in terms of InlineTextBox::hasTextContent().

LayoutTests:

Update expected result now that we do not create an inline text box associated with combined text
when we do not have any combined text to render.

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

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

12 months agoREGRESSION (r234081): TestWebKitAPI.VideoControlsManager.VideoControlsManagerAudioEle...
jer.noble@apple.com [Tue, 4 Sep 2018 17:01:55 +0000 (17:01 +0000)]
REGRESSION (r234081): TestWebKitAPI.VideoControlsManager.VideoControlsManagerAudioElementFollowingUserInteraction is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=187972
<rdar://problem/42667737>

Reviewed by Darin Adler.

Ensure that listeners are added in time to catch messages broadcast at them.

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

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

12 months agoUpdate googletest
ross.kirsling@sony.com [Tue, 4 Sep 2018 16:55:46 +0000 (16:55 +0000)]
Update googletest
https://bugs.webkit.org/show_bug.cgi?id=175722

Reviewed by Brent Fulgham.

Source/ThirdParty:

* gtest/:
Update to 1.8.1.

* gtest/CMakeLists.txt:
* gtest/xcode/:
Keep our versions of these build files, making any necessary additive updates
and removing WTF/JSC dependencies so that we stop forking third-party source.

Tools:

* TestWebKitAPI/config.h:
Instead of modifying the gtest source, add the necessary WTF includes here.

* TestWebKitAPI/Configurations/Base.xcconfig
Remove obsoleted definitions GTEST_HAS_TR1_TUPLE=0 and GTEST_HAS_RTTI=0.

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

12 months ago[WPE][GTK] Add more unused result warnings to JSC API
mcatanzaro@igalia.com [Tue, 4 Sep 2018 14:48:55 +0000 (14:48 +0000)]
[WPE][GTK] Add more unused result warnings to JSC API
https://bugs.webkit.org/show_bug.cgi?id=189243

Reviewed by Carlos Garcia Campos.

The jsc_context_evaluate() family of functions has a (transfer full) return value, but the
caller may be tempted to not inspect it if uninterested in the return value. This would be
an error, because it must be freed.

* API/glib/JSCContext.h:

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

12 months agoImplement support for passing ImageBitmap to texImage2D/texSubImage2D
Ms2ger@igalia.com [Tue, 4 Sep 2018 12:10:34 +0000 (12:10 +0000)]
Implement support for passing ImageBitmap to texImage2D/texSubImage2D
https://bugs.webkit.org/show_bug.cgi?id=187584

Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/canvas/webgl/gl-teximage-imagebitmap.html

* html/canvas/WebGL2RenderingContext.h: Update union type definition.
* html/canvas/WebGL2RenderingContext.idl: Update union type definition.
* html/canvas/WebGLRenderingContext.idl: Update union type definition.
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::texSubImage2D): implement.
(WebCore::WebGLRenderingContextBase::texImage2D): implement.
* html/canvas/WebGLRenderingContextBase.h: Update union type definition; add to TexFuncValidationSourceType.
* html/canvas/WebGLRenderingContextBase.idl: Remove unused union type definition.

LayoutTests:

* fast/canvas/webgl/gl-teximage-imagebitmap-expected.txt: Added.
* fast/canvas/webgl/gl-teximage-imagebitmap.html: Added.

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

12 months ago[EME] Add the WebM initData support in ClearKey CDM
commit-queue@webkit.org [Tue, 4 Sep 2018 10:27:27 +0000 (10:27 +0000)]
[EME] Add the WebM initData support in ClearKey CDM
https://bugs.webkit.org/show_bug.cgi?id=189240

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-09-04
Reviewed by Xabier Rodriguez-Calvar.

Add the "webm" initDataType support in ClearKey CDM.
Read the WebM initData by following the W3C spec https://www.w3.org/TR/eme-initdata-webm/#common-system,
and put it in JSON object format like is specified in https://www.w3.org/TR/encrypted-media/#clear-key-request-format.

Tests: media/encrypted-media/clearKey/clearKey-encrypted-webm-event-mse.html
       media/encrypted-media/clearKey/clearKey-webm-video-playback-mse.html

* platform/encryptedmedia/clearkey/CDMClearKey.cpp:
(WebCore::extractKeyIdFromWebMInitData):
(WebCore::CDMPrivateClearKey::supportsInitDataType const):
(WebCore::CDMPrivateClearKey::supportsInitData const):
(WebCore::CDMInstanceClearKey::requestLicense):

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

12 months ago[EME] Add layout test for InitData and InitDataType in WebM encrypted event
commit-queue@webkit.org [Tue, 4 Sep 2018 10:27:20 +0000 (10:27 +0000)]
[EME] Add layout test for InitData and InitDataType in WebM encrypted event
https://bugs.webkit.org/show_bug.cgi?id=189196

Patch by Yacine Bandou <yacine.bandou@softathome.com> on 2018-09-04
Reviewed by Xabier Rodriguez-Calvar.

This commit adds a new layoutTest in order to test the reception of the encrypted WebM
event with an expected initData and initDataType fields.

* media/content/encrypted/VideoClearKeyWebM.webm: Added.
    This is a simple encrypted video.
    It has been encrypted with webm_crypt see https://github.com/webmproject/webm-tools.
    #webm_crypt  -i VideoWebM.webm -audio false -video true -video_options base_file=bear.key,content_id="0123456789012345" -o VideoClearKeyWebM.webm
* media/encrypted-media/clearKey/clearKey-encrypted-webm-event-mse-expected.txt: Added.
* media/encrypted-media/clearKey/clearKey-encrypted-webm-event-mse.html: Added.
* media/encrypted-media/medias-enc.js:
* platform/gtk/TestExpectations:
* platform/mac/TestExpectations:
* platform/wpe/TestExpectations:

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

12 months agoREGRESSION(r235165): [GStreamer] Major video performance regression
zandobersek@gmail.com [Tue, 4 Sep 2018 08:38:28 +0000 (08:38 +0000)]
REGRESSION(r235165): [GStreamer] Major video performance regression
https://bugs.webkit.org/show_bug.cgi?id=189224

Reviewed by Michael Catanzaro.

* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::updateSceneState): Drop the early
return used when the scene state wasn't updated through a layer flush,
and instead always run through layer changes and backings. This way we
won't miss proxy objects that need swapping even if none of the layer
states were changed. Reducing the amount of work done here when scene
hasn't been updated might be possible, but it's not a huge bottleneck.

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

12 months ago[Payment Request] Remove PaymentAddress.languageCode
aestes@apple.com [Tue, 4 Sep 2018 04:25:11 +0000 (04:25 +0000)]
[Payment Request] Remove PaymentAddress.languageCode
https://bugs.webkit.org/show_bug.cgi?id=189254

Reviewed by Sam Weinig.

Source/WebCore:

PaymentAddress.languageCode is marked as "at risk" in the latest Payment Request Editor's
Draft (30 August 2018). Firefox has already removed it, and Chrome is considering it.

There is some compatibility risk in removing this attribute, but considering we never
populated it with a meaningful value, the risk seems very low. If we learn about
compatibility problems, we can address them by evangelising or even reverting this change.

Updated existing tests.

* Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::convert):
* Modules/paymentrequest/PaymentAddress.cpp:
(WebCore::PaymentAddress::PaymentAddress):
* Modules/paymentrequest/PaymentAddress.h:
* Modules/paymentrequest/PaymentAddress.idl:

LayoutTests:

* http/tests/paymentrequest/payment-address-attributes-and-toJSON-method.https.html:
* http/tests/ssl/applepay/ApplePayRequestShippingContact.https-expected.txt:
* http/tests/ssl/applepay/ApplePayRequestShippingContact.https.html:

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

12 months ago[Payment Request] Add a stub for PaymentResponse.retry
aestes@apple.com [Tue, 4 Sep 2018 03:36:22 +0000 (03:36 +0000)]
[Payment Request] Add a stub for PaymentResponse.retry
https://bugs.webkit.org/show_bug.cgi?id=189253

Reviewed by Sam Weinig.

Implemented the AddressErrors, PayerErrorFields, and PaymentValidationErrors dictionaries as
defined in the Payment Request API W3C Editor's Draft of 30 August 2018.

Also added a stub implementation of PaymentResponse.retry. This method will be implemented
with tests in a follow-up patch.

* CMakeLists.txt:
* DerivedSources.make:
* Modules/paymentrequest/AddressErrors.h: Added.
* Modules/paymentrequest/AddressErrors.idl: Added.
* Modules/paymentrequest/PayerErrorFields.h: Added.
* Modules/paymentrequest/PayerErrorFields.idl: Added.
* Modules/paymentrequest/PaymentResponse.cpp:
(WebCore::PaymentResponse::retry):
* Modules/paymentrequest/PaymentResponse.h:
* Modules/paymentrequest/PaymentResponse.idl:
* Modules/paymentrequest/PaymentValidationErrors.h: Added.
* Modules/paymentrequest/PaymentValidationErrors.idl: Added.
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:

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

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

Reviewed by Saam Barati.

JSTests:

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

Source/JavaScriptCore:

Consider the following scenario:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Reviewed by Daniel Bates.

* Modules/paymentrequest/MerchantValidationEvent.idl:

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

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

Reviewed by Saam Barati.

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

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

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

Reviewed by Alexey Proskuryakov.

Source/WebCore:

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

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

LayoutTests:

* platform/mac-wk2/TestExpectations:

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

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

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

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

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

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

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

Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

Updated payment-request web platform tests to 0313d9f.

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

Source/WebCore:

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

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

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

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

LayoutTests:

Skipped new manual tests.

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

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

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

LayoutTests/imported/w3c:

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

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

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

LayoutTests:

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

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

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

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

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

Reviewed by Xabier Rodriguez-Calvar.

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

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

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

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

Reviewed by Brent Fulgham.

Source/WebCore:

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

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

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

LayoutTests:

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

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

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

Reviewed by Darin Adler.

JSTests:

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

Source/JavaScriptCore:

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

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

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

LayoutTests:

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

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

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

Reviewed by Darin Adler.

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

* wpe/manifest.txt.in:

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

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

Reviewed by Darin Adler.

Source/WebCore/PAL:

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

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

Tools:

Add API tests for the PAL::CryptoDigest class.

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

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

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

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

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

Reviewed by Sam Weinig.

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

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

Future cleanup will deal with FilterEffectRendererHelper.

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

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

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

Reviewed by Dan Bernstein.

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

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

Source/WebCore/PAL:

Reviewed by Dan Bernstein.

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

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

Source/WebKit:

Reviewed by Dan Bernstein.

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

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

Source/WebKitLegacy/mac:

Reviewed by Dan Bernstein.

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

* Misc/WebDownloadInternal.h: Removed.

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

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

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

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

Reviewed by Sam Weinig.

Source/WebKit:

Test: TestWebKitAPI/Tests/WebKitCocoa/WKWebViewServerTrustKVC.mm

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

Tools:

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

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

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

Reviewed by Anders Carlsson.

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

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

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

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

Reviewed by Darin Adler.

JSTests:

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

Source/JavaScriptCore:

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

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

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

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

Rubber-stamped by Anders Carlsson.

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

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

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

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

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

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

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

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

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

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

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

Reviewed by Alejandro G. Castro.

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

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

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

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

Reviewed by Youenn Fablet.

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

* platform/mediastream/RealtimeOutgoingVideoSource.cpp:

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

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

Reviewed by Tim Horton.

Source/WebCore:

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

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

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

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

Make readString with "public.url" call readURL.

(WebCore::PlatformPasteboard::readURL const):

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

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

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

Mark these functions as `const`.

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

Mark this function as const.

Tools:

See WebCore/ChangeLog for more detail.

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

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

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

Reviewed by Youenn Fablet.

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

* platform/network/FormData.cpp:

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

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

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

Reverted changeset:

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

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

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

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

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

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

Reviewed by Youenn Fablet.

Source/WebCore:

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

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

LayoutTests:

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

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

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

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

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

Reviewed by Alex Christensen.

Source/WebCore:

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

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

Source/WebKit:

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

LayoutTests:

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

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

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

Reviewed by Chris Dumez.

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

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

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

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

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

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

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

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

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

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

Reviewed by Dean Jackson and Thomas Denney.

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

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

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

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

Reviewed by Jon Lee.

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

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

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

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

Reviewed by Jer Noble.

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

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

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

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

Reviewed by Youenn Fablet.

Source/WebCore:

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

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

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

Source/WebKit:

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

Source/WebKitLegacy/mac:

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

Source/WebKitLegacy/win:

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

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

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

Reviewed by Antti Koivisto.

Source/WebCore:

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

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

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

Tools:

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

LayoutTests:

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

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

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

Reviewed by Anders Carlsson.

Source/WebCore:

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

Source/WebKit:

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

Source/WebKitLegacy/mac:

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

Source/WTF:

Improve code readability.

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

Tools:

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

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

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

Reviewed by Alex Christensen.

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

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

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

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

Reviewed by Michael Saboff.

JSTests:

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

Source/JavaScriptCore:

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

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

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

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

Not reviewed.

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

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

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

Reviewed by Wenson Hsieh.

Source/WebCore:

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

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

Source/WebKit:

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

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

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

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

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

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

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

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

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

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

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

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

Reviewed by Michael Saboff.

JSTests:

* stress/regress-189186.js: Added.

Source/JavaScriptCore:

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

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

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

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

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

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

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

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

Reviewed by Alejandro G. Castro.

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

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

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

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

Reviewed by Alejandro G. Castro.

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

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

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

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

Unreviewed test gardening.

* platform/win/TestExpectations:

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

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

Reviewed by Youenn Fablet.

No new tests, no change in functionality.

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

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

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

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

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

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

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

Reviewed by Yusuke Suzuki.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Reviewed by Yusuke Suzuki.

JSTests:

* stress/regress-189184.js: Added.

Source/JavaScriptCore:

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

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

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

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

Source/WebCore:

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

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

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

Source/WebKit:

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

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

Source/WebKitLegacy/mac:

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

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

Source/WebKitLegacy/win:

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

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

Tools:

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

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

LayoutTests:

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

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

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

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

Reviewed by Michael Saboff.

JSTests:

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

Source/JavaScriptCore:

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

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

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

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

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

Reviewed by Ryosuke Niwa.

Source/WebCore:

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

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

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

LayoutTests:

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

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

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

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

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

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

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

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

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

Source/WebCore:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Reviewed by Alex Christensen.

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

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

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

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

Reviewed by Per Arne Vollan.

.:

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

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

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

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

Source/WebCore:

No new tests. No change in behavior.

Remove refernces to PAL derived sources.

* PlatformWin.cmake:
* config.h:

Source/WebCore/PAL:

Remove AVFoundationSupport.py file and its invocation.

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

Source/WebKitLegacy/win:

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

* WebKitPrefix.h:

Source/WTF:

Rely on CMake values for the added HAVE_* checks.

* wtf/Platform.h:

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

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

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

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