WebKit-https.git
11 months agoRegistered custom properties should allow inheritance to be controlled
commit-queue@webkit.org [Thu, 4 Oct 2018 06:23:02 +0000 (06:23 +0000)]
Registered custom properties should allow inheritance to be controlled
https://bugs.webkit.org/show_bug.cgi?id=190038

Patch by Justin Michaud <justin_michaud@apple.com> on 2018-10-03
Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Update web platform tests for css registered custom properties to fail in a different way.

* web-platform-tests/css/css-properties-values-api/registered-properties-inheritance-expected.txt:
* web-platform-tests/css/css-properties-values-api/registered-property-computation-expected.txt:
* web-platform-tests/css/css-properties-values-api/registered-property-cssom-expected.txt:
* web-platform-tests/css/css-properties-values-api/url-resolution-expected.txt:
* web-platform-tests/css/css-properties-values-api/var-reference-registered-properties-cycles-expected.txt:
* web-platform-tests/css/css-properties-values-api/var-reference-registered-properties-expected.txt:

Source/WebCore:

Tests: css-custom-properties-api/inherits.html
       css-custom-properties-api/length.html
       css-custom-properties-api/length2.html

Add support for inherits property on registered css custom properties, as well
as a starting point for evaluating registered custom properties with types. Registered
custom properties are evaluated as length values before being substituted. Currently,
relative unit cycles are not detected.

A proper solution is still needed to resolve relative unit cycles, and to apply properties like font
and line-height before they are needed by custom properties. In this patch, the font-size property is
applied twice, once before and once after resolving custom property values.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::customPropertyValue):
(WebCore::CSSComputedStyleDeclaration::length const):
(WebCore::CSSComputedStyleDeclaration::item const):

Allow JS to get custom properties that have been resolved to a length. Also add properties from
m_rareNonInheritedData.

* css/CSSCustomPropertyValue.cpp:
(WebCore::CSSCustomPropertyValue::checkVariablesForCycles const):
(WebCore::CSSCustomPropertyValue::resolveVariableReferences const):
* css/CSSCustomPropertyValue.h:
* css/CSSRegisteredCustomProperty.cpp: Copied from Source/WebCore/css/CSSRegisteredCustomProperty.h.
(WebCore::CSSRegisteredCustomProperty::CSSRegisteredCustomProperty):
(WebCore::CSSRegisteredCustomProperty::initialValueCopy const):
* css/CSSRegisteredCustomProperty.h:
(WebCore::CSSRegisteredCustomProperty::initialValue const):
* css/CSSVariableData.cpp:
(WebCore::CSSVariableData::checkVariablesForCycles const):
(WebCore::CSSVariableData::checkVariablesForCyclesWithRange const):
(WebCore::CSSVariableData::resolveVariableFallback const):
(WebCore::CSSVariableData::resolveVariableReference const):
(WebCore::CSSVariableData::resolveVariableReferences const):
(WebCore::CSSVariableData::resolveTokenRange const):
* css/CSSVariableData.h:
* css/CSSVariableReferenceValue.cpp:
(WebCore::CSSVariableReferenceValue::checkVariablesForCycles const):
* css/CSSVariableReferenceValue.h:
* css/DOMCSSRegisterCustomProperty.cpp:
(WebCore::DOMCSSRegisterCustomProperty::registerProperty):

Use RenderStyle over passing in a customProperties map.

* css/StyleBuilder.h:
* css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertLength):
(WebCore::StyleBuilderConverter::convertLengthOrAuto):
(WebCore::StyleBuilderConverter::convertLengthSizing):
(WebCore::StyleBuilderConverter::convertLengthMaxSizing):
* css/StyleBuilderCustom.h:
(WebCore::StyleBuilderCustom::applyInitialCustomProperty):
(WebCore::StyleBuilderCustom::applyInheritCustomProperty):
(WebCore::StyleBuilderCustom::applyValueCustomProperty):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::useSVGZoomRules const):
(WebCore::StyleResolver::useSVGZoomRulesForLength const):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::resolvedVariableValue const):
(WebCore::StyleResolver::applyCascadedProperties):
(WebCore::StyleResolver::useSVGZoomRules): Deleted.
(WebCore::StyleResolver::useSVGZoomRulesForLength): Deleted.
(WebCore::StyleResolver::resolvedVariableValue): Deleted.
* css/StyleResolver.h:
* css/makeprop.pl:

Move custom property initial values to StyleBuilerCustom. Hook them up to correctly deal with
inheritance, unset and revert values.

* css/parser/CSSParser.cpp:
(WebCore::CSSParser::parseValueWithVariableReferences):
* css/parser/CSSParser.h:
* css/parser/CSSParserContext.cpp:
(WebCore::CSSParserContext::CSSParserContext):
* css/parser/CSSParserContext.h:
* css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseSingleValue):

Allow parsing custom property values as lengths.

* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::checkVariablesInCustomProperties):
* rendering/style/RenderStyle.h:
(WebCore::RenderStyle::inheritedCustomProperties const):
(WebCore::RenderStyle::nonInheritedCustomProperties const):
(WebCore::RenderStyle::setInheritedCustomPropertyValue):
(WebCore::RenderStyle::setNonInheritedCustomPropertyValue):
(WebCore::RenderStyle::getCustomProperty const):
(WebCore::RenderStyle::customProperties const): Deleted.
(WebCore::RenderStyle::setCustomPropertyValue): Deleted.
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):
* rendering/style/StyleRareNonInheritedData.h:
* style/StyleResolveForDocument.cpp:
(WebCore::Style::resolveForDocument):

Add support for RenderStyle to deal with both inherited and non-inherited properties, and to find
cycles between them.

LayoutTests:

Add tests to check css registered custom properties with inherits. Also test
calc expression evaluation for inherited registered custom properties.

* css-custom-properties-api/inherits-expected.txt: Added.
* css-custom-properties-api/inherits.html: Added.
* css-custom-properties-api/length-expected.txt: Added.
* css-custom-properties-api/length.html: Added.
* css-custom-properties-api/length2-expected.txt: Added.
* css-custom-properties-api/length2.html: Added.

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

11 months ago[JSC] print() changes CRLF to CRCRLF on Windows
ross.kirsling@sony.com [Thu, 4 Oct 2018 05:12:19 +0000 (05:12 +0000)]
[JSC] print() changes CRLF to CRCRLF on Windows
https://bugs.webkit.org/show_bug.cgi?id=190228

Reviewed by Mark Lam.

* jsc.cpp:
(main):
Ultimately, this is just the normal behavior of printf in text mode on Windows.
Since we're reading in files as binary, we need to be printing out as binary too
(just as we do in DumpRenderTree and ImageDiff.)

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

11 months agoTried to fix non-Cocoa, ENABLE(ATTACHMENT_ELEMENT) builds after r236822.
mitz@apple.com [Thu, 4 Oct 2018 04:57:35 +0000 (04:57 +0000)]
Tried to fix non-Cocoa, ENABLE(ATTACHMENT_ELEMENT) builds after r236822.

* UIProcess/PageClient.h:

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

11 months agoClear m_pendingTargets in MutationObserver::takeRecords
rniwa@webkit.org [Thu, 4 Oct 2018 03:55:12 +0000 (03:55 +0000)]
Clear m_pendingTargets in MutationObserver::takeRecords
https://bugs.webkit.org/show_bug.cgi?id=190240

Reviewed by Geoffrey Garen.

In r236781, we delayed the clearing of m_pendingTargets until the end of microtask to avoid a race between
mutation record's JS wrappers getting created and GC marking JS wrappers of elements in mutation records.

This patch shortens this delay to until mutation record's JS wrappers are created. Specifically, we make
MutationObserver::takeRecords() return a struct which has both pending targets hash set and the vector of
mutation records so that the hash set survives through the creation of JS wrappers for mutation records.

To do this, a new IDL extended attribute "ResultField" is introduced to specify the member variable in
which the result is stored.

No new tests. Unfortunately, this race condition appears to be impossible to capture in a regression test.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateOperationBodyDefinition):
* bindings/scripts/IDLAttributes.json:
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::jsTestInterfacePrototypeFunctionTakeNodesBody):
(WebCore::jsTestInterfacePrototypeFunctionTakeNodes):
* bindings/scripts/test/TestImplements.idl: Added a test case.
* dom/MutationObserver.cpp:
(WebCore::MutationObserver::takeRecords):
(WebCore::MutationObserver::deliver):
* dom/MutationObserver.h:
* dom/MutationObserver.idl:

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

11 months agolowXYZ in FTLLower should always filter the type of the incoming edge
sbarati@apple.com [Thu, 4 Oct 2018 03:29:57 +0000 (03:29 +0000)]
lowXYZ in FTLLower should always filter the type of the incoming edge
https://bugs.webkit.org/show_bug.cgi?id=189939
<rdar://problem/44407030>

Reviewed by Michael Saboff.

JSTests:

* stress/ftl-should-always-filter-for-low-type-check-functions.js: Added.
(foo):
(test):

Source/JavaScriptCore:

For example, the FTL may know more about data flow than AI in certain programs,
and it needs to inform AI of these data flow properties to appease the assertion
we have in AI that a node must perform type checks on its child nodes.

For example, consider this program:

```
bb#1
a: Phi // Let's say it has an Int32 result, so it goes into the int32 hash table in FTLLower
Branch(...,  #2, #3)

bb#2
ArrayifyToStructure(Cell:@a) // This modifies @a to have the its previous type union the type of some structure set.
Jump(#3)

bb#3
c: Add(Int32:@something, Int32:@a)
```

When the Add node does lowInt32() for @a, FTL lower used to just grab it
from the int32 hash table without filtering the AbstractValue. However,
the parent node is asking for a type check to happen, so we must inform
AI of this "type check" if we want to appease the assertion that all nodes
perform type checks for their edges that semantically perform type checks.
This patch makes it so we filter the AbstractValue in the lowXYZ even
if FTLLower proved the value must be XYZ.

* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compilePhi):
(JSC::FTL::DFG::LowerDFGToB3::simulatedTypeCheck):
(JSC::FTL::DFG::LowerDFGToB3::lowInt32):
(JSC::FTL::DFG::LowerDFGToB3::lowCell):
(JSC::FTL::DFG::LowerDFGToB3::lowBoolean):

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

11 months agoAddressed the warning “no rule to process file 'Source/ThirdParty/libwebrtc/Source...
mitz@apple.com [Thu, 4 Oct 2018 03:27:20 +0000 (03:27 +0000)]
Addressed the warning “no rule to process file 'Source/ThirdParty/libwebrtc/Source/third_party/yasm-1.3.0/modules/objfmts/macho/Makefile.inc' of type sourcecode.pascal for architecture x86_64”

* libwebrtc.xcodeproj/project.pbxproj: Removed Makefile.inc from the yasm target’s Compile
  Sources build phase.

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

11 months ago[Cocoa] Let clients specify an NSFileWrapper subclassed to be used for _WKAttachment
mitz@apple.com [Thu, 4 Oct 2018 02:04:08 +0000 (02:04 +0000)]
[Cocoa] Let clients specify an NSFileWrapper subclassed to be used for _WKAttachment
https://bugs.webkit.org/show_bug.cgi?id=190270

Reviewed by Wenson Hsieh.

Source/WebKit:

* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration copyWithZone:]): Copy new _attachmentFileWrapperClass ivar.
(-[WKWebViewConfiguration _attachmentFileWrapperClass]): Added this getter.
(-[WKWebViewConfiguration _setAttachmentFileWrapperClass:]): Added this setter, which raises
  an exception if the argument is not an NSFileWrapper subclass.

* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: Declared new property.

* UIProcess/Cocoa/PageClientImplCocoa.h:
* UIProcess/Cocoa/PageClientImplCocoa.mm:
(WebKit::PageClientImplCocoa::allocFileWrapperInstance): Added. Allocates an instance of
  the class specified in the configuration, or NSFileWrapper if no custom class is specified.

* UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::platformRegisterAttachment): Use PageClient::allocFileWrapperInstance
  instead of allocating an NSFileWrapper instance.

* UIProcess/PageClient.h:
(WebKit::PageClient::allocFileWrapperInstance): Defined new function. The default
  implementation returns nil.

Tools:

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

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

11 months agoAdd VP8 support to WebRTC
youenn@apple.com [Thu, 4 Oct 2018 01:53:27 +0000 (01:53 +0000)]
Add VP8 support to WebRTC
https://bugs.webkit.org/show_bug.cgi?id=189976

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

* web-platform-tests/webrtc/RTCPeerConnection-addIceCandidate-expected.txt:

Source/ThirdParty/libwebrtc:

Add support for conditional VP8 support for both encoding and decoding.
This boolean is used by WebCore based on the new VP8 runtime flag.

Enable yasm compilation as a dependency of libvpx.

Compilation is done without using SSE4/AVX2 optimizations.

* Configurations/libvpx.xcconfig: Added.
* Configurations/libwebrtc.iOS.exp:
* Configurations/libwebrtc.iOSsim.exp:
* Configurations/libwebrtc.mac.exp:
* Configurations/libwebrtc.xcconfig:
* Configurations/libwebrtcpcrtc.xcconfig:
* Source/third_party/libvpx/run_yasm_webkit.py: Added.
* Source/third_party/libvpx/source/config/mac/x64/vpx_config.asm:
* Source/third_party/libvpx/source/config/mac/x64/vpx_config.h:
* Source/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd.h:
* Source/webrtc/sdk/WebKit/WebKitUtilities.h:
* Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
(webrtc::createWebKitEncoderFactory):
(webrtc::createWebKitDecoderFactory):
* Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodecFactory.h:
* libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Add a runtime flag to control activation of VP8 codec.
Bind this runtime flag to the video codec factories.
Test: webrtc/video-mute-vp8.html

* Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::createLibWebRTCPeerConnectionBackend):
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::webRTCVP8CodecEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCVP8CodecEnabled):
* platform/mediastream/libwebrtc/LibWebRTCProvider.h:
* platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:
(WebCore::LibWebRTCProviderCocoa::createDecoderFactory):
(WebCore::LibWebRTCProviderCocoa::createEncoderFactory):
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
Enable VP8 codec for tests.

Source/WebKit:

* Shared/WebPreferences.yaml:

LayoutTests:

* webrtc/audio-peer-connection-g722.html:
* webrtc/routines.js:
* webrtc/video-mute-vp8-expected.txt: Added.
* webrtc/video-mute-vp8.html: Added.

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

11 months ago[WebCrypto] ECDSA could not deal with invalid signature inputs
jiewen_tan@apple.com [Thu, 4 Oct 2018 01:32:02 +0000 (01:32 +0000)]
[WebCrypto] ECDSA could not deal with invalid signature inputs
https://bugs.webkit.org/show_bug.cgi?id=189879
<rdar://problem/44701276>

Reviewed by Brent Fulgham.

Source/WebCore:

Add some guards over detections of the start positions of r/s.

Covered by improved existing tests.

* crypto/mac/CryptoAlgorithmECDSAMac.cpp:
(WebCore::verifyECDSA):

LayoutTests:

* crypto/subtle/ecdsa-verify-malformed-parameters-expected.txt:
* crypto/subtle/ecdsa-verify-malformed-parameters.html:

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

11 months agoAdd a quirk to disable Modern EME for sites which are broken with it enabled
jer.noble@apple.com [Thu, 4 Oct 2018 00:50:46 +0000 (00:50 +0000)]
Add a quirk to disable Modern EME for sites which are broken with it enabled
https://bugs.webkit.org/show_bug.cgi?id=190051

Reviewed by Daniel Bates.

Add a new class, parallel to Settings, to track quirk behavior. Extend the bindings
generator to support a DisabledByQuirk attribute, and set this attribute for all
the Modern EME types. Check whether the quirk is set inside HTMLMediaElement in
addition to the existing Setting.

* Modules/encryptedmedia/MediaKeyMessageEvent.idl:
* Modules/encryptedmedia/MediaKeySession.idl:
* Modules/encryptedmedia/MediaKeyStatusMap.idl:
* Modules/encryptedmedia/MediaKeySystemAccess.idl:
* Modules/encryptedmedia/MediaKeys.idl:
* Modules/encryptedmedia/NavigatorEME.idl:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/scripts/CodeGenerator.pm:
(WK_ucfirst):
* bindings/scripts/CodeGeneratorJS.pm:
(NeedsRuntimeCheck):
(GenerateRuntimeEnableConditionalString):
* bindings/scripts/IDLAttributes.json:
* bindings/scripts/preprocess-idls.pl:
(GenerateConstructorAttributes):
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
(WebCore::Document::quirks const):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
(WebCore::HTMLMediaElement::mediaPlayerInitializationDataEncountered):
* html/HTMLMediaElement.idl:
* page/Quirks.cpp: Added.
(Quirks::Quirks):
(Quirks::disableEncryptedMediaAPIQuirk const):
* page/Quirks.h: Added.

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

11 months agoSearch does not cancel after number of matching terms exceed set max limit
commit-queue@webkit.org [Wed, 3 Oct 2018 23:34:25 +0000 (23:34 +0000)]
Search does not cancel after number of matching terms exceed set max limit
https://bugs.webkit.org/show_bug.cgi?id=190020
<rdar://problem/39585214>

Patch by Zamiul Haque <zhaque@apple.com> on 2018-10-03
Reviewed by Andy Estes.

When searching a PDF document on MobileSafari, the maximum number of matching
terms are limited to a set constant. Beyond this limit, a PDF document should not
be searched, since the UI will not be updated correspondingly. To this effect,
a new SPI was made to cancel a search when the maximum limit of matching terms
is reached. This is done without clearing the highlighting for the all the terms
that were found under the limit. This bug was a result of not having implemented
the new SPI in WKPDFView.

This will be tested in a follow-up patch, after re-enabling WKPDFView tests
on iOS 12.

* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView pdfHostViewController:findStringUpdate:done:]):

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

11 months agoCommand line jsc should report memory footprint in bytes
msaboff@apple.com [Wed, 3 Oct 2018 23:24:10 +0000 (23:24 +0000)]
Command line jsc should report memory footprint in bytes
https://bugs.webkit.org/show_bug.cgi?id=190267

Reviewed by Mark Lam.

Change to leave the footprint values from the system unmodified.

* jsc.cpp:
(JSCMemoryFootprint::finishCreation):

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

11 months agoSuppress unreachable code warning for LLIntAssembly.h code.
mark.lam@apple.com [Wed, 3 Oct 2018 22:02:44 +0000 (22:02 +0000)]
Suppress unreachable code warning for LLIntAssembly.h code.
https://bugs.webkit.org/show_bug.cgi?id=190263
<rdar://problem/44986532>

Reviewed by Saam Barati.

This is needed because LLIntAssembly.h is template generated from LowLevelInterpreter
asm files, and may contain dead code which are harmless, but will trip up the warning.
We should suppress the warning so that it doesn't break builds.

* llint/LowLevelInterpreter.cpp:
(JSC::CLoop::execute):

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

11 months agoANGLE and libwebrtc parts of [Xcode] Update some build settings as recommended by...
mitz@apple.com [Wed, 3 Oct 2018 21:08:53 +0000 (21:08 +0000)]
ANGLE and libwebrtc parts of [Xcode] Update some build settings as recommended by Xcode 10
https://bugs.webkit.org/show_bug.cgi?id=190250

Reviewed by Andy Estes.

Source/ThirdParty/ANGLE:

* ANGLE.xcodeproj/project.pbxproj: Kept the unreachable code warning off for four files that
  were generated by tools: glslang_lex.cpp, glslang_tab.cpp, Tokenizer.cpp, and
  ExpressionParser.cpp. Let Xcode update LastUpgradeCheck.

* Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_INFINITE_RECURSION,
  CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS, CLANG_WARN_SUSPICIOUS_MOVE,
  CLANG_WARN_UNREACHABLE_CODE, CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF, and
  CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED.

Source/ThirdParty/libwebrtc:

* Configurations/Base.xcconfig: Removed a duplicate reference to x_all.c and let Xcode
  update LastUpgradeCheck.

* libwebrtc.xcodeproj/project.pbxproj: Enabled CLANG_WARN_INFINITE_RECURSION,
  CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF, CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED, and
  CLANG_WARN_SUSPICIOUS_MOVE. Other warnings that Xcode 10 recommended were incompatible
  with one or more source files in the project.

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

11 months ago[Cocoa] REGRESSION: web content process paused in debugger is considered to be unresp...
bburg@apple.com [Wed, 3 Oct 2018 21:02:19 +0000 (21:02 +0000)]
[Cocoa] REGRESSION: web content process paused in debugger is considered to be unresponsive if WebKit client is sandboxed
https://bugs.webkit.org/show_bug.cgi?id=190256
<rdar://problem/44957921>

Reviewed by Alexey Proskuryakov.

Instead of giving up when the client is sandboxed, check whether it has the
exception that's necessary to get process information. If it is possible,
proceed to check whether the web content process has a debugger attached.

* UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::platformIsBeingDebugged const):
Check 'process-info-pidinfo' to see if the sysctl call would be allowed.

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

11 months ago[Web Animations] REGRESSION: setting 'animation-name: none' after a 'fill: forwards...
graouts@webkit.org [Wed, 3 Oct 2018 20:54:17 +0000 (20:54 +0000)]
[Web Animations] REGRESSION: setting 'animation-name: none' after a 'fill: forwards' animation has completed does not revert to the unanimated style
https://bugs.webkit.org/show_bug.cgi?id=190257
<rdar://problem/41341473>

Reviewed by Dean Jackson.

Source/WebCore:

Test: animations/animation-fill-forwards-removal.html

While we removed a declarative animation that was no longer targetting its element, we were not removing it from the declarative animation maps
on the timeline, which means that the animation would still be picked up when resolving styles. We now notify the timeline that the animation
was detached from the element. This preserves the DeclarativeAnimation relationship returning the element as its effect's target and the document
timeline as its timeline, but the document timeline will no longer see this animation as targeting this element.

* animation/AnimationTimeline.cpp:
(WebCore::AnimationTimeline::cancelOrRemoveDeclarativeAnimation):
* animation/DeclarativeAnimation.h:
(WebCore::DeclarativeAnimation::target const):

LayoutTests:

Add a test that checks that an animation with fill: forwards no longer applies to an element once it's been removed.

* animations/animation-fill-forwards-removal-expected.txt: Added.
* animations/animation-fill-forwards-removal.html: Added.

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

11 months agoCRASH in CVPixelBufferGetBytePointerCallback()
jer.noble@apple.com [Wed, 3 Oct 2018 19:28:31 +0000 (19:28 +0000)]
CRASH in CVPixelBufferGetBytePointerCallback()
https://bugs.webkit.org/show_bug.cgi?id=190092

Reviewed by Eric Carlson.

Speculative fix for crash that occurs when callers of CVPixelBufferGetBytePointerCallback() attempt
to read the last byte of a CVPixelBuffer (as a pre-flight check) and crash due to a memory access
error. It's speculated that mismatching CVPixelBufferLockBytePointer / CVPixelBufferUnlockBytePointer
calls could result in an incorrect state inside the CVPixelBuffer. Add log count checks, locking, and
release logging to try to pinpoint if mismatch lock counts are occurring in this code path.

* platform/graphics/cv/PixelBufferConformerCV.cpp:
(WebCore::CVPixelBufferGetBytePointerCallback):
(WebCore::CVPixelBufferReleaseBytePointerCallback):
(WebCore::CVPixelBufferReleaseInfoCallback):
(WebCore::PixelBufferConformerCV::createImageFromPixelBuffer):

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

11 months agobmalloc, WTF and JavaScriptCore parts of [Xcode] Update some build settings as recomm...
mitz@apple.com [Wed, 3 Oct 2018 18:38:11 +0000 (18:38 +0000)]
bmalloc, WTF and JavaScriptCore parts of [Xcode] Update some build settings as recommended by Xcode 10
https://bugs.webkit.org/show_bug.cgi?id=190250

Reviewed by Alex Christensen.

Source/bmalloc:

* Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS,
  and CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF.

* bmalloc.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.

Source/JavaScriptCore:

* API/tests/Regress141275.mm:
(-[JSTEvaluator _sourcePerform]): Addressed newly-enabled CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF
  by making the self-retaining explicit.

* API/tests/testapi.cpp:
(testCAPIViaCpp): Addressed newly-enabled CLANG_WARN_UNREACHABLE_CODE by breaking out of the
  loop instead of returning from the lambda.

* Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_UNREACHABLE_CODE,
  CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS, CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF, and
  CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED.

* JavaScriptCore.xcodeproj/project.pbxproj: Removed a duplicate reference to
  UnlinkedFunctionExecutable.h, and let Xcode update the project file.

* assembler/MacroAssemblerPrinter.cpp:
(JSC::Printer::printAllRegisters): Addressed newly-enabled CLANG_WARN_COMMA by replacing
  some commas with semicolons.

Source/WTF:

* Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS,
  and CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF.

* WTF.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.

* wtf/MathExtras.h:
(WTF::fastLog2): Addressed newly-enabled CLANG_WARN_COMMA by splitting some comma-separated
  expressions into individual statements.

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

11 months agoMake string MaxLength for all WTF and JS strings consistently equal to INT_MAX.
mark.lam@apple.com [Wed, 3 Oct 2018 18:28:55 +0000 (18:28 +0000)]
Make string MaxLength for all WTF and JS strings consistently equal to INT_MAX.
https://bugs.webkit.org/show_bug.cgi?id=190187
<rdar://problem/42512909>

Reviewed by Michael Saboff.

JSTests:

* stress/regress-190187.js: Added.

Source/JavaScriptCore:

Allowing different max string lengths at each level opens up opportunities for
bugs to creep in.  With 2 different max length values, it is more difficult to
keep the story straight on how we do overflow / bounds checks at each place in
the code.  It's also difficult to tell if a seemingly valid check at the WTF level
will have bad ramifications at the JSC level.  Also, it's also not meaningful to
support a max length > INT_MAX.  To eliminate this class of bugs, we'll
standardize on a MaxLength of INT_MAX at all levels.

We'll also standardize the way we do length overflow checks on using
CheckedArithmetic, and add some asserts to document the assumptions of the code.

* runtime/FunctionConstructor.cpp:
(JSC::constructFunctionSkippingEvalEnabledCheck):
- Fix OOM error handling which crashed a test after the new MaxLength was applied.
* runtime/JSString.h:
(JSC::JSString::finishCreation):
(JSC::JSString::createHasOtherOwner):
(JSC::JSString::setLength):
* runtime/JSStringInlines.h:
(JSC::jsMakeNontrivialString):
* runtime/Operations.h:
(JSC::jsString):

Source/WTF:

* wtf/text/StringConcatenate.h:
(WTF::tryMakeStringFromAdapters):
(WTF::sumWithOverflow): Deleted.
* wtf/text/StringImpl.h:
* wtf/text/WTFString.h:

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

11 months agoRegression(r236779): Crash when changing the input element type from inside an 'input...
cdumez@apple.com [Wed, 3 Oct 2018 18:26:29 +0000 (18:26 +0000)]
Regression(r236779): Crash when changing the input element type from inside an 'input' event listener
https://bugs.webkit.org/show_bug.cgi?id=190252

Reviewed by Alex Christensen.

Source/WebCore:

Add a null check for element() after firing the 'input' event and before firing the 'change' event
in case the input event listener changes the input type.

Tests: fast/dom/HTMLInputElement/change-type-in-click-event-listener.html
       fast/dom/HTMLInputElement/change-type-in-input-event-listener.html

* html/BaseCheckableInputType.cpp:
(WebCore::BaseCheckableInputType::fireInputAndChangeEvents):

LayoutTests:

Add layout test coverage.

* fast/dom/HTMLInputElement/change-type-in-click-event-listener-expected.txt: Added.
* fast/dom/HTMLInputElement/change-type-in-click-event-listener.html: Added.
* fast/dom/HTMLInputElement/change-type-in-input-event-listener-expected.txt: Added.
* fast/dom/HTMLInputElement/change-type-in-input-event-listener.html: Added.

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

11 months agoPassing noopener=NOOPENER to window.open() should cause the new window to not have...
cdumez@apple.com [Wed, 3 Oct 2018 18:23:53 +0000 (18:23 +0000)]
Passing noopener=NOOPENER to window.open() should cause the new window to not have an opener
https://bugs.webkit.org/show_bug.cgi?id=190251

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline WPT test now that it is passing.

* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-noopener-expected.txt:

Source/WebCore:

Passing noopener=NOOPENER to window.open() should cause the new window to not have an opener,
similarly to noopener=1:
- https://html.spec.whatwg.org/#window-open-steps (step 5)

It does not matter what the value is, if there is a key named "noopener", then the new window
should not have an opener.

No new tests, rebaselined existing test.

* page/WindowFeatures.cpp:
(WebCore::setWindowFeature):

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

11 months agoGC can collect JS wrappers of nodes in the mutation records waiting to be delivered
rniwa@webkit.org [Wed, 3 Oct 2018 18:16:39 +0000 (18:16 +0000)]
GC can collect JS wrappers of nodes in the mutation records waiting to be delivered
https://bugs.webkit.org/show_bug.cgi?id=190115

Reviewed by Geoffrey Garen.

Fixed the bug by retaining JS wrappers of elements in mutation records using GCReachableRef.

This patch deploys GCReachableRef in two places: MutationObserver where each mutation record's
target is kept alive and MutationObserverRegistration where each node which had been removed
from an observed tree is kept alive for a subtree observation.

No new test since the test which can reproduce this problem is too slow.

* dom/GCReachableRef.h:
(WebCore::GCReachableRef): Made it work with hash table.
(WebCore::GCReachableRef::operator T& const):
(WebCore::GCReachableRef::GCReachableRef):
(WebCore::GCReachableRef::isHashTableDeletedValue const):
(WebCore::GCReachableRef::isHashTableEmptyValue const):
(WebCore::GCReachableRef::ptrAllowingHashTableEmptyValue const):
(WebCore::GCReachableRef::ptrAllowingHashTableEmptyValue):
(WebCore::GCReachableRef::assignToHashTableEmptyValue):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::emptyValue):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::constructEmptyValue):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::isEmptyValue):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::assignToEmpty):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::peek):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::take):
* dom/MutationObserver.cpp:
(WebCore::MutationObserver::takeRecords): Don't clear m_pendingTargets because that would allow wrappers
to be collected before elements in mutation records are accessed. We delay until the end of the current
microtask at which point deliver() function is called.
(WebCore::MutationObserver::disconnect):
(WebCore::MutationObserver::enqueueMutationRecord): Add the target to the list of elements to keep alive.
This is needed for a newly inserted node, a node with attribute change, etc...
(WebCore::MutationObserver::deliver): Keep the set of transient registration targets alive until mutation
records are delivered to each observer. These are nodes which had been removed from a tree and whose
subtree had still been obsreved up until this point.
* dom/MutationObserver.h:
* dom/MutationObserverRegistration.cpp:
(WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):
(WebCore::MutationObserverRegistration::takeTransientRegistrations): Return the hash set of elemenets
that need to be kept alive so that MutationObserver::deliver can keep them alive until the deliver
function had been called.
(WebCore::MutationObserverRegistration::addRegistrationNodesToSet const):
* dom/MutationObserverRegistration.h:

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

11 months agoMake the Pointer Events feature description valid
dino@apple.com [Wed, 3 Oct 2018 18:14:29 +0000 (18:14 +0000)]
Make the Pointer Events feature description valid
https://bugs.webkit.org/show_bug.cgi?id=190254

Reviewed by Simon Fraser.

* features.json:

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

11 months agoUnreviewed, rolling out r236781.
jlewis3@apple.com [Wed, 3 Oct 2018 18:02:45 +0000 (18:02 +0000)]
Unreviewed, rolling out r236781.

The test added with this commit is timing out consistently.

Reverted changeset:

"GC can collect JS wrappers of nodes in the mutation records
waiting to be delivered"
https://bugs.webkit.org/show_bug.cgi?id=190115
https://trac.webkit.org/changeset/236781

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

11 months agoVersioning.
kocsen_chung@apple.com [Wed, 3 Oct 2018 17:56:29 +0000 (17:56 +0000)]
Versioning.

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

11 months ago[macOS] Switching to discrete GPU should be done in the UI process
dino@apple.com [Wed, 3 Oct 2018 17:28:50 +0000 (17:28 +0000)]
[macOS] Switching to discrete GPU should be done in the UI process
https://bugs.webkit.org/show_bug.cgi?id=189361
<rdar://problem/43949622>

Try to fix the IOSMAC build.

* platform/graphics/GraphicsContext3D.h:

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

11 months agoinput.checked is incorrect while we're parsing its children
cdumez@apple.com [Wed, 3 Oct 2018 16:02:34 +0000 (16:02 +0000)]
input.checked is incorrect while we're parsing its children
https://bugs.webkit.org/show_bug.cgi?id=190227

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline WPT test now that it is passing.

* web-platform-tests/html/semantics/forms/the-input-element/checked-expected.txt:

Source/WebCore:

input.checked was incorrect while we're parsing its children because we were delaying updating the
checked state until HTMLInputElement::finishParsingChildren() is called, to avoid a bad interaction
with form state restoration.

In this patch, we update the checked state as soon as the 'checked' attribute is set, when we know
that no form state to restore.

fast/forms/radio/state-restore-radio-group.html covers the form restoration case and is still
passing.

No new tests, rebaselined existing test.

* html/FormController.cpp:
(WebCore::FormController::hasFormStateToRestore const):
* html/FormController.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseAttribute):

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

11 months ago[GTK][WPE] Incorrect rendering of layers whose backingStore hasn't changed
magomez@igalia.com [Wed, 3 Oct 2018 15:47:51 +0000 (15:47 +0000)]
[GTK][WPE] Incorrect rendering of layers whose backingStore hasn't changed
https://bugs.webkit.org/show_bug.cgi?id=190249

Reviewed by Žan Doberšek.

Do not overwrite m_nicosia.performLayerSync when updating the content buffers or we lose
the value calculated during the layer flush. Use an OR instead to keep the old value.

* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::updateContentBuffers):

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

11 months ago[WPE][GTK] Enable MSE by default
mcatanzaro@igalia.com [Wed, 3 Oct 2018 13:06:21 +0000 (13:06 +0000)]
[WPE][GTK] Enable MSE by default
https://bugs.webkit.org/show_bug.cgi?id=190243

Reviewed by Xabier Rodriguez-Calvar.

* UIProcess/API/glib/WebKitSettings.cpp:
(webkit_settings_class_init):

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

11 months agoEnable H264 simulcast
youenn@apple.com [Wed, 3 Oct 2018 12:11:23 +0000 (12:11 +0000)]
Enable H264 simulcast
https://bugs.webkit.org/show_bug.cgi?id=190167

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Rename .m files to .mm to enable C++ compilation of included header files.
Rename RTCH264VideoEncoder to RTCSingleH264Encoder.
Implement a new RTCH264VideoEncoder that spawns as many RTCSingleH264Encoder as needed for simulcast.
Update ObjC API to allow passing simulcast parameters to/from RTCH264VideoEncoder.

* Configurations/libwebrtc.iOS.exp:
* Configurations/libwebrtc.iOSsim.exp:
* Configurations/libwebrtc.mac.exp:
* Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoDecoderFactory.mm: Renamed from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoDecoderFactory.m.
* Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoEncoderFactory.mm: Renamed from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoEncoderFactory.m.
* Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec+Private.h:
* Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodecH264.mm:
(-[RTCCodecSpecificInfoH264 nativeCodecSpecificInfo]):
* Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoEncoderSettings.mm:
(-[RTCVideoEncoderSettings initWithNativeVideoCodec:]):
* Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoEncoder.mm:
(-[RTCWrappedNativeVideoEncoder setBitrate:framerate:]):
(-[RTCWrappedNativeVideoEncoder setRateAllocation:framerate:]):
* Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
(-[RTCSingleVideoEncoderH264 initWithCodecInfo:simulcastIndex:]):
(-[RTCSingleVideoEncoderH264 startEncodeWithSettings:numberOfCores:]):
(-[RTCSingleVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
(-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
(-[RTCSingleVideoEncoderH264 scalingSettings]):
(-[RTCSingleVideoEncoderH264 setRateAllocation:framerate:]):
(-[RTCVideoEncoderH264 initWithCodecInfo:]):
(-[RTCVideoEncoderH264 setCallback:]):
(-[RTCVideoEncoderH264 startEncodeWithSettings:numberOfCores:]):
(-[RTCVideoEncoderH264 releaseEncoder]):
(-[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
(-[RTCVideoEncoderH264 setRateAllocation:framerate:]):
(-[RTCVideoEncoderH264 implementationName]):
(-[RTCVideoEncoderH264 scalingSettings]):
(-[RTCVideoEncoderH264 setBitrate:framerate:]):
* Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h:
* Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodecH264.h:
* Source/webrtc/sdk/objc/Framework/Native/src/objc_video_encoder_factory.mm:
* libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Activate H264 simulcast trial field.
Make track.getSettings() expose width and height for incoming tracks.

Test: webrtc/simulcast-h264.html

* Configurations/WebCore.xcconfig:
* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::LibWebRTCMediaEndpoint):
* platform/mediastream/RealtimeIncomingVideoSource.cpp:
(WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource):

LayoutTests:

* TestExpectations:
* webrtc/simulcast-h264-expected.txt: Added.
* webrtc/simulcast-h264.html: Added.

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

11 months ago[JSC] Add a C++ callable overload of objectConstructorSeal
commit-queue@webkit.org [Wed, 3 Oct 2018 12:05:47 +0000 (12:05 +0000)]
[JSC] Add a C++ callable overload of objectConstructorSeal
https://bugs.webkit.org/show_bug.cgi?id=190137

Patch by Koby Boyango <koby.b@mce-sys.com> on 2018-10-03
Reviewed by Yusuke Suzuki.

* runtime/ObjectConstructor.cpp:
* runtime/ObjectConstructor.h:

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

11 months ago-Wunused-variable in RenderLayer::updateScrollableAreaSet
mcatanzaro@igalia.com [Wed, 3 Oct 2018 11:03:48 +0000 (11:03 +0000)]
-Wunused-variable in RenderLayer::updateScrollableAreaSet
https://bugs.webkit.org/show_bug.cgi?id=190200

Reviewed by Yusuke Suzuki.

Source/WebCore:

Pass it through UNUSED_VARIABLE().

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects const):

Source/WTF:

Add a new UNUSED_VARIABLE() macro. It's the same as UNUSED_PARAM(), just named differently.

* wtf/Compiler.h:

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

11 months agoRef<FetchResponse> use-after-move in DOMCache::put()
zandobersek@gmail.com [Wed, 3 Oct 2018 10:09:29 +0000 (10:09 +0000)]
Ref<FetchResponse> use-after-move in DOMCache::put()
https://bugs.webkit.org/show_bug.cgi?id=190239

Reviewed by Youenn Fablet.

Retrieve reference from the Ref<FetchResponse> object before it's
move-captured in the lambda that's passed to the
FetchResponse::consumeBodyReceivedByChunk() method that is invoked on
that very same object. This is a classic use-after-move bug that pops
up on compilers with different C++ calling convention.

* Modules/cache/DOMCache.cpp:
(WebCore::DOMCache::put):

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

11 months agoEnable selectionAcrossShadowBoundariesEnabled by default in WebKitLegacy
rniwa@webkit.org [Wed, 3 Oct 2018 09:45:18 +0000 (09:45 +0000)]
Enable selectionAcrossShadowBoundariesEnabled by default in WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=190238

Reviewed by Antti Koivisto.

Source/WebCore:

Enable the feature by default.

* page/Settings.yaml:

Source/WebKitLegacy/mac:

Enabled the feature by default.

* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):

Tools:

* DumpRenderTree/TestOptions.h:
* DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebPreferencesToConsistentValues):

LayoutTests:

Removed the unnecessary webkit-test-runner directive.

* editing/pasteboard/copy-paste-across-shadow-boundaries-1.html:
* editing/pasteboard/copy-paste-across-shadow-boundaries-2.html:
* editing/pasteboard/copy-paste-across-shadow-boundaries-3.html:
* editing/pasteboard/copy-paste-across-shadow-boundaries-4.html:
* editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-1.html:
* editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-2.html:
* editing/pasteboard/copy-paste-with-shadow-content.html:
* editing/selection/selection-across-shadow-boundaries-mixed-editability-1.html:
* editing/selection/selection-across-shadow-boundaries-mixed-editability-2.html:
* editing/selection/selection-across-shadow-boundaries-mixed-editability-3.html:
* editing/selection/selection-across-shadow-boundaries-mixed-editability-4.html:
* editing/selection/selection-across-shadow-boundaries-mixed-editability-5.html:
* editing/selection/selection-across-shadow-boundaries-readonly-1.html:
* editing/selection/selection-across-shadow-boundaries-readonly-2.html:
* editing/selection/selection-across-shadow-boundaries-readonly-3.html:
* editing/selection/selection-across-shadow-boundaries-user-select-all-1.html:

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

11 months agoImport WPT mimesniff resources
commit-queue@webkit.org [Wed, 3 Oct 2018 07:08:48 +0000 (07:08 +0000)]
Import WPT mimesniff resources
https://bugs.webkit.org/show_bug.cgi?id=190074

Patch by Rob Buis <rbuis@igalia.com> on 2018-10-03
Reviewed by Youenn Fablet.

* resources/import-expectations.json:
* web-platform-tests/mimesniff/META.yml: Added.
* web-platform-tests/mimesniff/README.md: Added.
* web-platform-tests/mimesniff/mime-types/README.md: Added.
* web-platform-tests/mimesniff/mime-types/charset-parameter.window-expected.txt: Added.
* web-platform-tests/mimesniff/mime-types/charset-parameter.window.html: Added.
* web-platform-tests/mimesniff/mime-types/charset-parameter.window.js: Added.
(promise_test):
(isByteCompatible):
(encodeForURL):
(runTests):
* web-platform-tests/mimesniff/mime-types/parsing.any-expected.txt: Added.
* web-platform-tests/mimesniff/mime-types/parsing.any.html: Added.
* web-platform-tests/mimesniff/mime-types/parsing.any.js: Added.
(promise_test):
(isByteCompatible):
(runTests):
* web-platform-tests/mimesniff/mime-types/parsing.any.worker-expected.txt: Added.
* web-platform-tests/mimesniff/mime-types/parsing.any.worker.html: Added.
* web-platform-tests/mimesniff/mime-types/resources/generated-mime-types.json: Added.
* web-platform-tests/mimesniff/mime-types/resources/generated-mime-types.py: Added.
(isHTTPTokenCodePoint):
(isHTTPQuotedStringTokenCodePoint):
* web-platform-tests/mimesniff/mime-types/resources/mime-charset.py: Added.
(main):
* web-platform-tests/mimesniff/mime-types/resources/mime-types.json: Added.
* web-platform-tests/mimesniff/mime-types/resources/w3c-import.log: Added.
* web-platform-tests/mimesniff/mime-types/w3c-import.log: Added.
* web-platform-tests/mimesniff/w3c-import.log: Added.
* web-platform-tests/xhr/overridemimetype-blob-expected.txt:

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

11 months ago[WinCairo][BuildBot] archive-test-results fails to delete pywebsocket.ws.log-err.txt
Hironori.Fujii@sony.com [Wed, 3 Oct 2018 06:39:26 +0000 (06:39 +0000)]
[WinCairo][BuildBot] archive-test-results fails to delete pywebsocket.ws.log-err.txt
https://bugs.webkit.org/show_bug.cgi?id=190236

Unreviewed test gardening.

* platform/wincairo/TestExpectations: Skipped http/wpt and imported/w3c.

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

11 months agoCopying content with shadow DOM doesn't copy any contents
rniwa@webkit.org [Wed, 3 Oct 2018 06:28:07 +0000 (06:28 +0000)]
Copying content with shadow DOM doesn't copy any contents
https://bugs.webkit.org/show_bug.cgi?id=157443

Reviewed by Wenson Hsieh.

Source/WebCore:

This patch adds the support for copying and pasting content across shadow boundaries in HTML and plain text,
which is enabled whenever selection across shadow boundaries is enabled.

To do this, TextIterator now has a constructor which takes two Positions, and the node traversal code in
StyledMarkupAccumulator has been abstracted via helper functions as done for TextIterator.

When serializing a HTMl slot element, serialize it as a span with "display: contents" to make sure when
the content is pasted into a shadow tree, it wouldn't affect the slot assignment of the shadow tree.

Tests: editing/pasteboard/copy-paste-across-shadow-boundaries-1.html
       editing/pasteboard/copy-paste-across-shadow-boundaries-2.html
       editing/pasteboard/copy-paste-across-shadow-boundaries-3.html
       editing/pasteboard/copy-paste-across-shadow-boundaries-4.html
       editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-1.html
       editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-2.html
       editing/pasteboard/copy-paste-with-shadow-content.html

* dom/ComposedTreeIterator.h:
(WebCore::assignedSlotIgnoringUserAgentShadow): Moved from TextIterator.cpp.
(WebCore::shadowRootIgnoringUserAgentShadow): Ditto.
(WebCore::firstChildInComposedTreeIgnoringUserAgentShadow): Ditto.
(WebCore::nextSiblingInComposedTreeIgnoringUserAgentShadow): Ditto.
* dom/Position.h:
(WebCore::Position::treeScope const): Added.
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::addDisplayContents): Added.
* editing/EditingStyle.h:
* editing/Editor.cpp:
(WebCore::Editor::selectedText const): Use the new behavior when selectionAcrossShadowBoundariesEnabled is set.
(WebCore::Editor::selectedTextForDataTransfer const): Ditto.
* editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::appendEndElement): Renamed from appendEndTag. Now takes StringBuilder.
* editing/MarkupAccumulator.h:
(WebCore::MarkupAccumulator::appendEndTag):
* editing/TextIterator.cpp:
(WebCore::TextIterator::TextIterator): Added a new variant which takes two positions.
(WebCore::TextIterator::init):
(WebCore::firstChild):
(WebCore::nextSibling):
(WebCore::plainText): Ditto.
* editing/TextIterator.h:
* editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::selectionInHTMLFormat): Use the new behavior if selectionAcrossShadowBoundariesEnabled is set.
* editing/gtk/EditorGtk.cpp:
(WebCore::Editor::writeSelectionToPasteboard): Ditto.
* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::parentNode): Added.
(WebCore::StyledMarkupAccumulator::firstChild): Added.
(WebCore::StyledMarkupAccumulator::nextSibling): Added.
(WebCore::StyledMarkupAccumulator::nextSkippingChildren): Added.
(WebCore::StyledMarkupAccumulator::hasChildNodes): Added.
(WebCore::StyledMarkupAccumulator::isDescendantOf): Added.
(WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator):
(WebCore::StyledMarkupAccumulator::appendElement): Serialize a slot element as a span with display: contents.
(WebCore::StyledMarkupAccumulator::appendEndElement): Added. Ditto.
(WebCore::StyledMarkupAccumulator::serializeNodes):
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization): Use the newly added helper functions to
traverse the composed tree when m_useComposedTree is set.
(WebCore::commonShadowIncludingAncestor): Added.
(WebCore::serializePreservingVisualAppearanceInternal): Added SerializeComposedTree as an argument. Also use
StyledMarkupAccumulator::parentNode to serialize special common ancestors; e.g. to preserve b, i, etc...
(WebCore::serializePreservingVisualAppearance): Ditto to the variant which takes VisibleSelection.
(WebCore::sanitizedMarkupForFragmentInDocument):
* editing/markup.h:
* editing/wpe/EditorWPE.cpp:
(WebCore::Editor::writeSelectionToPasteboard):
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::createFromSelection):
* page/PageSerializer.cpp:
(WebCore::PageSerializer::SerializerMarkupAccumulator::appendEndElement):
* testing/Internals.cpp:
(WebCore::Internals::setSelectionWithoutValidation): Added. A helper function to create a selection across
shadow boundaries for testing purposes.
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

Added tests for copying and pasting across shadow boundaries with HTML and plain text.

* editing/pasteboard/copy-paste-across-shadow-boundaries-1-expected.txt: Added.
* editing/pasteboard/copy-paste-across-shadow-boundaries-1.html: Added.
* editing/pasteboard/copy-paste-across-shadow-boundaries-2-expected.txt: Added.
* editing/pasteboard/copy-paste-across-shadow-boundaries-2.html: Added.
* editing/pasteboard/copy-paste-across-shadow-boundaries-3-expected.txt: Added.
* editing/pasteboard/copy-paste-across-shadow-boundaries-3.html: Added.
* editing/pasteboard/copy-paste-across-shadow-boundaries-4-expected.txt: Added.
* editing/pasteboard/copy-paste-across-shadow-boundaries-4.html: Added.
* editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-1-expected.txt: Added.
* editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-1.html: Added.
* editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-2-expected.txt: Added.
* editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-2.html: Added.
* editing/pasteboard/copy-paste-with-shadow-content-expected.txt: Added.
* editing/pasteboard/copy-paste-with-shadow-content.html: Added.

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

11 months agoMessageEvent.ports should return the same object
cdumez@apple.com [Wed, 3 Oct 2018 01:59:04 +0000 (01:59 +0000)]
MessageEvent.ports should return the same object
https://bugs.webkit.org/show_bug.cgi?id=190151

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT test now that it is passing.

* web-platform-tests/html/webappapis/scripting/events/messageevent-constructor.https-expected.txt:

Source/WebCore:

MessageEvent.ports should return the same object it was initialized to instead of
constructing a new JSValue every time.

No new tests, rebaselined existing test.

* bindings/js/JSMessageEventCustom.cpp:
(WebCore::JSMessageEvent::ports const):
(WebCore::JSMessageEvent::visitAdditionalChildren):
* dom/MessageEvent.cpp:
(WebCore::MessageEvent::initMessageEvent):
* dom/MessageEvent.h:
* dom/MessageEvent.idl:

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

11 months agoWeb Inspector: merge SourceMapManager into NetworkManager
drousso@apple.com [Wed, 3 Oct 2018 01:49:05 +0000 (01:49 +0000)]
Web Inspector: merge SourceMapManager into NetworkManager
https://bugs.webkit.org/show_bug.cgi?id=190224

Reviewed by Joseph Pecoraro.

* UserInterface/Main.html:
* UserInterface/Base/Main.js:
(WI.loaded):
* UserInterface/Test.html:
* UserInterface/Test/Test.js:
(WI.loaded):

* UserInterface/Controllers/NetworkManager.js:
(WI.NetworkManager):
(WI.NetworkManager.prototype.downloadSourceMap): Added.
(WI.NetworkManager.prototype.resourceRequestWasServedFromMemoryCache):
(WI.NetworkManager.prototype.resourceRequestDidFinishLoading):
(WI.NetworkManager.prototype._createResource):
(WI.NetworkManager.prototype._loadAndParseSourceMap): Added.
(WI.NetworkManager.prototype._sourceMapLoadAndParseFailed): Added.
(WI.NetworkManager.prototype._sourceMapLoadAndParseSucceeded): Added.
(WI.NetworkManager.prototype._handleFrameMainResourceDidChange): Added.
* UserInterface/Controllers/SourceMapManager.js: Removed.

* UserInterface/Models/Script.js:
(WI.Script):

* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:

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

11 months agoGC can collect JS wrappers of nodes in the mutation records waiting to be delivered
rniwa@webkit.org [Wed, 3 Oct 2018 00:29:46 +0000 (00:29 +0000)]
GC can collect JS wrappers of nodes in the mutation records waiting to be delivered
https://bugs.webkit.org/show_bug.cgi?id=190115

Reviewed by Geoffrey Garen.

Source/WebCore:

Fixed the bug by retaining JS wrappers of elements in mutation records using GCReachableRef.

This patch deploys GCReachableRef in two places: MutationObserver where each mutation record's
target is kept alive and MutationObserverRegistration where each node which had been removed
from an observed tree is kept alive for a subtree observation.

Test: fast/dom/MutationObserver/mutation-observer-retains-js-wrappers-of-targets-alive.html

* dom/GCReachableRef.h:
(WebCore::GCReachableRef): Made it work with hash table.
(WebCore::GCReachableRef::operator T& const):
(WebCore::GCReachableRef::GCReachableRef):
(WebCore::GCReachableRef::isHashTableDeletedValue const):
(WebCore::GCReachableRef::isHashTableEmptyValue const):
(WebCore::GCReachableRef::ptrAllowingHashTableEmptyValue const):
(WebCore::GCReachableRef::ptrAllowingHashTableEmptyValue):
(WebCore::GCReachableRef::assignToHashTableEmptyValue):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::emptyValue):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::constructEmptyValue):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::isEmptyValue):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::assignToEmpty):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::peek):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::take):
* dom/MutationObserver.cpp:
(WebCore::MutationObserver::takeRecords): Don't clear m_pendingTargets because that would allow wrappers
to be collected before elements in mutation records are accessed. We delay until the end of the current
microtask at which point deliver() function is called.
(WebCore::MutationObserver::disconnect):
(WebCore::MutationObserver::enqueueMutationRecord): Add the target to the list of elements to keep alive.
This is needed for a newly inserted node, a node with attribute change, etc...
(WebCore::MutationObserver::deliver): Keep the set of transient registration targets alive until mutation
records are delivered to each observer. These are nodes which had been removed from a tree and whose
subtree had still been obsreved up until this point.
* dom/MutationObserver.h:
* dom/MutationObserverRegistration.cpp:
(WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):
(WebCore::MutationObserverRegistration::takeTransientRegistrations): Return the hash set of elemenets
that need to be kept alive so that MutationObserver::deliver can keep them alive until the deliver
function had been called.
(WebCore::MutationObserverRegistration::addRegistrationNodesToSet const):
* dom/MutationObserverRegistration.h:

LayoutTests:

Added a regression test.

* fast/dom/MutationObserver/mutation-observer-retains-js-wrappers-of-targets-alive-expected.txt: Added.
* fast/dom/MutationObserver/mutation-observer-retains-js-wrappers-of-targets-alive.html: Added.

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

11 months agoWeb Inspector: Styles: start editing property name/value on mouseup instead of mousedown
nvasilyev@apple.com [Wed, 3 Oct 2018 00:29:42 +0000 (00:29 +0000)]
Web Inspector: Styles: start editing property name/value on mouseup instead of mousedown
https://bugs.webkit.org/show_bug.cgi?id=190114
<rdar://problem/44891030>

Reviewed by Matt Baker.

This change only affects the experimental multiple properties selection.

* UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
(WI.SpreadsheetCSSStyleDeclarationSection):
* UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
(.multiple-properties-selection .spreadsheet-style-declaration-editor :matches(.name, .value):not(.editing)):
Without this code, the focus outline flickers on click (after mousedown but before mouseup event).

* UserInterface/Views/SpreadsheetTextField.js:
(WI.SpreadsheetTextField):
(WI.SpreadsheetTextField.prototype._handleMouseUp):

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

11 months agoradio / checkbox inputs should fire "click, input, change" events in order when clicked
cdumez@apple.com [Wed, 3 Oct 2018 00:28:21 +0000 (00:28 +0000)]
radio / checkbox inputs should fire "click, input, change" events in order when clicked
https://bugs.webkit.org/show_bug.cgi?id=190223

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline a few WPT tests that are now passing. I have verified that those are passing in Gecko and Blink
as well.

* web-platform-tests/html/semantics/forms/the-input-element/checkbox-click-events-expected.txt:
* web-platform-tests/html/semantics/forms/the-input-element/checkbox-expected.txt:
* web-platform-tests/html/semantics/forms/the-input-element/radio-expected.txt:

Source/WebCore:

radio / checkbox inputs should fire "click, input, change" events in order when clicked:
- https://html.spec.whatwg.org/#radio-button-state-(type=radio)
- https://html.spec.whatwg.org/#checkbox-state-(type=checkbox)
- https://dom.spec.whatwg.org/#ref-for-eventtarget-activation-behavior③ (step 11)

Gecko and Blink already behave this way. However, WebKit has the following issues:
- the input event is not fired
- the click event is fired after the change event

No new tests, updated / rebaselined existing tests.

* html/BaseCheckableInputType.cpp:
(WebCore::BaseCheckableInputType::fireInputAndChangeEvents):
* html/BaseCheckableInputType.h:
* html/CheckboxInputType.cpp:
(WebCore::CheckboxInputType::willDispatchClick):
(WebCore::CheckboxInputType::didDispatchClick):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setChecked):
* html/HTMLInputElement.h:
* html/RadioInputType.cpp:
(WebCore::RadioInputType::willDispatchClick):
(WebCore::RadioInputType::didDispatchClick):

LayoutTests:

Update existing test to reflect behavior change. I have verified that our new behavior
on this test is consistent with Gecko and Chrome.

* fast/forms/radio/radio-group-keyboard-change-event-expected.txt:
* fast/forms/radio/radio-group-keyboard-change-event.html:

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

11 months agofieldset.elements should return an HTMLCollection instead of an HTMLFormControlsColle...
cdumez@apple.com [Wed, 3 Oct 2018 00:26:41 +0000 (00:26 +0000)]
fieldset.elements should return an HTMLCollection instead of an HTMLFormControlsCollection
https://bugs.webkit.org/show_bug.cgi?id=190218

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline existing WPT test now that it is passing.

* web-platform-tests/html/semantics/forms/the-fieldset-element/HTMLFieldSetElement-expected.txt:

Source/WebCore:

fieldset.elements should return an HTMLCollection instead of an HTMLFormControlsCollection:
- https://github.com/whatwg/html/commit/8beedf0c2ffd38853caddec67490288f47afc8eb

Gecko has always behaved this way. Blink aligned with Gecko and the HTML specification in December 2016:
- https://bugs.chromium.org/p/chromium/issues/detail?id=665291

This simplifies our HTMLFieldSetElement code a lot.

Test: fast/forms/fieldset/fieldset-elements-htmlcollection.html

* html/CollectionType.h:
* html/GenericCachedHTMLCollection.cpp:
(WebCore::GenericCachedHTMLCollection<traversalType>::elementMatches const):
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::rootTypeFromCollectionType):
(WebCore::invalidationTypeExcludingIdAndNameAttributes):
* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::elements):
* html/HTMLFieldSetElement.h:
* html/HTMLFieldSetElement.idl:
* html/HTMLFormControlsCollection.cpp:
(WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection):
(WebCore:: const):
(WebCore::HTMLFormControlsCollection::copyFormControlElementsVector const):
(WebCore::HTMLFormControlsCollection::ownerNode const):
(WebCore::HTMLFormControlsCollection::updateNamedElementCache const):
* html/HTMLFormControlsCollection.h:

LayoutTests:

Update existing tests to reflect behavior change, after checking that our behavior is consistent
with Gecko and Blink on these tests.

* fast/forms/fieldset/fieldset-elements-expected.txt:
* fast/forms/fieldset/fieldset-elements-htmlcollection-expected.txt: Added.
* fast/forms/fieldset/fieldset-elements-htmlcollection.html: Added.
* fast/forms/fieldset/fieldset-elements.html:
* fast/forms/fieldset/fieldset-form-collection-radionode-list-expected.txt: Removed.
* fast/forms/fieldset/fieldset-form-collection-radionode-list.html: Removed.

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

11 months agoWeb Inspector: prevent layer events from firing until the layer information is re...
drousso@apple.com [Wed, 3 Oct 2018 00:25:10 +0000 (00:25 +0000)]
Web Inspector: prevent layer events from firing until the layer information is re-requested
https://bugs.webkit.org/show_bug.cgi?id=190159

Reviewed by Joseph Pecoraro.

Source/WebCore:

Test: inspector/layers/layerTreeDidChange.html

* inspector/agents/InspectorLayerTreeAgent.h:
* inspector/agents/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::reset):
(WebCore::InspectorLayerTreeAgent::layerTreeDidChange):
(WebCore::InspectorLayerTreeAgent::layersForNode):

Source/WebInspectorUI:

* UserInterface/Controllers/LayerTreeManager.js:
(WI.LayerTreeManager):
(WI.LayerTreeManager.prototype.get supported):
Remove `supported` member variable in favor of re-evaluating its value.

* UserInterface/Protocol/LayerTreeObserver.js:
(WI.LayerTreeObserver.prototype.layerTreeDidChange):

LayoutTests:

* inspector/layers/layerTreeDidChange-expected.txt: Added.
* inspector/layers/layerTreeDidChange.html: Added.

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

11 months agoWeb Inspector: REGRESSION(r236766): WI.IssueManager no longer exists
drousso@apple.com [Wed, 3 Oct 2018 00:21:57 +0000 (00:21 +0000)]
Web Inspector: REGRESSION(r236766): WI.IssueManager no longer exists
https://bugs.webkit.org/show_bug.cgi?id=190226

Reviewed by Joseph Pecoraro.

* UserInterface/Controllers/ConsoleManager.js:
(WI.ConsoleManager.prototype.issuesForSourceCode):

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

11 months agoDeprecate WKConnection
commit-queue@webkit.org [Wed, 3 Oct 2018 00:13:09 +0000 (00:13 +0000)]
Deprecate WKConnection
https://bugs.webkit.org/show_bug.cgi?id=190147

Patch by Alex Christensen <achristensen@webkit.org> on 2018-10-02
Reviewed by Andy Estes.

* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
* UIProcess/API/Cocoa/WKConnection.h:
* UIProcess/API/Cocoa/WKConnection.mm:
(didReceiveMessage):
(didClose):
* UIProcess/API/Cocoa/WKConnectionInternal.h:
* UIProcess/API/Cocoa/WKProcessGroup.h:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm:

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

11 months agoWeb Automation: tab default key handler should always cycle focus when page is contro...
bburg@apple.com [Tue, 2 Oct 2018 23:55:42 +0000 (23:55 +0000)]
Web Automation: tab default key handler should always cycle focus when page is controlled by automation
https://bugs.webkit.org/show_bug.cgi?id=190221
<rdar://problem/44914534>

Reviewed by Joseph Pecoraro.

This change progresses WPT WebDriver test special_keys.py::test_webdriver_special_key_sends_keydown[TAB-expected24].

* page/FocusController.cpp:
(WebCore::FocusController::advanceFocusInDocumentOrder):
Always cycle focus if the page is controlled by automation. If the chrome takes
focus, then the first responder will be something other than the WebView, which
causes subsequent WebDriver commands to hang.

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

11 months ago[macOS] Switching to discrete GPU should be done in the UI process
dino@apple.com [Tue, 2 Oct 2018 23:42:38 +0000 (23:42 +0000)]
[macOS] Switching to discrete GPU should be done in the UI process
https://bugs.webkit.org/show_bug.cgi?id=189361
<rdar://problem/43949622>

Reviewed by Simon Fraser.

Source/WebCore:

Based on an earlier patch by Per Arne Vollan.

Due to the fact we can't talk to the Window Server, the Web Process can
no longer muxing to the discrete GPU directly. Instead we have to get the
UI Process to process the change. Do this by adding a new Chrome client
called GPUClient, that will have implementations provided by both WebKit
and legacy WebKit.

Unfortunately this can't be tested by a regular WKTR since:
- it requires specific hardware
- swapping to/from the discrete GPU takes about 20 seconds
- running concurrent tests could confuse the tests into thinking
  the wrong GPU is active

Instead we'll write a specific test for this functionality and
run it on a separate bot.

* WebCore.xcodeproj/project.pbxproj: Add GPUClient files.

* page/Chrome.cpp: Drive by clean-up.
(WebCore::Chrome::windowScreenDidChange):

* platform/graphics/GraphicsContext3D.h: We need to keep track of
whether we've muxed for this context, in order to not respond to
the screen change notifications (they are misleading in the case
of muxing).

* platform/graphics/GraphicsContext3DManager.cpp: Rather than try
to mux directly, call into GPUClient.
(WebCore::GraphicsContext3DManager::displayWasReconfigured):
(WebCore::GraphicsContext3DManager::updateHighPerformanceState):
(WebCore::GraphicsContext3DManager::disableHighPerformanceGPUTimerFired):
(WebCore::GraphicsContext3DManager::recycleContextIfNecessary):
* platform/graphics/GraphicsContext3DManager.h:

* platform/graphics/cocoa/GraphicsContext3DCocoa.mm: Only reconfigure
the virtual display if it didn't happen from muxing.
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::updateCGLContext):
(WebCore::GraphicsContext3D::screenDidChange):

* platform/graphics/mac/GPUClient.cpp: Added.
(WebCore::GPUClient::singleton):
(WebCore::GPUClient::setSingleton):
* platform/graphics/mac/GPUClient.h: Added.

* testing/Internals.cpp: Testing helper.
(WebCore::Internals::hasMuxableGPU):
* testing/Internals.h:
* testing/Internals.idl:

Source/WebKit:

Implement the UI-side process for triggering a GPU mux.

* Platform/Logging.h: Add a WebGL logging channel.

* SourcesCocoa.txt: Add the new files: WebGPUClient and HighPerformanceGPUManager.

* UIProcess/Cocoa/WebProcessProxyCocoa.mm: UI process calls that use HighPerformanceGPUManager
to keep track of whether or not this process needs the high-performance GPU.
(WebKit::WebProcessProxy::requestHighPerformanceGPU):
(WebKit::WebProcessProxy::releaseHighPerformanceGPU):

* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::~WebProcessProxy): Make sure to unregister with the HighPerformanceGPUManager
as the process disappears without manually removing itself (e.g. crashes).
* UIProcess/WebProcessProxy.h:
* UIProcess/WebProcessProxy.messages.in: New messages.

* UIProcess/mac/HighPerformanceGPUManager.cpp: New class that copies most of what used
to live in GraphicsContext3DManager. It creates a CGLPixelFormat object when it sees
that at least one process needs the high-performance GPU.
(WebKit::HighPerformanceGPUManager::singleton):
(WebKit::HighPerformanceGPUManager::addProcessRequiringHighPerformance):
(WebKit::HighPerformanceGPUManager::removeProcessRequiringHighPerformance):
(WebKit::HighPerformanceGPUManager::updateState):
* UIProcess/mac/HighPerformanceGPUManager.h: Added.

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

* WebProcess/WebCoreSupport/mac/WebGPUClient.cpp: Implementation of the GPUClient for
WebCore, which sends messages to the UI process.
(WebKit::WebGPUClient::singleton):
(WebKit::WebGPUClient::requestHighPerformanceGPU):
(WebKit::WebGPUClient::releaseHighPerformanceGPU):
* WebProcess/WebCoreSupport/mac/WebGPUClient.h: Added.

* WebProcess/cocoa/WebProcessCocoa.mm: Register the GPUClient.
(WebKit::WebProcess::platformInitializeProcess):

Source/WebKitLegacy:

* WebKitLegacy.xcodeproj/project.pbxproj: Add new files.

Source/WebKitLegacy/mac:

Implement a no-op GPUClient instance in legacy WebKit. We will
not support swapping to the discrete GPU in this configuration.

* WebCoreSupport/WebGPUClient.cpp: Added.
(WebKit::WebGPUClient::singleton):
* WebCoreSupport/WebGPUClient.h: Added.
* WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):

Source/WTF:

Define GL_SILENCE_DEPRECATION to avoid deprecation warnings for OpenGL.

* wtf/Platform.h:

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

11 months agoFix a potential crash in NetworkProcess::deleteWebsiteDataForOrigins
sihui_liu@apple.com [Tue, 2 Oct 2018 23:02:39 +0000 (23:02 +0000)]
Fix a potential crash in NetworkProcess::deleteWebsiteDataForOrigins
https://bugs.webkit.org/show_bug.cgi?id=190220

Reviewed by Chris Dumez.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):

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

11 months agoRefresh imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta...
cdumez@apple.com [Tue, 2 Oct 2018 22:59:15 +0000 (22:59 +0000)]
Refresh imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh
https://bugs.webkit.org/show_bug.cgi?id=190212

Reviewed by Youenn Fablet.

Refresh imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh
from upstream f15449622a76d0.

* web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/parsing-expected.txt:
* web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/parsing.html:
* web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/remove-from-document-expected.txt:
* web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/support/refresh.sub.html: Added.
* web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/support/w3c-import.log:

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

11 months ago[WebKit2] Format > Bold and Format > Italic don't toggle between bold and italic...
wenson_hsieh@apple.com [Tue, 2 Oct 2018 22:53:37 +0000 (22:53 +0000)]
[WebKit2] Format > Bold and Format > Italic don't toggle between bold and italic style
https://bugs.webkit.org/show_bug.cgi?id=179787
<rdar://problem/35593389>

Reviewed by Tim Horton.

Source/WebKit:

Fixes the bug by relaxing our policy in WebViewImpl::updateFontManagerIfNeeded. Instead of updating only when
the font panel is visible, update when either the font panel is visible, or the selection is in a richly
editable area. In the latter case, an up-to-date NSFontManager state is needed in order for certain font
formatting menu items, such as bold and italic, to correctly toggle state.

Test: FontManagerTests.ToggleBoldAndItalicWithMenuItems

* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(-[WKWindowVisibilityObserver observeValueForKeyPath:ofObject:change:context:]):
(WebKit::WebViewImpl::selectionDidChange):
(WebKit::WebViewImpl::updateFontManagerIfNeeded):

Rename updateFontPanelIfNeeded to updateFontManagerIfNeeded, to reflect the new behavior.

(WebKit::WebViewImpl::changeFontAttributesFromSender):
(WebKit::WebViewImpl::changeFontFromFontManager):
(WebKit::WebViewImpl::updateFontPanelIfNeeded): Deleted.

Tools:

Add a test to verify that NSFontManager's selected font is updated when applying italic and bold styles using
menu items.

* TestWebKitAPI/Tests/mac/FontManagerTests.mm:
(webViewForFontManagerTesting):
(menuItemCellForFontAction):
(TestWebKitAPI::TEST):

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

11 months agoImage.__proto__ should be Function.prototype, not HTMLElement.prototype
cdumez@apple.com [Tue, 2 Oct 2018 22:53:33 +0000 (22:53 +0000)]
Image.__proto__ should be Function.prototype, not HTMLElement.prototype
https://bugs.webkit.org/show_bug.cgi?id=190216

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline existing WPT test now that it is passing.

* web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor-expected.txt:

Source/WebCore:

Properties created for named constructors should always use Function.prototype as prototype, as per:
- https://heycam.github.io/webidl/#named-constructors

Gecko and Blink agree with the Web IDL specification. However, WebKit was using the parent interface's
prototype if such a parent existing. So Image.__proto__ would end up being HTMLElement.prototype
instead of Function.prototype.

No new tests, rebaselined existing test.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateConstructorHelperMethods):

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

11 months agoFix Disassembler-output on ARM Thumb2
commit-queue@webkit.org [Tue, 2 Oct 2018 22:53:26 +0000 (22:53 +0000)]
Fix Disassembler-output on ARM Thumb2
https://bugs.webkit.org/show_bug.cgi?id=190203

On ARMv7 with Thumb2 addresses have bit 0 set to 1 to force
execution in thumb mode for jumps and calls. The actual machine
instructions are still aligned to 2-bytes though. Use dataLocation() as
start address for disassembling since it unsets the thumb bit.
Until now the disassembler would start at the wrong address (off by 1),
resulting in the wrong disassembled machine instructions.

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-10-02
Reviewed by Mark Lam.

* disassembler/CapstoneDisassembler.cpp:
(JSC::tryToDisassemble):

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

11 months agoPrepare WebCoreNSURLExtras for ARC
achristensen@apple.com [Tue, 2 Oct 2018 22:34:09 +0000 (22:34 +0000)]
Prepare WebCoreNSURLExtras for ARC
https://bugs.webkit.org/show_bug.cgi?id=190219

Reviewed by Tim Horton.

ARC doesn't like the explicit sending of -release.
Use RetainPtr instead.

* platform/mac/WebCoreNSURLExtras.mm:
(WebCore::collectRangesThatNeedMapping):
(WebCore::collectRangesThatNeedEncoding):
(WebCore::collectRangesThatNeedDecoding):
(WebCore::applyHostNameFunctionToMailToURLString):
(WebCore::applyHostNameFunctionToURLString):
(WebCore::mapHostNames):
(WebCore::stringByTrimmingWhitespace):
(WebCore::URLWithUserTypedString):
(WebCore::userVisibleString):
(WebCore::rangeOfURLScheme):
(WebCore::looksLikeAbsoluteURL):
(WebCore::retain): Deleted.

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

11 months agoWeb Inspector: rename frontend managers to be more consistent with backend agents
drousso@apple.com [Tue, 2 Oct 2018 22:14:52 +0000 (22:14 +0000)]
Web Inspector: rename frontend managers to be more consistent with backend agents
https://bugs.webkit.org/show_bug.cgi?id=190160

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

* UserInterface/Test.html:
* UserInterface/Test/Test.js:
* UserInterface/Main.html:
* UserInterface/Base/Main.js:
* UserInterface/Base/DOMUtilities.js:
* UserInterface/Controllers/ApplicationCacheManager.js:
* UserInterface/Controllers/CSSManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/CSSStyleManager.js.
* UserInterface/Controllers/ConsoleManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/LogManager.js.
* UserInterface/Controllers/DOMDebuggerManager.js:
* UserInterface/Controllers/DOMManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/DOMTreeManager.js.
* UserInterface/Controllers/DOMStorageManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/StorageManager.js.
* UserInterface/Controllers/DashboardManager.js: Removed.
* UserInterface/Controllers/DatabaseManager.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DOMStorageManager.js.
* UserInterface/Controllers/HARBuilder.js:
* UserInterface/Controllers/IndexedDBManager.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DOMStorageManager.js.
* UserInterface/Controllers/IssueManager.js: Removed.
* UserInterface/Controllers/JavaScriptLogViewController.js:
* UserInterface/Controllers/NetworkManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/FrameResourceManager.js.
* UserInterface/Controllers/SourceMapManager.js:
* UserInterface/Controllers/TimelineManager.js:
* UserInterface/Debug/UncaughtExceptionReporter.js:
* UserInterface/Models/CSSProperty.js:
* UserInterface/Models/CSSSelector.js:
* UserInterface/Models/CallFrame.js:
* UserInterface/Models/Canvas.js:
* UserInterface/Models/ConsoleMessage.js:
* UserInterface/Models/DOMBreakpoint.js:
* UserInterface/Models/DOMNode.js:
* UserInterface/Models/DOMNodeStyles.js:
* UserInterface/Models/DOMTree.js:
* UserInterface/Models/DefaultDashboard.js:
* UserInterface/Models/Script.js:
* UserInterface/Models/ScriptTimelineRecord.js:
* UserInterface/Models/SourceMapResource.js:
* UserInterface/Models/TimelineRecording.js:
* UserInterface/Protocol/CSSObserver.js:
* UserInterface/Protocol/ConsoleObserver.js:
* UserInterface/Protocol/DOMObserver.js:
* UserInterface/Protocol/DOMStorageObserver.js:
* UserInterface/Protocol/DatabaseObserver.js:
* UserInterface/Protocol/InspectorFrontendAPI.js:
* UserInterface/Protocol/InspectorObserver.js:
* UserInterface/Protocol/MainTarget.js:
* UserInterface/Protocol/NetworkObserver.js:
* UserInterface/Protocol/PageObserver.js:
* UserInterface/Protocol/RemoteObject.js:
* UserInterface/Protocol/RuntimeObserver.js:
* UserInterface/Protocol/WorkerTarget.js:
* UserInterface/Views/BoxModelDetailsSectionRow.js:
* UserInterface/Views/CanvasOverviewContentView.js:
* UserInterface/Views/CanvasTreeElement.js:
* UserInterface/Views/ContentView.js:
* UserInterface/Views/ContextMenuUtilities.js:
* UserInterface/Views/CookieStorageContentView.js:
* UserInterface/Views/DOMDetailsSidebarPanel.js:
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
* UserInterface/Views/DOMNodeTreeElement.js:
* UserInterface/Views/DOMTreeContentView.js:
* UserInterface/Views/DOMTreeDataGrid.js:
* UserInterface/Views/DOMTreeElement.js:
* UserInterface/Views/DOMTreeElementPathComponent.js:
* UserInterface/Views/DOMTreeOutline.js:
* UserInterface/Views/DOMTreeUpdater.js:
* UserInterface/Views/DebuggerSidebarPanel.js:
* UserInterface/Views/ElementsTabContentView.js:
* UserInterface/Views/EventBreakpointPopover.js:
* UserInterface/Views/EventBreakpointTreeElement.js:
* UserInterface/Views/EventListenerSectionGroup.js:
* UserInterface/Views/FormattedValue.js:
* UserInterface/Views/FrameTreeElement.js:
* UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
* UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
* UserInterface/Views/LayerDetailsSidebarPanel.js:
* UserInterface/Views/LayerTreeDataGridNode.js:
* UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
* UserInterface/Views/Layers3DContentView.js:
* UserInterface/Views/LogContentView.js:
* UserInterface/Views/NetworkTableContentView.js:
* UserInterface/Views/ObjectTreeBaseTreeElement.js:
* UserInterface/Views/ObjectTreeView.js:
* UserInterface/Views/OpenResourceDialog.js:
* UserInterface/Views/ResourceSidebarPanel.js:
* UserInterface/Views/SearchSidebarPanel.js:
* UserInterface/Views/SettingsTabContentView.js:
* UserInterface/Views/SourceCodeTextEditor.js:
* UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
* UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
* UserInterface/Views/StorageSidebarPanel.js:
* UserInterface/Views/StyleDetailsPanel.js:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:

LayoutTests:

* http/tests/inspector/dom/cross-domain-inspected-node-access.html:
* http/tests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation.html:
* http/tests/inspector/dom/shapes-test.js:
* http/tests/inspector/network/har/har-page.html:
* http/tests/inspector/network/loadResource-insecure-resource.html:
* http/tests/inspector/network/resource-response-source-memory-cache-revalidate-expired-only.html:
* http/tests/inspector/network/resource-response-source-memory-cache.html:
* http/tests/inspector/network/resource-sizes-memory-cache.html:
* http/tests/inspector/network/set-resource-caching-disabled-memory-cache.html:
* http/tests/websocket/tests/hybi/inspector/before-load.html:
* http/tests/websocket/tests/hybi/inspector/resolveWebSocket.html:
* inspector/canvas/requestNode.html:
* inspector/codemirror/resources/prettyprinting/utilities.js:
(TestPage.registerInitializer.loadPrettyPrintingTestAndExpectedResults):
(TestPage.registerInitializer.window.addPrettyPrintingTests):
(TestPage.registerInitializer):
* inspector/console/clearMessages.html:
* inspector/console/command-line-api.html:
* inspector/console/console-api.html:
* inspector/console/console-count.html:
* inspector/console/console-table.html:
* inspector/console/console-time.html:
* inspector/console/message-stack-trace.html:
* inspector/console/messageAdded-from-named-evaluations.html:
* inspector/console/messageRepeatCountUpdated.html:
* inspector/console/messagesCleared.html:
* inspector/console/webcore-logging-expected.txt:
* inspector/console/webcore-logging.html:
* inspector/controller/runtime-controller-import.html:
* inspector/controller/runtime-controller.html:
* inspector/css/add-rule.html:
* inspector/css/createStyleSheet.html:
* inspector/css/css-property.html:
* inspector/css/getAllStyleSheets.html:
* inspector/css/manager-preferredInspectorStyleSheetForFrame.html:
* inspector/css/matched-style-properties.html:
* inspector/css/modify-css-property.html:
* inspector/css/modify-rule-selector.html:
* inspector/css/pseudo-element-matches-for-pseudo-element-node.html:
* inspector/css/pseudo-element-matches.html:
* inspector/css/selector-dynamic-specificity.html:
* inspector/css/selector-specificity.html:
* inspector/css/shadow-scoped-style.html:
* inspector/css/stylesheet-events-basic.html:
* inspector/css/stylesheet-events-imports.html:
* inspector/css/stylesheet-events-inspector-stylesheet.html:
* inspector/css/stylesheet-events-multiple-documents.html:
* inspector/css/stylesheet-with-mutations.html:
* inspector/debugger/csp-exceptions.html:
* inspector/debugger/js-stacktrace.html:
* inspector/debugger/resources/log-pause-location.js:
(TestPage.registerInitializer.window.findScript):
(TestPage.registerInitializer.window.loadMainPageContent):
(TestPage.registerInitializer.window.logResolvedBreakpointLinesWithContext):
(TestPage.registerInitializer.window.logLinesWithContext):
* inspector/debugger/stepping/stepping-through-autoContinue-breakpoint.html:
* inspector/dom-debugger/dom-breakpoints.html:
* inspector/dom-debugger/xhr-breakpoints.html:
* inspector/dom/breakpoint-for-event-listener.html:
* inspector/dom/csp-big5-hash.html:
* inspector/dom/csp-hash.html:
* inspector/dom/customElementState.html:
* inspector/dom/domutilities-csspath.html:
* inspector/dom/domutilities-path-dump.html:
* inspector/dom/domutilities-xpath.html:
* inspector/dom/event-listener-add-remove.html:
* inspector/dom/getEventListenersForNode.html:
* inspector/dom/getOuterHTML.html:
* inspector/dom/hideHighlight.html:
* inspector/dom/highlightFrame.html:
* inspector/dom/highlightNode.html:
* inspector/dom/highlightNodeList.html:
* inspector/dom/highlightSelector.html:
* inspector/dom/insertAdjacentHTML.html:
* inspector/dom/inspect.html:
* inspector/dom/pseudo-element-dynamic.html:
* inspector/dom/pseudo-element-static.html:
* inspector/dom/push-node-by-path-to-frontend.html:
* inspector/dom/setEventListenerDisabled.html:
* inspector/dom/setInspectedNode.html:
* inspector/dom/setOuterHTML-no-document-element.html:
* inspector/dom/setOuterHTML.html:
* inspector/dom/shadow-and-non-shadow-children.html:
* inspector/dom/shadowRootType.html:
* inspector/dom/template-content.html:
* inspector/formatting/resources/utilities.js:
(TestPage.registerInitializer.loadFormattingTestAndExpectedResults):
(TestPage.registerInitializer.window.addFormattingTests):
(TestPage.registerInitializer):
* inspector/indexeddb/clearObjectStore.html:
* inspector/indexeddb/deleteDatabaseNamesWithSpace.html:
* inspector/indexeddb/requestData.html:
* inspector/indexeddb/requestDatabase.html:
* inspector/indexeddb/requestDatabaseNames.html:
* inspector/layers/layer-tree-manager.html:
* inspector/model/dom-node.html:
* inspector/model/frame-extra-scripts.html:
* inspector/model/script-resource-relationship.html:
* inspector/model/stack-trace.html:
* inspector/page/empty-or-missing-resources.html:
* inspector/page/hidpi-snapshot-size.html:
* inspector/page/main-frame-resource.html:
* inspector/runtime/change-execution-context-identifier.html:
* inspector/runtime/saveResult.html:
* inspector/storage/domStorage-events.html:
* inspector/worker/console-basic.html:
* inspector/worker/resources-in-worker.html:

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

11 months ago[Curl] Fix missing values of resource timing API.
Basuke.Suzuki@sony.com [Tue, 2 Oct 2018 20:45:30 +0000 (20:45 +0000)]
[Curl] Fix missing values of  resource timing API.
https://bugs.webkit.org/show_bug.cgi?id=190193

Reviewed by Alex Christensen.

Source/WebCore:

The property nextHopProtocol was not returned correctly. It was
returned only when remote inspector is opened.

Tests: http/wpt/resource-timing/rt-nextHopProtocol.html
       http/wpt/resource-timing/rt-nextHopProtocol.worker.html

* platform/network/curl/CurlContext.cpp:
(WebCore::CurlHandle::getNetworkLoadMetrics):
(WebCore::CurlHandle::addExtraNetworkLoadMetrics):

LayoutTests:

* platform/wincairo/TestExpectations:

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

11 months agoREGRESSION: TestWebKitAPI.WKWebView.ProvisionalURLNotChange API test is failing
cdumez@apple.com [Tue, 2 Oct 2018 20:44:27 +0000 (20:44 +0000)]
REGRESSION: TestWebKitAPI.WKWebView.ProvisionalURLNotChange API test is failing
https://bugs.webkit.org/show_bug.cgi?id=190176
<rdar://problem/44925871>

Reviewed by Alex Christensen.

Use a URL that is truly recognized as invalid by WebCore's URL parser.

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

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

11 months agoRemove unused linked-on-or-before-iOS5 check
achristensen@apple.com [Tue, 2 Oct 2018 20:26:15 +0000 (20:26 +0000)]
Remove unused linked-on-or-before-iOS5 check
https://bugs.webkit.org/show_bug.cgi?id=190164

Reviewed by Michael Saboff.

Source/WebCore:

If an app hasn't been updated since iOS5, it can't run supported iOS.
This value is also only checked in an uninstantiated template function.

* platform/URL.cpp:
(WebCore::enableURLSchemeCanonicalization): Deleted.
(WebCore::equal): Deleted.
* platform/URL.h:

Source/WebKitLegacy/ios:

* Misc/WebUIKitSupport.mm:
(WebKitInitialize):
(linkedOnOrAfterIOS5): Deleted.

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

11 months agoRemove ParsedURLString
achristensen@apple.com [Tue, 2 Oct 2018 20:24:42 +0000 (20:24 +0000)]
Remove ParsedURLString
https://bugs.webkit.org/show_bug.cgi?id=190154

Reviewed by Chris Dumez.

Source/WebCore:

Before the introduction of URLParser, it would indicate that we should assume the String
is from a valid URL so we can skip canonicalization and just find the offsets inside the String
to quickly create a URL.  It was a performance optimization that caused security issues when
misused.  Since the introduction of URLParser, we have a fast path for all URL parsing, so
right now it actually doesn't change any behavior.  It's just a relic of the past that complicates
the URL class, making it harder to express which constructor to use and making it harder to move
the class.

* Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
(WebCore::NavigatorContentUtils::registerProtocolHandler):
(WebCore::NavigatorContentUtils::isProtocolHandlerRegistered):
(WebCore::NavigatorContentUtils::unregisterProtocolHandler):
* dom/Document.cpp:
(WebCore::Document::updateBaseURL):
(WebCore::Document::initSecurityContext):
* dom/ExtensionStyleSheets.cpp:
(WebCore::ExtensionStyleSheets::updateInjectedStyleSheetCache const):
* dom/ProcessingInstruction.cpp:
(WebCore::ProcessingInstruction::checkStyleSheet):
* editing/markup.cpp:
(WebCore::completeURLs):
* fileapi/BlobURL.cpp:
(WebCore::BlobURL::createBlobURL):
* history/HistoryItem.cpp:
(WebCore::HistoryItem::url const):
(WebCore::HistoryItem::originalURL const):
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::location const):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):
* html/PublicURLManager.cpp:
(WebCore::PublicURLManager::stop):
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheet::resourceStyleSheetText const):
* inspector/agents/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::getCookies):
(WebCore::InspectorPageAgent::deleteCookie):
(WebCore::InspectorPageAgent::getResourceContent):
(WebCore::InspectorPageAgent::searchInResource):
* inspector/agents/page/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::sourceMapURLForScript):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::subresources const):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::init):
(WebCore::FrameLoader::initForSynthesizedDocument):
* loader/HistoryController.cpp:
(WebCore::HistoryController::pushState):
(WebCore::HistoryController::replaceState):
* loader/appcache/ApplicationCache.cpp:
(WebCore::ApplicationCache::addResource):
(WebCore::ApplicationCache::resourceForURL):
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::startLoadingEntry):
(WebCore::ApplicationCacheGroup::addEntry):
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::cacheGroupForURL):
(WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
(WebCore::ApplicationCacheStorage::loadCache):
(WebCore::ApplicationCacheStorage::manifestURLs):
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::createWindow):
* page/PageSerializer.cpp:
(WebCore::PageSerializer::urlForBlankFrame):
* platform/URL.cpp:
(WebCore::blankURL):
* platform/URL.h:
(): Deleted.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::load):
* platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::populateBlobsForFileWriting):
* platform/network/ResourceRequestBase.h:
(WebCore::ResourceRequestBase::decodeBase):
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::sanitizeSuggestedFilename):
* platform/network/cf/DNSResolveQueueCFNet.cpp:
(WebCore::DNSResolveQueueCFNet::updateIsUsingProxy):
* platform/network/cf/ResourceRequest.h:
(WebCore::ResourceRequest::ResourceRequest):
* platform/network/curl/CookieJarDB.cpp:
(WebCore::CookieJarDB::searchCookies):
(WebCore::CookieJarDB::setCookie):
(WebCore::CookieJarDB::deleteCookie):
* platform/network/curl/ResourceRequest.h:
(WebCore::ResourceRequest::ResourceRequest):
* platform/network/soup/ResourceRequest.h:
(WebCore::ResourceRequest::ResourceRequest):
* xml/XSLTProcessorLibxslt.cpp:
(WebCore::docLoaderFunc):

Source/WebKit:

* NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
(WebKit::NetworkBlobRegistry::writeBlobToFilePath):
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):
* PluginProcess/PluginControllerProxy.cpp:
(WebKit::PluginControllerProxy::streamWillSendRequest):
(WebKit::PluginControllerProxy::streamDidReceiveResponse):
(WebKit::PluginControllerProxy::manualStreamDidReceiveResponse):
* Shared/API/APIUserContentURLPattern.h:
(API::UserContentURLPattern::matchesURL const):
* Shared/WebBackForwardListItem.cpp:
(WebKit::WebBackForwardListItem::itemIsInSameDocument const):
* UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:
(WebKit::RemoteInspectorProtocolHandler::handleRequest):
(WebKit::RemoteInspectorProtocolHandler::targetListChanged):
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::PluginProcessProxy::openURL):
* UIProcess/SuspendedPageProxy.cpp:
(WebKit::SuspendedPageProxy::SuspendedPageProxy):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::createNewPage):
(WebKit::WebPageProxy::processDidTerminate):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::addProcessToOriginCacheSet):
(WebKit::WebProcessPool::processForNavigationInternal):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
* UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::createShareMenuItem):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::addUserScript):
(WebKit::InjectedBundle::addUserStyleSheet):
(WebKit::InjectedBundle::removeUserScript):
(WebKit::InjectedBundle::removeUserStyleSheet):
* WebProcess/Plugins/Plugin.cpp:
(WebKit::Plugin::Parameters::decode):
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::url):
(WebKit::WebPlatformStrategies::readURLFromPasteboard):

Source/WebKitLegacy/mac:

* WebView/WebScriptDebugger.mm:
(toNSURL):

Source/WebKitLegacy/win:

* WebDownloadCurl.cpp:
(WebDownload::initWithRequest):
* WebURLResponse.cpp:
(WebURLResponse::createInstance):

Tools:

* TestWebKitAPI/Tests/WebCore/URL.cpp:
(TestWebKitAPI::TEST_F):
* TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
(TestWebKitAPI::assertUserAgentForURLHasChromeBrowserQuirk):
(TestWebKitAPI::assertUserAgentForURLHasLinuxPlatformQuirk):
(TestWebKitAPI::assertUserAgentForURLHasMacPlatformQuirk):
(TestWebKitAPI::TEST):

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

11 months agoFix iOS TestWebKitAPI failures following <https://trac.webkit.org/changeset/236619>
dbates@webkit.org [Tue, 2 Oct 2018 19:42:25 +0000 (19:42 +0000)]
Fix iOS TestWebKitAPI failures following <https://trac.webkit.org/changeset/236619>
(https://bugs.webkit.org/show_bug.cgi?id=190017)

For now swizzle +[UIKeyboard isInHardwareKeyboardMode] to return NO in the following tests:
    WKWebViewAutofillTests.AutofillRequiresInputSession
    DragAndDropTests.ExternalSourceJPEGOnly
    DragAndDropTests.ExternalSourceUTF8PlainTextOnly

so that the presence of a hardware keyboad does not effect their results. In <https://bugs.webkit.org/show_bug.cgi?id=190211>
we will look to swizzle this method for all test by default.

* TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:
(TestWebKitAPI::overrideIsInHardwareKeyboardMode):
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:
(TestWebKitAPI::overrideIsInHardwareKeyboardMode):
(TestWebKitAPI::TEST):
* TestWebKitAPI/ios/UIKitSPI.h:

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

11 months ago[JSC] Add stub of ExecutableAllocator used when JIT is disabled
yusukesuzuki@slowstart.org [Tue, 2 Oct 2018 19:01:28 +0000 (19:01 +0000)]
[JSC] Add stub of ExecutableAllocator used when JIT is disabled
https://bugs.webkit.org/show_bug.cgi?id=190215

Reviewed by Mark Lam.

When ENABLE(JIT) is disabled, we do not use JIT. But we ExecutableAllocator is still available since
it is guarded by ENABLE(ASSEMBLER). ENABLE(ASSEMBLER) is necessary for LLInt ASM interpreter since
our MacroAssembler tells machine architecture information. Eventually, we would like to decouple
this machine architecture information from MacroAssembler. But for now, we use ENABLE(ASSEMBLER)
for LLInt ASM interpreter even if JIT is disabled by ENABLE(JIT).

To ensure any executable memory allocation is not done, we add a stub of ExecutableAllocator for
non-JIT configurations. This does not have any functionality allocating executable memory, thus
any accidental operation cannot attempt to allocate executable memory if ENABLE(JIT) = OFF.

* jit/ExecutableAllocator.cpp:
(JSC::ExecutableAllocator::initializeAllocator):
(JSC::ExecutableAllocator::singleton):
* jit/ExecutableAllocator.h:
(JSC::ExecutableAllocator::isValid const):
(JSC::ExecutableAllocator::underMemoryPressure):
(JSC::ExecutableAllocator::memoryPressureMultiplier):
(JSC::ExecutableAllocator::dumpProfile):
(JSC::ExecutableAllocator::allocate):
(JSC::ExecutableAllocator::isValidExecutableMemory):
(JSC::ExecutableAllocator::committedByteCount):
(JSC::ExecutableAllocator::getLock const):
(JSC::performJITMemcpy):

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

11 months agoUnreviewed, rolling out r236751.
realdawei@apple.com [Tue, 2 Oct 2018 18:39:08 +0000 (18:39 +0000)]
Unreviewed, rolling out r236751.

broke the iOS Build

Reverted changeset:

"Fix iOS TestWebKitAPI failures following
<https://trac.webkit.org/changeset/236619>"
https://bugs.webkit.org/show_bug.cgi?id=190017
https://trac.webkit.org/changeset/236751

Patch by Dawei Fenton <realdawei@apple.com> on 2018-10-02

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

11 months ago[WebVTT] Cue with line setting is not rendered correctly
pvollan@apple.com [Tue, 2 Oct 2018 18:36:32 +0000 (18:36 +0000)]
[WebVTT] Cue with line setting is not rendered correctly
https://bugs.webkit.org/show_bug.cgi?id=190168

Reviewed by Eric Carlson.

Source/WebCore:

When the line setting contains an optional alignment value, the cue is not rendered at the correct position,
see https://w3c.github.io/webvtt/#webvtt-line-cue-setting. This patch does not implement correct handling of
the line setting alignment values, it only makes sure parsing does not fail when the cue has line alignment
settings.

Test: media/track/track-cue-line-position.html

* html/track/VTTCue.cpp:
(WebCore::VTTCueBox::applyCSSProperties):
(WebCore::VTTCue::getPositionCoordinates const):
(WebCore::VTTCue::setCueSettings):

LayoutTests:

* media/track/captions-webvtt/line-position.vtt: Added.
* media/track/track-cue-line-position-expected-mismatch.html: Added.
* media/track/track-cue-line-position.html: Added.

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

11 months agoUser installed fonts are not always disabled when they should be
antti@apple.com [Tue, 2 Oct 2018 17:57:41 +0000 (17:57 +0000)]
User installed fonts are not always disabled when they should be
https://bugs.webkit.org/show_bug.cgi?id=190195

Reviewed by Geoffrey Garen.

SVG images and some theme cases fail to respect the setting. Besides the obvious problem this
is also a performance issue as various font caches include this setting in the key.

* platform/graphics/FontDescription.cpp:
(WebCore::m_shouldAllowUserInstalledFonts):

Initialize to 'No' by default. All paths where user fonts make sense already set the bit from
settings. This fixes some cases in system themes that construct FontDescriptions from scratch.

* rendering/RenderElement.cpp:
(WebCore::RenderElement::styleWillChange):

Add assertion. This verified the change with the existing tests.

* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):

Always disallow user fonts in SVG used as images.

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

11 months ago[GTK] fast/forms/color/input-appearance-color.html is failing
commit-queue@webkit.org [Tue, 2 Oct 2018 17:52:04 +0000 (17:52 +0000)]
[GTK] fast/forms/color/input-appearance-color.html is failing
https://bugs.webkit.org/show_bug.cgi?id=189350

Patch by Carlos Eduardo Ramalho <cadubentzen@gmail.com> on 2018-10-02
Reviewed by Michael Catanzaro.

Update test expectations to match changes introduced in r235435.

* platform/gtk/TestExpectations:
* platform/gtk/fast/forms/color/input-appearance-color-expected.png:
* platform/gtk/fast/forms/color/input-appearance-color-expected.txt:

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

11 months agoFix iOS TestWebKitAPI failures following <https://trac.webkit.org/changeset/236619>
dbates@webkit.org [Tue, 2 Oct 2018 17:49:41 +0000 (17:49 +0000)]
Fix iOS TestWebKitAPI failures following <https://trac.webkit.org/changeset/236619>
(https://bugs.webkit.org/show_bug.cgi?id=190017)

For now swizzle +[UIKeyboard isInHardwareKeyboardMode] to return NO in the following tests:
    WKWebViewAutofillTests.AutofillRequiresInputSession
    DragAndDropTests.ExternalSourceJPEGOnly
    DragAndDropTests.ExternalSourceUTF8PlainTextOnly

so that the presence of a hardware keyboad does not effect their results. In <https://bugs.webkit.org/show_bug.cgi?id=190211>
we will look to swizzle this method for all test by default.

* TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:
(TestWebKitAPI::overrideIsInHardwareKeyboardMode):
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:
(TestWebKitAPI::overrideIsInHardwareKeyboardMode):
(TestWebKitAPI::TEST):
* TestWebKitAPI/ios/UIKitSPI.h:

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

11 months agoRemove CSS Animation Triggers
dino@apple.com [Tue, 2 Oct 2018 17:36:05 +0000 (17:36 +0000)]
Remove CSS Animation Triggers
https://bugs.webkit.org/show_bug.cgi?id=190175
<rdar://problem/44925626>

Reviewed by Simon Fraser.

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Remove the never-properly specified CSS Animation Triggers.

* Configurations/FeatureDefines.xcconfig:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSAnimationTriggerScrollValue.cpp: Removed.
* css/CSSAnimationTriggerScrollValue.h: Removed.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyinStyle):
(WebCore::createAnimationTriggerValue): Deleted.
(WebCore::animationTriggerValue): Deleted.
* css/CSSProperties.json:
* css/CSSToStyleMap.cpp:
(WebCore::CSSToStyleMap::mapAnimationTrigger): Deleted.
* css/CSSToStyleMap.h:
* css/CSSValue.cpp:
(WebCore::CSSValue::equals const):
(WebCore::CSSValue::cssText const):
(WebCore::CSSValue::destroy):
* css/CSSValue.h:
(WebCore::CSSValue::isAnimationTriggerScrollValue const): Deleted.
* css/parser/CSSPropertyParser.cpp:
(WebCore::consumeAnimationValue):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::consumeWebkitAnimationTrigger): Deleted.
* page/FrameView.cpp:
(WebCore::FrameView::sendScrollEvent):
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setAnimationTriggersEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::animationTriggersEnabled const): Deleted.
* page/animation/AnimationBase.cpp:
(WebCore::AnimationBase::updateStateMachine):
(WebCore::AnimationBase::fireAnimationEventsIfNeeded):
(WebCore::AnimationBase::timeToNextService):
(WebCore::AnimationBase::getElapsedTime const):
* page/animation/CSSAnimationController.cpp:
(WebCore::CSSAnimationControllerPrivate::animationWillBeRemoved):
(WebCore::CSSAnimationControllerPrivate::addToAnimationsDependentOnScroll): Deleted.
(WebCore::CSSAnimationControllerPrivate::removeFromAnimationsDependentOnScroll): Deleted.
(WebCore::CSSAnimationControllerPrivate::scrollWasUpdated): Deleted.
(WebCore::CSSAnimationController::wantsScrollUpdates const): Deleted.
(WebCore::CSSAnimationController::scrollWasUpdated): Deleted.
* page/animation/CSSAnimationController.h:
* page/animation/CSSAnimationControllerPrivate.h:
(WebCore::CSSAnimationControllerPrivate::wantsScrollUpdates const): Deleted.
(WebCore::CSSAnimationControllerPrivate::scrollPosition const): Deleted.
* page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::updateKeyframeAnimations):
* page/animation/CompositeAnimation.h:
(WebCore::CompositeAnimation::hasScrollTriggeredAnimation const): Deleted.
* platform/animation/Animation.cpp:
(WebCore::Animation::Animation):
(WebCore::Animation::operator=):
(WebCore::Animation::animationsMatch const):
* platform/animation/Animation.h:
(WebCore::Animation::isTimingFunctionSet const):
(WebCore::Animation::isEmpty const):
(WebCore::Animation::clearTimingFunction):
(WebCore::Animation::clearAll):
(WebCore::Animation::animationMode const):
(WebCore::Animation::setAnimationMode):
(WebCore::Animation::initialTimingFunction):
(WebCore::Animation::isTriggerSet const): Deleted.
(WebCore::Animation::clearTrigger): Deleted.
(WebCore::Animation::trigger const): Deleted.
(WebCore::Animation::setTrigger): Deleted.
(WebCore::Animation::initialTrigger): Deleted.
* platform/animation/AnimationTrigger.h: Removed.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::animationCanBeAccelerated const):

Source/WebCore/PAL:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit:

* Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

* Configurations/FeatureDefines.xcconfig:

Tools:

* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

Remove a bunch of tests that no longer have an implementation.

* TestExpectations:
* animations/trigger-computed-style-expected.txt: Removed.
* animations/trigger-computed-style.html: Removed.
* animations/trigger-container-scroll-boundaries-expected.txt: Removed.
* animations/trigger-container-scroll-boundaries.html: Removed.
* animations/trigger-container-scroll-empty-expected.txt: Removed.
* animations/trigger-container-scroll-empty.html: Removed.
* animations/trigger-container-scroll-simple-expected.txt: Removed.
* animations/trigger-container-scroll-simple.html: Removed.
* animations/trigger-parsing-expected.txt: Removed.
* animations/trigger-parsing.html: Removed.
* fast/css/compare-animation-trigger-expected.txt: Removed.
* fast/css/compare-animation-trigger.html: Removed.
* legacy-animation-engine/animations/trigger-computed-style-expected.txt: Removed.
* legacy-animation-engine/animations/trigger-computed-style.html: Removed.
* legacy-animation-engine/animations/trigger-container-scroll-boundaries-expected.txt: Removed.
* legacy-animation-engine/animations/trigger-container-scroll-boundaries.html: Removed.
* legacy-animation-engine/animations/trigger-container-scroll-empty-expected.txt: Removed.
* legacy-animation-engine/animations/trigger-container-scroll-empty.html: Removed.
* legacy-animation-engine/animations/trigger-container-scroll-simple-expected.txt: Removed.
* legacy-animation-engine/animations/trigger-container-scroll-simple.html: Removed.
* legacy-animation-engine/animations/trigger-parsing-expected.txt: Removed.
* legacy-animation-engine/animations/trigger-parsing.html: Removed.
* legacy-animation-engine/fast/css/compare-animation-trigger-expected.txt: Removed.
* legacy-animation-engine/fast/css/compare-animation-trigger.html: Removed.
* platform/gtk/TestExpectations:
* platform/ios/TestExpectations:
* platform/mac-wk2/TestExpectations:
* platform/wincairo/TestExpectations:

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

11 months agoREGRESSION(r236662): Fix -Wformat warnings in CacheStorageEngineCaches.cpp
mcatanzaro@igalia.com [Tue, 2 Oct 2018 17:32:01 +0000 (17:32 +0000)]
REGRESSION(r236662): Fix -Wformat warnings in CacheStorageEngineCaches.cpp
https://bugs.webkit.org/show_bug.cgi?id=190205

Reviewed by Chris Dumez.

Passing enums to %d is not kosher, at least not according to GCC's -Wformat. Avoid it.

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

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

11 months agoUnreviewed, rolling out r236624 and r236671.
commit-queue@webkit.org [Tue, 2 Oct 2018 17:08:44 +0000 (17:08 +0000)]
Unreviewed, rolling out r236624 and r236671.
https://bugs.webkit.org/show_bug.cgi?id=190207

The change in r236624 introduced crashes on the bots
(Requested by ryanhaddad on #webkit).

Reverted changesets:

"Refactoring: eliminate raw pointer usage in Fullscreen code"
https://bugs.webkit.org/show_bug.cgi?id=188747
https://trac.webkit.org/changeset/236624

"Unify implementation in VideoFullscreenInterfaceAVKit"
https://bugs.webkit.org/show_bug.cgi?id=190091
https://trac.webkit.org/changeset/236671

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

11 months agoAdd release assertion to ensure m_owningPointerForClose is null in UniqueIDBDatabase...
sihui_liu@apple.com [Tue, 2 Oct 2018 16:46:05 +0000 (16:46 +0000)]
Add release assertion to ensure m_owningPointerForClose is null in UniqueIDBDatabase::invokeOperationAndTransactionTimer()
https://bugs.webkit.org/show_bug.cgi?id=190178

Reviewed by Chris Dumez.

This would help debug rdar://problem/44902833.

* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::invokeOperationAndTransactionTimer):

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

11 months agoWebPageProxy::reattachToWebProcess cleanups
antti@apple.com [Tue, 2 Oct 2018 16:15:04 +0000 (16:15 +0000)]
WebPageProxy::reattachToWebProcess cleanups
https://bugs.webkit.org/show_bug.cgi?id=189881

Reviewed by Chris Dumez.

Change the factoring to separate swap and crash code paths into different functions.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::swapToWebProcess):

Separate function for the swap case.

(WebKit::WebPageProxy::finishAttachingToWebProcess):

Factor the common parts here.

(WebKit::WebPageProxy::continueNavigationInNewProcess):
* UIProcess/WebPageProxy.h:

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

11 months ago[WPE] Enable more Cache Storage and Service Workers tests
commit-queue@webkit.org [Tue, 2 Oct 2018 15:55:05 +0000 (15:55 +0000)]
[WPE] Enable more Cache Storage and Service Workers tests
https://bugs.webkit.org/show_bug.cgi?id=190198

Patch by Frederic Wang <fwang@igalia.com> on 2018-10-02
Reviewed by Michael Catanzaro.

* platform/wpe/TestExpectations: Unskip most tests and add expectations for a few of them.

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

11 months agoRegression(r236613): Parser/html-parser.html performance test is failing
cdumez@apple.com [Tue, 2 Oct 2018 15:50:29 +0000 (15:50 +0000)]
Regression(r236613): Parser/html-parser.html performance test is failing
https://bugs.webkit.org/show_bug.cgi?id=190201

Unreviewed, apply the same fix as in r236699 to make sure the iframe is treated as
same origin, so that calls to document.open() / document.write() succeed.

* Parser/html-parser.html:

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

11 months ago[Flatpak] Use our own check of flatpak repos
commit-queue@webkit.org [Tue, 2 Oct 2018 15:43:47 +0000 (15:43 +0000)]
[Flatpak] Use our own check of flatpak repos
https://bugs.webkit.org/show_bug.cgi?id=190194

Allowing us to not mess up with user installation
and "--assumeyes" everywhere.

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-10-02
Reviewed by Michael Catanzaro.

* flatpak/flatpakutils.py:
(FlatpakPackage.__init__):
(FlatpakPackage.install):
(FlatpakPackage.update):
(WebkitFlatpak.load_from_args):
(WebkitFlatpak.__init__):
(WebkitFlatpak.clean_args):

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

11 months ago[GTK] Enable more Cache Storage and Service Workers tests
commit-queue@webkit.org [Tue, 2 Oct 2018 15:05:40 +0000 (15:05 +0000)]
[GTK] Enable more Cache Storage and Service Workers tests
https://bugs.webkit.org/show_bug.cgi?id=190196

Patch by Frederic Wang <fwang@igalia.com> on 2018-10-02
Reviewed by Michael Catanzaro.

* platform/gtk/TestExpectations: Unskip most tests are add some failure annotations.

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

11 months agoUnreviewed, rolling out r236719.
commit-queue@webkit.org [Tue, 2 Oct 2018 14:19:51 +0000 (14:19 +0000)]
Unreviewed, rolling out r236719.
https://bugs.webkit.org/show_bug.cgi?id=190197

this revision caused 39 layout test failures that tested for
scrolling, a bug was also not present in the commit or change
log. (Requested by Truitt on #webkit).

Reverted changeset:

"Unreviewed, fix unused variable in
RenderLayer::updateScrollableAreaSet"
https://trac.webkit.org/changeset/236719

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

11 months ago[BigInt] BigInt.proptotype.toString is broken when radix is power of 2
ticaiolima@gmail.com [Tue, 2 Oct 2018 13:42:37 +0000 (13:42 +0000)]
[BigInt] BigInt.proptotype.toString is broken when radix is power of 2
https://bugs.webkit.org/show_bug.cgi?id=190033

Reviewed by Yusuke Suzuki.

JSTests:

* stress/big-int-to-string.js:

Source/JavaScriptCore:

The implementation of JSBigInt::toStringToGeneric doesn't handle power
of 2 radix when JSBigInt length is >= 2. To handle such cases, we
implemented JSBigInt::toStringBasePowerOfTwo that follows the
algorithm that groups bits using mask of (2 ^ n) - 1 to extract every
digit.

* runtime/JSBigInt.cpp:
(JSC::JSBigInt::toString):
(JSC::JSBigInt::toStringBasePowerOfTwo):
* runtime/JSBigInt.h:

Source/WTF:

* wtf/MathExtras.h:
(WTF::ctz32):

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

11 months ago[MSE][GStreamer] Add h264parse to accept MP4 without stss
aboya@igalia.com [Tue, 2 Oct 2018 11:57:05 +0000 (11:57 +0000)]
[MSE][GStreamer] Add h264parse to accept MP4 without stss
https://bugs.webkit.org/show_bug.cgi?id=190143

Reviewed by Xabier Rodriguez-Calvar.

The MP4 file used in this URL does not contain a stss (Sync Sample
Box). In consequence, in acordance with the ISO BMFF spec, all samples
are assumed to be sync frames... But in this case that is not true,
it's just that the file is wrong (e.g. created with a buggy muxer).

http://orange-opensource.github.io/hasplayer.js/1.2.0/player.html?url=http://playready.directtaps.net/smoothstreaming/SSWSS720H264/SuperSpeedway_720.ism/Manifest

The way it works in other browsers is because instead of trusting the
MP4 stss table, they rely on parsing the h264 frames. We can do that
too.

This patch also changes RELEASE_ASSERT() when creating the parsers
to GLib criticals.

* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::createOptionalParserForFormat):

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

11 months ago[JSC] Add branchIfNaN and branchIfNotNaN
yusukesuzuki@slowstart.org [Tue, 2 Oct 2018 11:47:27 +0000 (11:47 +0000)]
[JSC] Add branchIfNaN and branchIfNotNaN
https://bugs.webkit.org/show_bug.cgi?id=190122

Reviewed by Mark Lam.

Add AssemblyHelpers::{branchIfNaN, branchIfNotNaN} to make code more readable.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileDoublePutByVal):
(JSC::DFG::SpeculativeJIT::compileDoubleRep):
(JSC::DFG::SpeculativeJIT::getIntTypedArrayStoreOperand):
(JSC::DFG::SpeculativeJIT::compileSpread):
(JSC::DFG::SpeculativeJIT::compileNewArray):
(JSC::DFG::SpeculativeJIT::speculateRealNumber):
(JSC::DFG::SpeculativeJIT::speculateDoubleRepReal):
(JSC::DFG::SpeculativeJIT::compileNormalizeMapKey):
(JSC::DFG::SpeculativeJIT::compileHasIndexedProperty):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::purifyNaN):
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::branchIfNaN):
(JSC::AssemblyHelpers::branchIfNotNaN):
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emitGenericContiguousPutByVal):
(JSC::JIT::emitDoubleLoad):
(JSC::JIT::emitFloatTypedArrayGetByVal):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emitGenericContiguousPutByVal):
* wasm/js/JSToWasm.cpp:
(JSC::Wasm::createJSToWasmWrapper):

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

11 months ago[GTK] Theming of authentication dialog breaks with themes other than Adwaita
aperez@igalia.com [Tue, 2 Oct 2018 11:26:07 +0000 (11:26 +0000)]
[GTK] Theming of authentication dialog breaks with themes other than Adwaita
https://bugs.webkit.org/show_bug.cgi?id=190117

Reviewed by Michael Catanzaro.

Adds the missing GTK_STYLE_CLASS_BACKGROUND to the WebKitWebViewDialog
widget, which was missing for GTK+ 3.20 or newer, and set the widget
as app-paintable to avoid the base class paint method to add an opaque
background.

Thanks to Benjamin Otte for the guidance to debug the theming issues.

* UIProcess/API/gtk/WebKitWebViewDialog.cpp:
(webkitWebViewDialogDraw): Remove the style context save/restore, it
is unneeded because the style classes are set at widget construction
time and not changed ever after.
(webkitWebViewDialogConstructed): Mark the widget as app-paintable to
avoid the base widget paint operation to fill the whole background,
because the dialog widget paints the translucent overlay itself; and
also add the missing GTK_STYLE_CLASS_BACKGROUND class at construction
when building against GTK+ 3.20 or newer.

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

11 months ago[MediaStream] RealtimeMediaSource should be able to vend hashed IDs
eric.carlson@apple.com [Tue, 2 Oct 2018 11:18:49 +0000 (11:18 +0000)]
[MediaStream] RealtimeMediaSource should be able to vend hashed IDs
https://bugs.webkit.org/show_bug.cgi?id=190142
<rdar://problem/44911109>

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, covered by existing tests.

* Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
(WebCore::CanvasCaptureMediaStreamTrack::Source::Source): Update order of parameters passed
to base class.

* Modules/mediastream/MediaDevicesRequest.cpp:
(WebCore::MediaDevicesRequest::start): ASSERT if document.deviceIDHashSalt is not the same
as passed salt.

* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::getSettings const): Don't need to hash ID.
(WebCore::MediaStreamTrack::getCapabilities const): Ditto.
* Modules/mediastream/MediaStreamTrack.h:
* Modules/mediastream/MediaStreamTrack.idl:

* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::allow): Pass hash salt to createMediaStream.

* Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::LibWebRTCPeerConnectionBackend::createReceiverForSource): Update order of parameters passed
to base class.

* Modules/webaudio/MediaStreamAudioSource.cpp:
(WebCore::MediaStreamAudioSource::MediaStreamAudioSource): Ditto.
* platform/mediastream/MediaConstraints.h:

* platform/mediastream/RealtimeIncomingAudioSource.cpp:
(WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource): Ditto.

* platform/mediastream/RealtimeIncomingVideoSource.cpp:
(WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): Ditto.

* platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::RealtimeMediaSource): Calculate hashed ID.
(WebCore::RealtimeMediaSource::selectSettings): Use m_hashedID.
(WebCore::RealtimeMediaSource::hashedId const): New.
(WebCore::RealtimeMediaSource::deviceIDHashSalt const): New.
* platform/mediastream/RealtimeMediaSource.h:

* platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::createMediaStream): Take hash salt, pass it when creating
a source.
(WebCore::RealtimeMediaSourceCenter::getUserMediaDevices): Ditto.
(WebCore::RealtimeMediaSourceCenter::validateRequestConstraints): Ditto.
* platform/mediastream/RealtimeMediaSourceCenter.h:

* platform/mediastream/RealtimeMediaSourceFactory.h:
* platform/mediastream/RealtimeVideoSource.cpp:
(WebCore::RealtimeVideoSource::RealtimeVideoSource): Update parameters.
* platform/mediastream/RealtimeVideoSource.h:

* platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp:
(WebCore::GStreamerAudioCaptureSource::create): Ditto.
(WebCore::GStreamerAudioCaptureSource::GStreamerAudioCaptureSource): Ditto.
* platform/mediastream/gstreamer/GStreamerAudioCaptureSource.h:

* platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:
(WebCore::GStreamerVideoCaptureSource::create): Ditto.
(WebCore::GStreamerVideoCaptureSource::GStreamerVideoCaptureSource): Ditto.
* platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h:

* platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp:
(WebCore::WrappedMockRealtimeAudioSource::WrappedMockRealtimeAudioSource): Ditto.
(WebCore::MockRealtimeAudioSource::create): Ditto.
(WebCore::MockGStreamerAudioCaptureSource::MockGStreamerAudioCaptureSource): Ditto.
* platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.h:

* platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.cpp:
(WebCore::MockRealtimeVideoSource::create): Ditto.
(WebCore::MockGStreamerVideoCaptureSource::MockGStreamerVideoCaptureSource): Ditto.
* platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.h:

* platform/mediastream/mac/AVVideoCaptureSource.h:
* platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::create): Ditto.
(WebCore::AVVideoCaptureSource::AVVideoCaptureSource): Ditto.
(WebCore::AVVideoCaptureSource::settings): Use hashedId to set device ID.
(WebCore::AVVideoCaptureSource::capabilities): Ditto.

* platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioCaptureSource::create): Update parameters.
(WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource): Ditto.
(WebCore::CoreAudioCaptureSource::capabilities): Use hashedId to set device ID.
(WebCore::CoreAudioCaptureSource::settings): Ditto.
* platform/mediastream/mac/CoreAudioCaptureSource.h:

* platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:
(WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa): Update parameters.
* platform/mediastream/mac/DisplayCaptureSourceCocoa.h:

* platform/mediastream/mac/MockRealtimeAudioSourceMac.h:
* platform/mediastream/mac/MockRealtimeAudioSourceMac.mm:
(WebCore::MockRealtimeAudioSource::create): Ditto.
(WebCore::MockRealtimeAudioSourceMac::MockRealtimeAudioSourceMac): Ditto.

* platform/mediastream/mac/MockRealtimeVideoSourceMac.h:
* platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
(WebCore::MockRealtimeVideoSource::create): Ditto.
(WebCore::MockRealtimeVideoSourceMac::MockRealtimeVideoSourceMac): Ditto.

* platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:

* platform/mediastream/mac/ScreenDisplayCaptureSourceMac.h:
* platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm:
(WebCore::ScreenDisplayCaptureSourceMac::create): Ditto.
(WebCore::ScreenDisplayCaptureSourceMac::ScreenDisplayCaptureSourceMac): Ditto.
(WebCore::ScreenDisplayCaptureSourceMac::createDisplayStream): Update logging.
(WebCore::ScreenDisplayCaptureSourceMac::startDisplayStream): Ditto.
(WebCore::ScreenDisplayCaptureSourceMac::frameAvailable): Ditto.

* platform/mediastream/mac/WindowDisplayCaptureSourceMac.h:
* platform/mediastream/mac/WindowDisplayCaptureSourceMac.mm:
(WebCore::WindowDisplayCaptureSourceMac::create): Update parameters.

* platform/mock/MockRealtimeAudioSource.cpp:
(WebCore::MockRealtimeAudioSource::create): Ditto.
(WebCore::MockRealtimeAudioSource::MockRealtimeAudioSource): Ditto.
(WebCore::MockRealtimeAudioSource::settings): Use hashedId to set device ID.
(WebCore::MockRealtimeAudioSource::capabilities): Ditto.
* platform/mock/MockRealtimeAudioSource.h:

* platform/mock/MockRealtimeMediaSourceCenter.cpp:

* platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::create): Update parameters.
(WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource): Ditto.
(WebCore::MockRealtimeVideoSource::capabilities): Use hashedId to set device ID.
(WebCore::MockRealtimeVideoSource::settings): Ditto.
* platform/mock/MockRealtimeVideoSource.h:

Source/WebKit:

* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<MediaConstraints>::encode):
(IPC::ArgumentCoder<MediaConstraints>::decode):
* UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
* UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
* UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
* UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
* WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::Source::Source):
(WebKit::UserMediaCaptureManager::createCaptureSource):
* WebProcess/cocoa/UserMediaCaptureManager.h:

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

11 months ago[GTK][WPE] Blacklist more tests that are requiring webrtc <-> webaudio bridging
commit-queue@webkit.org [Tue, 2 Oct 2018 10:45:28 +0000 (10:45 +0000)]
[GTK][WPE] Blacklist more tests that are requiring webrtc <-> webaudio bridging
https://bugs.webkit.org/show_bug.cgi?id=189829

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

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

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

11 months ago[macOS] Implement a way for the UI process to request typing attributes at the curren...
wenson_hsieh@apple.com [Tue, 2 Oct 2018 10:39:40 +0000 (10:39 +0000)]
[macOS] Implement a way for the UI process to request typing attributes at the current selection
https://bugs.webkit.org/show_bug.cgi?id=189983
<rdar://problem/44648705>

Reviewed by Ryosuke Niwa.

Source/WebKit:

Implements `-[WKWebView typingAttributesWithCompletionHandler:]`, which asynchronously retrieves an NSDictionary
containing the typing attributes at the start of the current selection. This is a new asynchronous text input
client hook on macOS that is needed in order to support NSInspectorBar on WKWebView.

At a high level, this patch builds on top of refactoring done in r236445 to make it possible to send typing
attributes from the web process to the UI process, and then adds plumbing in the WebKit2 client layer to surface
typing attributes to WKWebView on macOS.

Tests:  FontManagerTests.TypingAttributesAfterSubscriptAndSuperscript
        FontManagerTests.ChangeTypingAttributesWithInspectorBar
        FontManagerTests.ChangeAttributesWithFontEffectsBox

* Platform/spi/mac/AppKitSPI.h:
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<FontAttributes>::encode):
(IPC::ArgumentCoder<FontAttributes>::decode):

Implement IPC coding support for FontAttributes.

* Shared/WebCoreArgumentCoders.h:
* Shared/mac/ArgumentCodersMac.h:
* Shared/mac/ArgumentCodersMac.mm:
(IPC::encode):
(IPC::decode):

Add the ability to encode and decode UIFont. This allows Cocoa platforms to send `FontAttributes.font` over IPC
with a single call to IPC::encode/IPC::decode.

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

Add plumbing to WebViewImpl.

* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::selectionDidChange):

Update the NSInspectorBar on selection change, but only if it is present and visible, and WKWebView is currently
first responder.

(WebKit::WebViewImpl::typingAttributesWithCompletionHandler):

Call into WebPageProxy to retrieve FontAttributes from the web process, and invoke the callback with an
NSDictionary constructed from the retrieved FontAttributes.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestFontAttributesAtSelectionStart):
(WebKit::WebPageProxy::fontAttributesCallback):

Add plumbing to retrieve FontAttributes from the web process at the current selection. Additionally, cache the
font attributes to avoid doing extra work during subsequent requests.

(WebKit::WebPageProxy::resetStateAfterProcessExited):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::cachedFontAttributesAtSelectionStart const):
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::editorStateChanged):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::editorStateChanged):

Invalidate cached font attributes.

* WebKit.xcodeproj/project.pbxproj:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::requestFontAttributesAtSelectionStart):

Use the currently focused frame's Editor to compute FontAttributes at the current selection, and send the
computed FontAttributes back to the UI process.

* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

Tools:

Adds new FontManagerTests that exercise -typingAttributesWithCompletionHandler:. See below for more detail.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/TestWebKitAPI/mac/AppKitSPI.h:
* TestWebKitAPI/Tests/mac/FontManagerTests.mm:

Add a new test that exercises font attribute modification via inspector bar. Also, add a new test that checks
typing attributes when using subscript/superscript/unscript. Lastly, augment an existing NSFontPanel test to
additionally check that shadowed text and strike-through are reflected in typing attributes.

(-[FontManagerTestWKWebView inspectorBarItemIdentifiers]):
(-[TestWKWebView typingAttributes]):

Add a synchronous wrapper around `-typingAttributesWithCompletionHandler:` by spinning the runloop.

(-[TestWKWebView collapseToStart]):
(webViewForFontManagerTesting):
(TestWebKitAPI::TEST):
* TestWebKitAPI/cocoa/TestWKWebView.h:
* TestWebKitAPI/mac/TestInspectorBar.h: Copied from Tools/TestWebKitAPI/Tests/TestWebKitAPI/mac/AppKitSPI.h.
* TestWebKitAPI/mac/TestInspectorBar.mm: Added.

Introduce subclasses of `__InspectorBarItemController` and `NSInspectorBar` for testing inspector bar interaction.

(-[TestInspectorBarItemController initWithInspectorBar:]):
(-[TestInspectorBarItemController inspectorBar]):
(-[TestInspectorBarItemController updateSelectedAttributes]):
(-[TestInspectorBar initWithWebView:]):
(+[TestInspectorBar standardItemControllerClass]):
(+[TestInspectorBar standardTextItemIdentifiers]):
(-[TestInspectorBar _setStyleControlSelected:atIndex:]):
(-[TestInspectorBar chooseFontSize:]):
(-[TestInspectorBar chooseFontFamily:]):
(-[TestInspectorBar _chooseColor:inColorWell:]):
(-[TestInspectorBar chooseForegroundColor:]):
(-[TestInspectorBar chooseBackgroundColor:]):
(-[TestInspectorBar formatBold:]):
(-[TestInspectorBar formatItalic:]):
(-[TestInspectorBar formatUnderline:]):

Add helper methods to TestInspectorBar to simulate interacting with various controls (e.g. color wells and font
styling controls).

(-[TestInspectorBar itemController]):
(-[TestInspectorBar setItemController:]):

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

11 months ago[WinCairo] Enable some wpt tests.
Basuke.Suzuki@sony.com [Tue, 2 Oct 2018 10:17:43 +0000 (10:17 +0000)]
[WinCairo] Enable some wpt tests.
https://bugs.webkit.org/show_bug.cgi?id=190129

Unreviewed test gardening..

* platform/wincairo/TestExpectations:
* platform/wincairo/http/wpt/html/browsers/browsing-the-web/navigating-across-documents/click-expected.txt: Added.
* platform/wincairo/http/wpt/html/browsers/browsing-the-web/navigating-across-documents/href-expected.txt: Added.

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

11 months ago[Flatpak] Implement icecream and ccache support
commit-queue@webkit.org [Tue, 2 Oct 2018 09:47:13 +0000 (09:47 +0000)]
[Flatpak] Implement icecream and ccache support
https://bugs.webkit.org/show_bug.cgi?id=190146

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

* flatpak/flatpakutils.py:
(WebkitFlatpak.load_from_args):
(WebkitFlatpak.__init__):
(WebkitFlatpak.clean_args):
(WebkitFlatpak.run_in_sandbox):
(WebkitFlatpak.save_config):
(WebkitFlatpak):
(WebkitFlatpak.setup_ccache):
(WebkitFlatpak.setup_icecc):
(WebkitFlatpak.setup_dev_env):
* flatpak/org.webkit.WebKit.yaml:

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

11 months ago[GStreamer][playbin3] Stream tag lists leaks
philn@webkit.org [Tue, 2 Oct 2018 09:43:51 +0000 (09:43 +0000)]
[GStreamer][playbin3] Stream tag lists leaks
https://bugs.webkit.org/show_bug.cgi?id=190192

Reviewed by Xabier Rodriguez-Calvar.

The gst_stream_get_tags() result is transfer-full, so needs to be adopted to prevent a leak.
Also check the tags list pointer which might be NULL in some cases.

* platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:
(WebCore::AudioTrackPrivateGStreamer::AudioTrackPrivateGStreamer):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::naturalSize const):
* platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:
(WebCore::VideoTrackPrivateGStreamer::VideoTrackPrivateGStreamer):

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

11 months agoUnreviewed, fix missing return value in TestController::keyExistsInKeychain
mcatanzaro@igalia.com [Tue, 2 Oct 2018 09:32:00 +0000 (09:32 +0000)]
Unreviewed, fix missing return value in TestController::keyExistsInKeychain

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::keyExistsInKeychain):

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

11 months agoUnreviewed, fix unused variable in RenderLayer::updateScrollableAreaSet
mcatanzaro@igalia.com [Tue, 2 Oct 2018 09:30:58 +0000 (09:30 +0000)]
Unreviewed, fix unused variable in RenderLayer::updateScrollableAreaSet

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects const): This is a prepare-ChangeLog bug. I don't
have any changes in this function....

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

11 months ago[WinCairo] Enable WPT tests environment.
Basuke.Suzuki@sony.com [Tue, 2 Oct 2018 09:29:33 +0000 (09:29 +0000)]
[WinCairo] Enable WPT tests environment.
https://bugs.webkit.org/show_bug.cgi?id=190128

Reviewed by Youenn Fablet.

Escaping backslash of the path not to confuse the JSON parser.

* Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:
(WebPlatformTestServer._prepare_config):

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

11 months ago[MSE][GStreamer] Make same thread assert non-release
aboya@igalia.com [Tue, 2 Oct 2018 09:20:49 +0000 (09:20 +0000)]
[MSE][GStreamer] Make same thread assert non-release
https://bugs.webkit.org/show_bug.cgi?id=189924

Reviewed by Xabier Rodriguez-Calvar.

* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::handleNewAppsinkSample):

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

11 months ago[GStreamer][MSE] Ubuntu LTS build broken since r236409
philn@webkit.org [Tue, 2 Oct 2018 08:02:16 +0000 (08:02 +0000)]
[GStreamer][MSE] Ubuntu LTS build broken since r236409
https://bugs.webkit.org/show_bug.cgi?id=190036

Reviewed by Michael Catanzaro.

Interrupt the build if MSE is enabled but no supported (1.14)
GStreamer version was found.

* Source/cmake/GStreamerChecks.cmake:

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

11 months agoWeb Inspector: Canvas: replace constant numbers with their associated name on WebGL...
drousso@apple.com [Tue, 2 Oct 2018 08:00:37 +0000 (08:00 +0000)]
Web Inspector: Canvas: replace constant numbers with their associated name on WebGL contexts
https://bugs.webkit.org/show_bug.cgi?id=190026

Reviewed by Joseph Pecoraro.

* UserInterface/Models/RecordingAction.js:
(WI.RecordingAction.constantNameForParameter): Added.
(WI.RecordingAction.prototype.getColorParameters):
(WI.RecordingAction.prototype.getImageParameters):
Drive-by: add additional swatches to color/image arguments for WebGL actions.
* UserInterface/Views/CanvasSidebarPanel.js:
(WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
Drive-by: ensure that the `WI.RecordingContentView` is showing before applying the action.
* UserInterface/Views/RecordingActionTreeElement.js:
(WI.RecordingActionTreeElement._generateDOM.createParameterElement):
(WI.RecordingActionTreeElement._generateDOM):
* UserInterface/Views/RecordingActionTreeElement.css:
(.item.action > .titles .parameter.constant): Added.

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

11 months agoWeb Inspector: Fix a typo for execution context identifier
commit-queue@webkit.org [Tue, 2 Oct 2018 06:59:46 +0000 (06:59 +0000)]
Web Inspector: Fix a typo for execution context identifier
https://bugs.webkit.org/show_bug.cgi?id=190185

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

* UserInterface/Protocol/MainTarget.js:
(WI.MainTarget):
* UserInterface/Protocol/WorkerTarget.js:
(WI.WorkerTarget):

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

11 months agoFunction.toString() should also copy the source code Functions that are class definit...
mark.lam@apple.com [Tue, 2 Oct 2018 06:53:23 +0000 (06:53 +0000)]
Function.toString() should also copy the source code Functions that are class definitions.
https://bugs.webkit.org/show_bug.cgi?id=190186
<rdar://problem/44733360>

Reviewed by Saam Barati.

JSTests:

* stress/regress-190186.js: Added.

Source/JavaScriptCore:

Previously, if the Function is a class definition, functionProtoFuncToString()
would create a String using StringView::toStringWithoutCopying(), and use that
String to make a JSString.  This is not a problem if the underlying SourceProvider
(that backs the characters in that StringView) is immortal.  However, this is
not always the case in practice.

This patch fixes this issue by changing functionProtoFuncToString() to create the
String using StringView::toString() instead, which makes a copy of the underlying
characters buffer.  This detaches the resultant JSString from the SourceProvider
characters buffer that it was created from, and ensure that the underlying
characters buffer of the string will be alive for the entire lifetime of the
JSString.

* runtime/FunctionPrototype.cpp:
(JSC::functionProtoFuncToString):

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

11 months ago[Win][DRT] Actually set "experimental:WebAnimationsCSSIntegrationEnabled" when requested
ross.kirsling@sony.com [Tue, 2 Oct 2018 05:24:44 +0000 (05:24 +0000)]
[Win][DRT] Actually set "experimental:WebAnimationsCSSIntegrationEnabled" when requested
https://bugs.webkit.org/show_bug.cgi?id=190150

Reviewed by Fujii Hironori.

* DumpRenderTree/win/DumpRenderTree.cpp:
(setWebPreferencesForTestOptions):
DRT has been recognizing this field, but not propagating its value to WebPreferences.

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

11 months ago[WinCairo] Unreviewed test gardening.
ross.kirsling@sony.com [Tue, 2 Oct 2018 04:58:52 +0000 (04:58 +0000)]
[WinCairo] Unreviewed test gardening.

* platform/wincairo/TestExpectations:

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

11 months agoRemoved a failing test expectation on imported/w3c/web-platform-tests/shadow-dom...
rniwa@webkit.org [Tue, 2 Oct 2018 03:29:56 +0000 (03:29 +0000)]
Removed a failing test expectation on imported/w3c/web-platform-tests/shadow-dom/slotchange.html
since we haven't seen a single failure after the fix in r236440.

* platform/mac/TestExpectations:

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

11 months agoWeb Inspector: remove analyzer manager
drousso@apple.com [Tue, 2 Oct 2018 02:27:11 +0000 (02:27 +0000)]
Web Inspector: remove analyzer manager
https://bugs.webkit.org/show_bug.cgi?id=190162

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

* UserInterface/Main.html:
* UserInterface/Base/Main.js:
(WI.loaded):

* UserInterface/Controllers/AnalyzerManager.js: Removed.
* UserInterface/Models/AnalyzerMessage.js: Removed.

* Scripts/copy-user-interface-resources.pl:
* UserInterface/External/ESLint/LICENSE: Removed.
* UserInterface/External/ESLint/eslint.js: Removed.

Source/WebKit:

* InspectorGResources.cmake:
Remove eslint.

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

11 months ago[Cocoa] Update delete-emoji expected results
mmaxfield@apple.com [Tue, 2 Oct 2018 02:15:02 +0000 (02:15 +0000)]
[Cocoa] Update delete-emoji expected results
https://bugs.webkit.org/show_bug.cgi?id=190182

Unreviewed.

Simply update the expected results.

* platform/mac-highsierra/editing/deleting/delete-emoji-1-expected.txt: Copied from LayoutTests/platform/mac/editing/deleting/delete-emoji-1-expected.txt.
* platform/mac-highsierra/editing/deleting/delete-emoji-9-expected.txt: Copied from LayoutTests/platform/mac/editing/deleting/delete-emoji-9-expected.txt.
* platform/mac-highsierra/editing/deleting/delete-emoji-expected.txt: Copied from LayoutTests/platform/mac/editing/deleting/delete-emoji-expected.txt.
* platform/mac/TestExpectations:
* platform/mac/editing/deleting/delete-emoji-1-expected.txt:
* platform/mac/editing/deleting/delete-emoji-9-expected.txt:
* platform/mac/editing/deleting/delete-emoji-expected.txt:

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

11 months agoAdd a new variant of serializePreservingVisualAppearance which takes VisibleSelection
rniwa@webkit.org [Tue, 2 Oct 2018 01:59:52 +0000 (01:59 +0000)]
Add a new variant of serializePreservingVisualAppearance which takes VisibleSelection
https://bugs.webkit.org/show_bug.cgi?id=190108

Reviewed by Wenson Hsieh.

Source/WebCore:

Added a version of serializePreservingVisualAppearance which takes VisibleSelection so that we can avoid creating
a range simply to get the first node and the end node of the selection later. This simple change also fixes a bug
demonstrated in editing/pasteboard/paste-table-003.html.

Test: editing/pasteboard/paste-table-003.html

* editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::selectionInHTMLFormat): Adopt the new variant.
* editing/gtk/EditorGtk.cpp:
(WebCore::Editor::writeSelectionToPasteboard): Ditto.
* editing/markup.cpp:
(WebCore::serializePreservingVisualAppearance): Added.
* editing/markup.h:
* editing/wpe/EditorWPE.cpp:
(WebCore::Editor::writeSelectionToPasteboard): Ditto.
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::createFromSelection): Ditto.
* platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::writeSelection): Ditto.

Source/WebKit:

Adopt the new variant which directly takes VisibleSelection.

* WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
(WebKit::WebEditorClient::updateGlobalSelection):

LayoutTests:

Rebaselined the test since the bug that interchange new lines are inserted in the last table cell is fixed.
Also updated the description in the test to reflect this change.

* editing/pasteboard/paste-table-003-expected.txt:
* editing/pasteboard/paste-table-003.html:

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