WebKit-https.git
2 years agoUI process sometimes crashes under -[WKContentView _lookupForWebView:]
timothy_horton@apple.com [Sun, 4 Feb 2018 03:35:18 +0000 (03:35 +0000)]
UI process sometimes crashes under -[WKContentView _lookupForWebView:]
https://bugs.webkit.org/show_bug.cgi?id=182460
<rdar://problem/33260602>

Reviewed by Wenson Hsieh.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _lookupForWebView:]):
If you have a range selection, but no rects for the selection, retrieving
the 0th element of selectionRects will crash the UI process. To fix, in
this case, use the rect for the starting caret instead.

It doesn't seem like the presentationRect is actually currently used for
the Lookup service, so the only impact is that we shouldn't crash anymore.

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

2 years agoTweak availability macros for CAN_DISALLOW_USER_INSTALLED_FONTS
ap@apple.com [Sat, 3 Feb 2018 22:39:10 +0000 (22:39 +0000)]
Tweak availability macros for CAN_DISALLOW_USER_INSTALLED_FONTS

Rubber-stamped by Maciej Stachowiak.

* platform/graphics/cocoa/FontCacheCoreText.cpp:

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

2 years agoAdd libmount to WPE dependencies
cturner@igalia.com [Sat, 3 Feb 2018 14:40:27 +0000 (14:40 +0000)]
Add libmount to WPE dependencies
https://bugs.webkit.org/show_bug.cgi?id=182345

Reviewed by Michael Catanzaro.

* wpe/install-dependencies:

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

2 years agoUnreviewed, follow up for test262 update
utatane.tea@gmail.com [Sat, 3 Feb 2018 09:59:34 +0000 (09:59 +0000)]
Unreviewed, follow up for test262 update
https://bugs.webkit.org/show_bug.cgi?id=182288

* test262.yaml:

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

2 years agoRemove remaining dead !USE(NETWORK_SESSION) code
mcatanzaro@igalia.com [Sat, 3 Feb 2018 04:59:18 +0000 (04:59 +0000)]
Remove remaining dead !USE(NETWORK_SESSION) code
https://bugs.webkit.org/show_bug.cgi?id=182451

Reviewed by Alex Christensen.

DownloadCurl.cpp and AuthenticationManagerSoup.cpp have been dead code since NETWORK_SESSION
became mandatory.

* NetworkProcess/Downloads/curl/DownloadCurl.cpp: Removed.
* PlatformGTK.cmake:
* PlatformWPE.cmake:
* PlatformWin.cmake:
* Shared/Authentication/soup/AuthenticationManagerSoup.cpp: Removed.

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

2 years agoClean up FrameLoader::receivedFirstData()
dbates@webkit.org [Sat, 3 Feb 2018 04:53:47 +0000 (04:53 +0000)]
Clean up FrameLoader::receivedFirstData()
https://bugs.webkit.org/show_bug.cgi?id=182361

Reviewed by Andy Estes.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::receivedFirstData):

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

2 years agoTest fix after r227995
mmaxfield@apple.com [Sat, 3 Feb 2018 04:22:04 +0000 (04:22 +0000)]
Test fix after r227995
https://bugs.webkit.org/show_bug.cgi?id=180951

Unreviewed.

Webfonts shouldn't be run through CTFontDescriptorCreateMatchingFontDescriptor().
Also, unify macOS's and iOS's implementation of FontCache::lastResortFallbackFont().

Covered by existing tests.

* platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontDatabase::collectionForFamily):
(WebCore::FontDatabase::fontForPostScriptName):
(WebCore::addAttributesForInstalledFonts):
(WebCore::addAttributesForWebFonts):
(WebCore::installedFontMandatoryAttributes):
(WebCore::FontCache::lastResortFallbackFont):
(WebCore::addAttributesForUserInstalledFonts): Deleted.
(WebCore::mandatoryAttributesForUserInstalledFonts): Deleted.
* platform/graphics/cocoa/FontCacheCoreText.h:
* platform/graphics/ios/FontCacheIOS.mm:
(WebCore::FontCache::lastResortFallbackFont): Deleted.
* platform/graphics/mac/FontCacheMac.mm:
(WebCore::FontCache::lastResortFallbackFont): Deleted.
* platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData):

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

2 years agoFix build error after r 227457 with VIDEO and WEB_AUDIO disabled
commit-queue@webkit.org [Sat, 3 Feb 2018 02:14:32 +0000 (02:14 +0000)]
Fix build error after r 227457 with VIDEO and WEB_AUDIO disabled
https://bugs.webkit.org/show_bug.cgi?id=182395

Patch by Basuke Suzuki <Basuke.Suzuki@sony.com> on 2018-02-02
Reviewed by Eric Carlson

* platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::updateNowPlayingInfoIfNecessary):

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

2 years agoUnreviewed test gardening, skip fast/visual-viewport/resize-event-fired.html on iOS.
ryanhaddad@apple.com [Sat, 3 Feb 2018 02:06:43 +0000 (02:06 +0000)]
Unreviewed test gardening, skip fast/visual-viewport/resize-event-fired.html on iOS.

* platform/ios/TestExpectations:

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

2 years agoCacheStorage should check for origin file presence when computing the origin of a...
commit-queue@webkit.org [Sat, 3 Feb 2018 02:05:54 +0000 (02:05 +0000)]
CacheStorage should check for origin file presence when computing the origin of a folder
https://bugs.webkit.org/show_bug.cgi?id=182454

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

In case caches is opened for an origin but no cache is added, we do not have a caches name file but we do have an origin filename.
We should be checking the origin filename anyway since we will be reading it afterwards.

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

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

2 years agoRebaseline bindings generator tests after r228032.
ryanhaddad@apple.com [Sat, 3 Feb 2018 01:39:14 +0000 (01:39 +0000)]
Rebaseline bindings generator tests after r228032.
https://bugs.webkit.org/show_bug.cgi?id=182445

Unreviewed test gardening.

* Scripts/tests/builtins/expected/WebCoreJSBuiltins.h-result:

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

2 years agoUpdate test262 to Jan 30 version
ryanhaddad@apple.com [Sat, 3 Feb 2018 01:31:49 +0000 (01:31 +0000)]
Update test262 to Jan 30 version
https://bugs.webkit.org/show_bug.cgi?id=182288

Unreviewed test gardening.

* test262.yaml: Remove entry for missing test language/expressions/assignment/white-space.js

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

2 years agoRemove WebCore/ForwardingHeaders directory
don.olmstead@sony.com [Sat, 3 Feb 2018 00:57:02 +0000 (00:57 +0000)]
Remove WebCore/ForwardingHeaders directory
https://bugs.webkit.org/show_bug.cgi?id=182347

Reviewed by Alex Christensen.

Baseline tests updated.

* bindings/scripts/CodeGeneratorJS.pm:
(AddToIncludesForIDLType):
(GenerateEnumerationImplementationContent):
(GenerateDictionaryImplementationContent):
(GenerateHeader):
(GenerateOverloadDispatcher):
(addUnscopableProperties):
(GenerateImplementation):
(GenerateOperationDefinition):
(GenerateSerializerDefinition):
(GenerateConstructorHelperMethods):
* bindings/scripts/test/JS/JSInterfaceName.cpp:
* bindings/scripts/test/JS/JSMapLike.cpp:
* bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
* bindings/scripts/test/JS/JSTestCEReactions.cpp:
* bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
* bindings/scripts/test/JS/JSTestCallTracer.cpp:
* bindings/scripts/test/JS/JSTestCallbackFunctionRethrow.cpp:
* bindings/scripts/test/JS/JSTestCallbackFunctionWithThisObject.cpp:
* bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.cpp:
* bindings/scripts/test/JS/JSTestCallbackInterface.cpp:
* bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
* bindings/scripts/test/JS/JSTestDOMJIT.cpp:
* bindings/scripts/test/JS/JSTestDOMJIT.h:
* bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
* bindings/scripts/test/JS/JSTestException.cpp:
* bindings/scripts/test/JS/JSTestException.h:
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
* bindings/scripts/test/JS/JSTestGlobalObject.cpp:
* bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:
* bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:
* bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
* bindings/scripts/test/JS/JSTestInterface.cpp:
* bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
* bindings/scripts/test/JS/JSTestIterable.cpp:
* bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
* bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
* bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
* bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:
* bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:
* bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:
* bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp:
* bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp:
* bindings/scripts/test/JS/JSTestNode.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
* bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
* bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
* bindings/scripts/test/JS/JSTestPluginInterface.cpp:
* bindings/scripts/test/JS/JSTestPluginInterface.h:
* bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
* bindings/scripts/test/JS/JSTestSerialization.cpp:
* bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.cpp:
* bindings/scripts/test/JS/JSTestSerializationInherit.cpp:
* bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
* bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp:
* bindings/scripts/test/JS/JSTestStandaloneEnumeration.cpp:
* bindings/scripts/test/JS/JSTestStringifier.cpp:
* bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:
* bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:
* bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:
* bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:
* bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:
* bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
* dom/make_event_factory.pl:
(generateImplementation):

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

2 years agoW3C test exporter should allow exporting newly added files
commit-queue@webkit.org [Sat, 3 Feb 2018 00:53:51 +0000 (00:53 +0000)]
W3C test exporter should allow exporting newly added files
https://bugs.webkit.org/show_bug.cgi?id=182369

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-02
Reviewed by Ryosuke Niwa.

* Scripts/webkitpy/common/checkout/scm/git.py:
(Git.apply_mail_patch):

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

2 years agoWebAppManifest scope should default to the containing directory of start_url if ...
david_quesada@apple.com [Sat, 3 Feb 2018 00:49:56 +0000 (00:49 +0000)]
WebAppManifest scope should default to the containing directory of start_url if 'scope' is not specified
https://bugs.webkit.org/show_bug.cgi?id=182363
rdar://problem/37093498

Reviewed by Ryosuke Niwa.

Source/WebCore:

If an app manifest doesn't specify a scope, we should default to the "parent directory" of
the start URL, rather than leaving the app unbounded. This is more reasonable than using the
entire internet as the app scope.

No new tests, updates to the existing tests verify the new behavior.

* Modules/applicationmanifest/ApplicationManifestParser.cpp:
(WebCore::ApplicationManifestParser::parseScope):

Tools:

Updated ApplicationManifestParserTests to account for the new default scope behavior.

* TestWebKitAPI/Tests/WebCore/ApplicationManifestParser.cpp:
(assertManifestHasDefaultValues):
(TEST_F):

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

2 years agoMake various DFG_ASSERTs provide more data to WTFCrashWithInfo
sbarati@apple.com [Sat, 3 Feb 2018 00:43:14 +0000 (00:43 +0000)]
Make various DFG_ASSERTs provide more data to WTFCrashWithInfo
https://bugs.webkit.org/show_bug.cgi?id=182453
<rdar://problem/37174236>

Reviewed by JF Bastien and Mark Lam.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGArgumentsEliminationPhase.cpp:
* dfg/DFGArgumentsUtilities.cpp:
(JSC::DFG::emitCodeToGetArgumentsArrayLength):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupChecksInBlock):
* dfg/DFGFlowIndexing.h:
(JSC::DFG::FlowIndexing::shadowIndex const):
* dfg/DFGLICMPhase.cpp:
(JSC::DFG::LICMPhase::run):
(JSC::DFG::LICMPhase::attemptHoist):
* dfg/DFGLoopPreHeaderCreationPhase.cpp:
(JSC::DFG::LoopPreHeaderCreationPhase::run):
* dfg/DFGPutStackSinkingPhase.cpp:
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileArithAbs):
(JSC::DFG::SpeculativeJIT::compileArithRounding):
(JSC::DFG::SpeculativeJIT::compileToPrimitive):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::fillJSValue):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Strict):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt52):
(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGStoreBarrierClusteringPhase.cpp:
* dfg/DFGStoreBarrierInsertionPhase.cpp:
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileGetStack):
(JSC::FTL::DFG::LowerDFGToB3::compileArithClz32):
(JSC::FTL::DFG::LowerDFGToB3::compileArithAbs):
(JSC::FTL::DFG::LowerDFGToB3::compileArithRound):
(JSC::FTL::DFG::LowerDFGToB3::compileArithFloor):
(JSC::FTL::DFG::LowerDFGToB3::compileArithCeil):
(JSC::FTL::DFG::LowerDFGToB3::compileArithTrunc):
(JSC::FTL::DFG::LowerDFGToB3::compileArithNegate):
(JSC::FTL::DFG::LowerDFGToB3::compilePutById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetIndexedPropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileStringFromCharCode):
(JSC::FTL::DFG::LowerDFGToB3::compileMultiPutByOffset):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareEq):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::compileIn):
(JSC::FTL::DFG::LowerDFGToB3::compare):
(JSC::FTL::DFG::LowerDFGToB3::switchStringRecurse):
(JSC::FTL::DFG::LowerDFGToB3::lowInt32):
(JSC::FTL::DFG::LowerDFGToB3::lowInt52):
(JSC::FTL::DFG::LowerDFGToB3::lowCell):
(JSC::FTL::DFG::LowerDFGToB3::lowBoolean):
(JSC::FTL::DFG::LowerDFGToB3::lowDouble):
(JSC::FTL::DFG::LowerDFGToB3::lowJSValue):

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

2 years agoClearing all service worker registrations should wait for importing service worker...
commit-queue@webkit.org [Sat, 3 Feb 2018 00:39:31 +0000 (00:39 +0000)]
Clearing all service worker registrations should wait for importing service worker registration to finish
https://bugs.webkit.org/show_bug.cgi?id=182407
<rdar://problem/37167523>

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

* workers/service/server/SWServer.cpp:
(WebCore::SWServer::clear): ensure completion handler is called on early exit case.

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

2 years agoConfigure serviceWorkerRegistrationDirectory on the web site data store and move...
commit-queue@webkit.org [Sat, 3 Feb 2018 00:36:20 +0000 (00:36 +0000)]
Configure serviceWorkerRegistrationDirectory on the web site data store and move it to a Caches subfolder as a default
https://bugs.webkit.org/show_bug.cgi?id=182403
<rdar://problem/36673358>

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-02
Reviewed by Alex Christensen.

* UIProcess/WebProcessPool.cpp:
(WebKit::legacyWebsiteDataStoreConfiguration): Setting serviceWorkerRegistrationDirectory for legacy stores.

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

2 years agoJS Builtins should include JavaScriptCore headers directly
don.olmstead@sony.com [Fri, 2 Feb 2018 23:37:11 +0000 (23:37 +0000)]
JS Builtins should include JavaScriptCore headers directly
https://bugs.webkit.org/show_bug.cgi?id=182445

Reviewed by Yusuke Suzuki.

* Scripts/builtins/builtins_generator.py:
* Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result:
* Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
* Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
* Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
* Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
* Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:

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

2 years agoWhen BytecodeParser inserts Unreachable after ForceOSRExit it needs to update Argumen...
sbarati@apple.com [Fri, 2 Feb 2018 22:55:29 +0000 (22:55 +0000)]
When BytecodeParser inserts Unreachable after ForceOSRExit it needs to update ArgumentPositions for Flushes it inserts
https://bugs.webkit.org/show_bug.cgi?id=182368
<rdar://problem/36932466>

Reviewed by Mark Lam.

JSTests:

* stress/flush-after-force-exit-in-bytecodeparser-needs-to-update-argument-positions.js: Added.
(runNearStackLimit.t):
(runNearStackLimit):
(try.runNearStackLimit):
(catch):

Source/JavaScriptCore:

When preserving liveness when inserting Unreachable nodes after ForceOSRExit,
we must add the VariableAccessData to the given argument position. Otherwise,
we may end up with a VariableAccessData that doesn't respect the shouldNeverUnbox bit.
If we end up with such a situation, it can lead to invalid IR after the
arguments elimination phase optimizes a GetByVal to a GetStack.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::flushImpl):
(JSC::DFG::ByteCodeParser::flushForTerminalImpl):
(JSC::DFG::ByteCodeParser::flush):
(JSC::DFG::ByteCodeParser::flushForTerminal):
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
(JSC::DFG::ByteCodeParser::parse):

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

2 years agoWeb Inspector: Styles Redesign: Pasting multiple properties should create properties...
webkit@devinrousso.com [Fri, 2 Feb 2018 22:52:56 +0000 (22:52 +0000)]
Web Inspector: Styles Redesign: Pasting multiple properties should create properties instead of a bad property
https://bugs.webkit.org/show_bug.cgi?id=179622
<rdar://problem/35511170>

Reviewed by Matt Baker.

* UserInterface/Views/SpreadsheetStyleProperty.js:
(WI.SpreadsheetStyleProperty.prototype._remove):
(WI.SpreadsheetStyleProperty.prototype._update):
(WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidCommit):
(WI.SpreadsheetStyleProperty.prototype._handleNamePaste):
When the user pastes into the name field, parse the text for a list of name-value pairs and
replace the property being edited with the text of those pairs.

* UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
(WI.SpreadsheetCSSStyleDeclarationEditor):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.addBlankProperty):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyFocusMoved):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyAddBlankPropertySoon):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyRemoved):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetCSSStyleDeclarationEditorFocusMoved): Deleted.
Calling `addBlankProperty` will trigger a layout on the next frame, but that might be before
the CSSAgent has had a chance to finish refreshing, so we need a way to defer the creation
of a new property until after we have finished the next layout (which is after the refresh).
Drive-by: fix naming of some delegate functions.
* UserInterface/Models/CSSProperty.js:
(WI.CSSProperty.prototype.replaceWithText):
Provide a way for replacing the property with new text.

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

2 years agoUpdate test262 to Jan 30 version
utatane.tea@gmail.com [Fri, 2 Feb 2018 21:48:40 +0000 (21:48 +0000)]
Update test262 to Jan 30 version
https://bugs.webkit.org/show_bug.cgi?id=182288

Rubber stamped by Saam Barati.

This patch updates test262 to the latest one, Jan 30 version.
Since added and changed files are too many, we cannot create ChangeLog.
The following files are changed.

Several files are intentionally omitted due to merge failures. We should investigate how to merge files
including some special line terminators (like u2028, u2029).

* test262.yaml:
* test262/test262-Revision.txt:
* test262/*:

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

2 years agoRebaseline imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap...
ryanhaddad@apple.com [Fri, 2 Feb 2018 21:31:58 +0000 (21:31 +0000)]
Rebaseline imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html for iOS.

Unreviewed test gardening.

* platform/ios/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt: Added.

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

2 years agoClearing all service worker registrations should wait for importing service worker...
commit-queue@webkit.org [Fri, 2 Feb 2018 21:08:58 +0000 (21:08 +0000)]
Clearing all service worker registrations should wait for importing service worker registration to finish
https://bugs.webkit.org/show_bug.cgi?id=182407

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

Source/WebCore:

Covered by existing tests and the service worker API test being no longer flaky.

* workers/service/server/SWServer.cpp:
(WebCore::SWServer::registrationStoreImportComplete):
(WebCore::SWServer::clearAll):
(WebCore::SWServer::clear):
(WebCore::SWServer::getOriginsWithRegistrations):
* workers/service/server/SWServer.h:

Source/WebKit:

Updating API to take a completion handler.

* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreRemoveAllServiceWorkerRegistrations):
* UIProcess/API/C/WKWebsiteDataStoreRef.h:

Tools:

Make sure we finish clearing service worker registrations before running tests.

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetStateToConsistentValues):
(WTR::ClearServiceWorkerRegistrationsCallbackContext::ClearServiceWorkerRegistrationsCallbackContext):
(WTR::clearServiceWorkerRegistrationsCallback):
(WTR::TestController::clearServiceWorkerRegistrations):
* WebKitTestRunner/TestController.h:

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

2 years agoWeb Inspector: TabBar redesign: remove New Tab button and add experimental feature...
mattbaker@apple.com [Fri, 2 Feb 2018 21:04:52 +0000 (21:04 +0000)]
Web Inspector: TabBar redesign: remove New Tab button and add experimental feature flag
https://bugs.webkit.org/show_bug.cgi?id=182342
<rdar://problem/37078662>

Reviewed by Devin Rousso.

This patch adds a new experimental setting group, "User Interface", with
a single setting, "Enable New TabBar". When enabled, the New Tab button is
no longer available in the top-level TabBar. The 'open tabs' context menu
no longer allows the last non-ephemeral open tab to be closed (unchecked).

* Localizations/en.lproj/localizedStrings.js:

* UserInterface/Base/Main.js:
(WI.contentLoaded):
(WI._tryToRestorePendingTabs):
Retain legacy behavior behind experimental feature setting.
(WI.isNewTabWithTypeAllowed):

* UserInterface/Base/Setting.js:
* UserInterface/Main.html:

* UserInterface/Views/CanvasTabContentView.js:
(WI.CanvasTabContentView):
* UserInterface/Views/ConsoleTabContentView.js:
(WI.ConsoleTabContentView):
* UserInterface/Views/DebuggerTabContentView.js:
(WI.DebuggerTabContentView):
* UserInterface/Views/ElementsTabContentView.js:
(WI.ElementsTabContentView):

* UserInterface/Views/GeneralTabBarItem.js:
(WI.GeneralTabBarItem):
(WI.GeneralTabBarItem.prototype.fromTabInfo):
(WI.GeneralTabBarItem.prototype.get isEphemeral):
(WI.GeneralTabBarItem.fromTabContentViewConstructor): Deleted.

* UserInterface/Views/LayersTabContentView.js:
(WI.LayersTabContentView):

* UserInterface/Views/LegacyTabBar.js: Copied from Source/WebInspectorUI/UserInterface/Views/TabBar.js.
(WI.LegacyTabBar):
(WI.LegacyTabBar.prototype.get newTabTabBarItem):
(WI.LegacyTabBar.prototype.updateNewTabTabBarItemState):
(WI.LegacyTabBar.prototype.addTabBarItem):
(WI.LegacyTabBar.prototype.insertTabBarItem.animateTabs):
(WI.LegacyTabBar.prototype.insertTabBarItem.removeStyles):
(WI.LegacyTabBar.prototype.insertTabBarItem):
(WI.LegacyTabBar.prototype.removeTabBarItem.animateTabs):
(WI.LegacyTabBar.prototype.removeTabBarItem.removeStyles):
(WI.LegacyTabBar.prototype.removeTabBarItem):
(WI.LegacyTabBar.prototype.selectPreviousTab):
(WI.LegacyTabBar.prototype.selectNextTab):
(WI.LegacyTabBar.prototype.get selectedTabBarItem):
(WI.LegacyTabBar.prototype.set selectedTabBarItem):
(WI.LegacyTabBar.prototype.get tabBarItems):
(WI.LegacyTabBar.prototype.get normalTabCount):
(WI.LegacyTabBar.prototype.layout.forceItemHidden):
(WI.LegacyTabBar.prototype.layout):
(WI.LegacyTabBar.prototype._tabBarItemsFromLeftToRight):
(WI.LegacyTabBar.prototype._findTabBarItem):
(WI.LegacyTabBar.prototype._hasMoreThanOneNormalTab):
(WI.LegacyTabBar.prototype._openDefaultTab):
(WI.LegacyTabBar.prototype._recordTabBarItemSizesAndPositions):
(WI.LegacyTabBar.prototype._applyTabBarItemSizesAndPositions):
(WI.LegacyTabBar.prototype._clearTabBarItemSizesAndPositions):
(WI.LegacyTabBar.prototype._finishExpandingTabsAfterClose.):
(WI.LegacyTabBar.prototype._finishExpandingTabsAfterClose):
(WI.LegacyTabBar.prototype._handleMouseDown):
(WI.LegacyTabBar.prototype._handleClick):
(WI.LegacyTabBar.prototype._handleMouseMoved):
(WI.LegacyTabBar.prototype._handleMouseUp):
(WI.LegacyTabBar.prototype._handleMouseLeave):
(WI.LegacyTabBar.prototype._handleContextMenu):
(WI.LegacyTabBar.prototype._handleNewTabClick):
(WI.LegacyTabBar.prototype._handleTabPickerTabContextMenu):
(WI.LegacyTabBar.prototype._handleNewTabMouseEnter):

* UserInterface/Views/NetworkTabContentView.js:
(WI.NetworkTabContentView):
* UserInterface/Views/NewTabContentView.js:
(WI.NewTabContentView):
(WI.NewTabContentView.tabInfo):
(WI.NewTabContentView.isEphemeral): Deleted.
* UserInterface/Views/ResourcesTabContentView.js:
(WI.ResourcesTabContentView):
* UserInterface/Views/SearchTabContentView.js:
(WI.SearchTabContentView):
(WI.SearchTabContentView.tabInfo):
(WI.SearchTabContentView.isEphemeral): Deleted.

* UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.tabInfo):
(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
(WI.SettingsTabContentView.isEphemeral): Deleted.

* UserInterface/Views/StorageTabContentView.js:
(WI.StorageTabContentView):

* UserInterface/Views/TabBar.css:
* UserInterface/Views/TabBar.js:
(WI.TabBar):
(WI.TabBar.prototype.insertTabBarItem):
(WI.TabBar.prototype.removeTabBarItem):
(WI.TabBar.prototype.set selectedTabBarItem):
(WI.TabBar.prototype.get normalNonEphemeralTabCount):
(WI.TabBar.prototype._handleMouseDown):
(WI.TabBar.prototype._handleClick):
(WI.TabBar.prototype._handleMouseMoved):
(WI.TabBar.prototype._handleMouseLeave):
(WI.TabBar.prototype._handleContextMenu):
(WI.TabBar.prototype._handleTabPickerTabContextMenu):
(WI.TabBar.prototype.get newTabTabBarItem): Deleted.
(WI.TabBar.prototype.updateNewTabTabBarItemState): Deleted.
(WI.TabBar.prototype._openDefaultTab): Deleted.
(WI.TabBar.prototype._handleNewTabClick): Deleted.
(WI.TabBar.prototype._handleNewTabMouseEnter): Deleted.
Remove support for the New Tab button and default tab. Without a default
tab, there is nothing to display when no tabs are open, so prevent the
last non-pinned tab from being removed.

* UserInterface/Views/TabBrowser.js:
(WI.TabBrowser._tabBarItemRemoved):
* UserInterface/Views/TabContentView.js:
(WI.TabContentView.isEphemeral): Deleted.
* UserInterface/Views/TimelineTabContentView.js:
(WI.TimelineTabContentView):

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

2 years agoMake MallocBench easier for non-WebKit engineers to run
ggaren@apple.com [Fri, 2 Feb 2018 20:30:23 +0000 (20:30 +0000)]
Make MallocBench easier for non-WebKit engineers to run
https://bugs.webkit.org/show_bug.cgi?id=182415

Reviewed by Saam Barati.

* MallocBench/MallocBench.xcodeproj/project.pbxproj: Use c++14 so we
can make_unique.

Specify that we support all Darwin platforms so you can test them.

* MallocBench/run-malloc-benchmarks: Specify the path to MallocBench
and libmbmalloc explicitly, rather than computing them implicitly
using webkitdirs. Non-WebKit folks don't have the directory structure
required by webkitdirs.

Remove Linux-specific and cmake-specific behaviors because we only
needed them in the world of implicit path computation.

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

2 years agoMore ARM64_32 fixes.
mark.lam@apple.com [Fri, 2 Feb 2018 20:24:40 +0000 (20:24 +0000)]
More ARM64_32 fixes.
https://bugs.webkit.org/show_bug.cgi?id=182441
<rdar://problem/37162310>

Reviewed by Dan Bernstein.

Source/JavaScriptCore:

I also disabled more dynamicPoisoning code in ARM64_32.  This code assumes a
64-bit pointer which is not applicable here.

* jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::emitDynamicPoison):
(JSC::AssemblyHelpers::emitDynamicPoisonOnLoadedType):
(JSC::AssemblyHelpers::emitDynamicPoisonOnType):

Source/WTF:

My previous speculative ARM64_32 build fix in copyLCharsFromUCharSource() was wrong.
I've now fixed it to choose the default implementation case instead of the ARM64
case if the target is ARM64_32.

* wtf/text/ASCIIFastPath.h:
(WTF::copyLCharsFromUCharSource):

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

2 years ago[Win] MSVC doesn't seem to like "friend class NeverDestroyed<Foo>"
commit-queue@webkit.org [Fri, 2 Feb 2018 19:38:06 +0000 (19:38 +0000)]
[Win] MSVC doesn't seem to like "friend class NeverDestroyed<Foo>"
https://bugs.webkit.org/show_bug.cgi?id=182081

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

The template friend class, which belongs to a different namespace,
can't access private member if its friend declaration is specified
without the namespace and with class keyword.

Replaced "friend class NeverDestroyed<Foo>" with "friend NeverDestroyed<Foo>".

* NetworkProcess/NetworkProcess.h:
* NetworkProcess/capture/NetworkCaptureManager.h:
* PluginProcess/PluginProcess.h:
* Shared/CallbackID.h:
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
* StorageProcess/StorageProcess.h:
* UIProcess/Plugins/PluginProcessManager.h:
* UIProcess/Plugins/gtk/PluginInfoCache.h:
* UIProcess/WebPageProxy.cpp:
* UIProcess/WebPasteboardProxy.h:
* UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
* UIProcess/gtk/HardwareAccelerationManager.h:
* UIProcess/gtk/WaylandCompositor.h:
* UIProcess/linux/MemoryPressureMonitor.h:
* UIProcess/mac/ServicesController.h:
* WebProcess/InjectedBundle/API/glib/WebKitExtensionManager.h:
* WebProcess/Plugins/WebPluginInfoProvider.h:
* WebProcess/WebCoreSupport/WebPasteboardOverrides.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:

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

2 years agoConfigure serviceWorkerRegistrationDirectory on the web site data store and move...
commit-queue@webkit.org [Fri, 2 Feb 2018 19:25:21 +0000 (19:25 +0000)]
Configure serviceWorkerRegistrationDirectory on the web site data store and move it to a Caches subfolder as a default
https://bugs.webkit.org/show_bug.cgi?id=182403

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-02
Reviewed by Alex Christensen.

Source/WebKit:

WebsiteDataStore is the place to set configuration information such as service worker registration path.
This patch updates WebKit code accordingly.
By default, the service worker registration path is in a Caches subfolder, similarly to cache API path.

* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration):
(API::ProcessPoolConfiguration::ProcessPoolConfiguration):
(API::ProcessPoolConfiguration::copy):
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/C/WKContextConfigurationRef.cpp:
(WKContextConfigurationCopyServiceWorkerDatabaseDirectory): Deleted.
(WKContextConfigurationSetServiceWorkerDatabaseDirectory): Deleted.
* UIProcess/API/C/WKContextConfigurationRef.h:
* UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory):
* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _serviceWorkerRegistrationDirectory]):
(-[WKWebsiteDataStore _setServiceWorkerRegistrationDirectory:]):
* UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore):
(WebKit::WebProcessPool::initializeNewWebProcess):
* UIProcess/WebsiteData/WebsiteDataStore.h:
(WebKit::WebsiteDataStore::serviceWorkerRegistrationDirectory const):
(WebKit::WebsiteDataStore::setServiceWorkerRegistrationDirectory):
* UIProcess/gtk/WebProcessPoolGtk.cpp:
* UIProcess/gtk/WebProcessPoolWPE.cpp:

Tools:

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::generateContextConfiguration const):
* WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::initializeWebViewConfiguration):

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

2 years agoMapHash should return true to doesGC in the DFG depending on useKind because it might...
sbarati@apple.com [Fri, 2 Feb 2018 19:07:31 +0000 (19:07 +0000)]
MapHash should return true to doesGC in the DFG depending on useKind because it might resolve a rope
https://bugs.webkit.org/show_bug.cgi?id=182402

Reviewed by Yusuke Suzuki.

* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):

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

2 years ago[Modern Media Controls] Turn media/modern-media-controls/volume-* back on
graouts@webkit.org [Fri, 2 Feb 2018 18:51:37 +0000 (18:51 +0000)]
[Modern Media Controls] Turn media/modern-media-controls/volume-* back on
https://bugs.webkit.org/show_bug.cgi?id=182438

Reviewed by Dean Jackson.

Update tests to match the modern-media-controls design and expectations.
One test was reworked as a Slider test since VolumeSlider no longer exists.

* media/modern-media-controls/slider/slider-value-expected.txt: Renamed from LayoutTests/media/modern-media-controls/volume-slider/volume-slider-value-expected.txt.
* media/modern-media-controls/slider/slider-value.html: Renamed from LayoutTests/media/modern-media-controls/volume-slider/volume-slider-value.html.
* media/modern-media-controls/volume-down-support/volume-down-support-expected.txt:
* media/modern-media-controls/volume-down-support/volume-down-support.html:
* media/modern-media-controls/volume-slider/volume-slider-expected.txt: Removed.
* media/modern-media-controls/volume-slider/volume-slider-value-expected.txt: Removed.
* media/modern-media-controls/volume-slider/volume-slider.html: Removed.
* media/modern-media-controls/volume-support/volume-support-click-expected.txt:
* media/modern-media-controls/volume-support/volume-support-click.html:
* media/modern-media-controls/volume-support/volume-support-drag-expected.txt:
* media/modern-media-controls/volume-support/volume-support-drag.html:
* media/modern-media-controls/volume-up-support/volume-up-support-expected.txt:
* media/modern-media-controls/volume-up-support/volume-up-support.html:
* platform/ios/TestExpectations:
* platform/mac/TestExpectations:

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

2 years ago[Extra Zoom Mode] Implement support for indirect mainframe scrolling
wenson_hsieh@apple.com [Fri, 2 Feb 2018 17:44:36 +0000 (17:44 +0000)]
[Extra Zoom Mode] Implement support for indirect mainframe scrolling
https://bugs.webkit.org/show_bug.cgi?id=182421
<rdar://problem/35142694>

Reviewed by Tim Horton.

Makes a few small adjustments to WKScrollView to improve mainframe scrolling, and disable the pinch gesture for
zooming. See below for more details.

* UIProcess/API/Cocoa/WKWebView.mm:

Remove a now-unneeded WebKitAdditions import.

* UIProcess/ios/WKScrollView.mm:
(-[WKScrollView initWithFrame:]):

Add imports for -Before and -After versions of WKScrollViewAdditions.

(-[WKScrollView addGestureRecognizer:]):

Override -addGestureRecognizer here to prevent touches on the pinch gesture recognizer from being recognized.
I chose this approach instead of just disabling the gesture in -initWithFrame: because (1) the pinch gesture
recognizer is lazily created when setting minimum or maximum zoom scales, rather than immediately in
-initWithFrame:, and (2) even if we set the -enabled to NO, UIKit later resets it to YES in other codepaths.

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

2 years agoClearing a registration should null out its workers before setting their state to...
cdumez@apple.com [Fri, 2 Feb 2018 17:33:53 +0000 (17:33 +0000)]
Clearing a registration should null out its workers before setting their state to "redundant"
https://bugs.webkit.org/show_bug.cgi?id=182418
<rdar://problem/37142874>

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT test now that all checks are passing. I verified that this test is passing
in both Firefox and Chrome.

* web-platform-tests/service-workers/service-worker/activation.https-expected.txt:

Source/WebCore:

Clearing a registration should null out its workers before setting their state to "redundant".
This seems to match Firefox and Chrome.

No new tests, rebaselined existing test.

* workers/service/server/SWServerRegistration.cpp:
(WebCore::SWServerRegistration::clear):
(WebCore::clearRegistrationWorker): Deleted.

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

2 years ago[GTK] WebDriver: tests step always times out in the bot
carlosgc@webkit.org [Fri, 2 Feb 2018 17:25:24 +0000 (17:25 +0000)]
[GTK] WebDriver: tests step always times out in the bot
https://bugs.webkit.org/show_bug.cgi?id=182437

Reviewed by Carlos Alberto Lopez Perez.

The process itself is not timing out, but the buildbot step is. This is because we are leaking the Xvfb
processes. We should ensure that only one driver is executed and it's stopped before the process finishes.

* Scripts/run-webdriver-tests: Call teardown() after run().
* Scripts/webkitpy/webdriver_tests/webdriver_selenium_executor.py:
(WebDriverSeleniumExecutor.__init__): Receive the env directly instead of the display driver.
* Scripts/webkitpy/webdriver_tests/webdriver_test_runner.py:
(WebDriverTestRunner.__init__): Use the driver class directly instead of using the DriverProxy. Get the env from
the display driver once and pass it to the test runners.
(WebDriverTestRunner.teardown): Stop the display server.
* Scripts/webkitpy/webdriver_tests/webdriver_test_runner_selenium.py:
(WebDriverTestRunnerSelenium.__init__): Receive the env directly instead of the display driver.
(WebDriverTestRunnerSelenium.collect_tests): Pass the env to the executor.
(WebDriverTestRunnerSelenium.run): Ditto.
* Scripts/webkitpy/webdriver_tests/webdriver_test_runner_w3c.py:
(WebDriverTestRunnerW3C.__init__): Receive the env directly instead of the display driver.
(WebDriverTestRunnerW3C.run): Pass the env to the executor.
* Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py:
(WebDriverW3CExecutor.__init__): Receive the env directly instead of the display driver.

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

2 years agoUnreviewed, rolling out r227999.
carlosgc@webkit.org [Fri, 2 Feb 2018 17:20:12 +0000 (17:20 +0000)]
Unreviewed, rolling out r227999.

It didn't fix the problem

Reverted changeset:

"Unreviewed. Try to avoid webdriver tests step timing out in
the bots."
https://trac.webkit.org/changeset/227999

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

2 years ago[JSC] Clean up ArraySpeciesCreate
utatane.tea@gmail.com [Fri, 2 Feb 2018 17:12:23 +0000 (17:12 +0000)]
[JSC] Clean up ArraySpeciesCreate
https://bugs.webkit.org/show_bug.cgi?id=182434

Reviewed by Saam Barati.

We have duplicate code in filter, map, concatSlowPath.
This patch creates a new global private function @arraySpeciesCreate,
and use it.

* builtins/ArrayPrototype.js:
(globalPrivate.arraySpeciesCreate):
(filter):
(map):
(globalPrivate.concatSlowPath):

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

2 years agoJSTests: Skip mozilla/js1_5/Array/regress-157652.js on all memory limited platforms
guijemont@igalia.com [Fri, 2 Feb 2018 16:38:55 +0000 (16:38 +0000)]
JSTests: Skip mozilla/js1_5/Array/regress-157652.js on all memory limited platforms
https://bugs.webkit.org/show_bug.cgi?id=182411

Reviewed by Carlos Alberto Lopez Perez.

This is skipped only on arm memory limited platforms. Until recently
it was not a problem on MIPS as the butterfly was not initialized. But
since r227435, the butterfly is initialized in that test and therefore
memory is allocated, and the test typically takes around 512M, which
means it generally gets OOM-killed on the MIPS buildbot.

* mozilla/mozilla-tests.yaml:

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

2 years ago[Modern Media Controls] Turn media/modern-media-controls/tracks-panel and media/moder...
commit-queue@webkit.org [Fri, 2 Feb 2018 16:30:13 +0000 (16:30 +0000)]
[Modern Media Controls] Turn media/modern-media-controls/tracks-panel and media/modern-media-controls/tracks-support back on
https://bugs.webkit.org/show_bug.cgi?id=182426

Patch by Antoine Quint <graouts@apple.com> on 2018-02-02
Reviewed by Dean Jackson.

Source/WebCore:

Ensure that the tracks panel isn't dismissed by updating the layout.

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

LayoutTests:

Update tests to match the modern-media-controls design and expectations. One test fails currently due to an issue with the
auto-hide behavior, it is tracked in webkit.org/b/182425.

* media/modern-media-controls/tracks-panel/tracks-panel-controls-bar-remains-visible-after-clicking-over-it-expected.txt:
* media/modern-media-controls/tracks-panel/tracks-panel-controls-bar-remains-visible-after-clicking-over-it.html:
* media/modern-media-controls/tracks-panel/tracks-panel-position-and-size-expected.txt:
* media/modern-media-controls/tracks-panel/tracks-panel-position-and-size.html:
* media/modern-media-controls/tracks-panel/tracks-panel-prevent-controls-bar-from-fading-expected.txt:
* media/modern-media-controls/tracks-panel/tracks-panel-prevent-controls-bar-from-fading.html:
* media/modern-media-controls/tracks-support/tracks-support-audio-tracks-expected.txt:
* media/modern-media-controls/tracks-support/tracks-support-audio-tracks.html:
* media/modern-media-controls/tracks-support/tracks-support-captions-offset-with-controls-bar-expected.txt:
* media/modern-media-controls/tracks-support/tracks-support-captions-offset-with-controls-bar.html:
* media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen-expected.txt:
* media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html:
* media/modern-media-controls/tracks-support/tracks-support-text-tracks-expected.txt:
* media/modern-media-controls/tracks-support/tracks-support-text-tracks.html:
* platform/mac/TestExpectations:

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

2 years agoimagebitmap gardening
Ms2ger@igalia.com [Fri, 2 Feb 2018 15:24:11 +0000 (15:24 +0000)]
imagebitmap gardening
https://bugs.webkit.org/show_bug.cgi?id=182430

Unreviewed test gardening.

* platform/ios/TestExpectations:
* platform/mac/TestExpectations:

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

2 years ago[GTK][Wayland][WPE] fast/canvas/canvas-createPattern-video-modify.html failing
csaavedra@igalia.com [Fri, 2 Feb 2018 15:14:09 +0000 (15:14 +0000)]
[GTK][Wayland][WPE] fast/canvas/canvas-createPattern-video-modify.html failing
https://bugs.webkit.org/show_bug.cgi?id=182432

Unreviewed gardening.
* platform/gtk-wayland/TestExpectations:
* platform/wpe/TestExpectations:

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

2 years agoUnreviewed build fix for JSCOnly on macOS after r227845.
annulen@yandex.ru [Fri, 2 Feb 2018 15:02:04 +0000 (15:02 +0000)]
Unreviewed build fix for JSCOnly on macOS after r227845.
https://bugs.webkit.org/show_bug.cgi?id=182274

Reverted part of r227845 that moved CommonCryptoSPI.h
handling into PlatformMac, because it is needed for all
ports which can be built on macOS.

* wtf/CMakeLists.txt:
* wtf/PlatformMac.cmake:

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

2 years agoUnreviewed, rolling out r227964.
commit-queue@webkit.org [Fri, 2 Feb 2018 13:54:14 +0000 (13:54 +0000)]
Unreviewed, rolling out r227964.
https://bugs.webkit.org/show_bug.cgi?id=182423

It broke several unit tests (Requested by KaL on #webkit).

Reverted changeset:

"[SOUP] Ensure domain is valid when converting a WebCore
Cookie to Soup"
https://bugs.webkit.org/show_bug.cgi?id=182328
https://trac.webkit.org/changeset/227964

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

2 years agoStart timeout for the run-buildbot-test script is too aggressive
clopez@igalia.com [Fri, 2 Feb 2018 13:46:47 +0000 (13:46 +0000)]
Start timeout for the run-buildbot-test script is too aggressive
https://bugs.webkit.org/show_bug.cgi?id=182429

Reviewed by Carlos Garcia Campos.

15 seconds is not enough waiting for the update database process
to complete on a system backed with rotational HDDs. Raise it to 60.

* BuildSlaveSupport/build.webkit.org-config/run-buildbot-test.py:
(wait_for_master_ready):

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

2 years agore-add ARM JSCOnly bots on buildbot waterfall
clopez@igalia.com [Fri, 2 Feb 2018 12:36:16 +0000 (12:36 +0000)]
re-add ARM JSCOnly bots on buildbot waterfall
https://bugs.webkit.org/show_bug.cgi?id=182428

Reviewed by Csaba Osztrogonác.

* BuildSlaveSupport/build.webkit.org-config/config.json:
* BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:

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

2 years agoUpdate imagebitmap tests.
Ms2ger@igalia.com [Fri, 2 Feb 2018 12:33:51 +0000 (12:33 +0000)]
Update imagebitmap tests.
https://bugs.webkit.org/show_bug.cgi?id=182335
<rdar://problem/37110684>

Unreviewed test gardening.

LayoutTests/imported/w3c:

* web-platform-tests/2dcontext/imagebitmap/common.sub.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/common.js.
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html:
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html:
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: Added.
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub.html: Added.
* web-platform-tests/2dcontext/imagebitmap/w3c-import.log:
* web-platform-tests/common/namespaces.js: Added.
* web-platform-tests/common/w3c-import.log:
* web-platform-tests/images/pattern.mp4: Added.
* web-platform-tests/images/pattern.svg: Added.
* web-platform-tests/images/w3c-import.log:

LayoutTests:

* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: Added.
* platform/mac/TestExpectations:
* platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: Removed.
* platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: Added.

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

2 years agoRemove ARM JSCOnly bots from buildbot waterfall
ossy@webkit.org [Fri, 2 Feb 2018 12:19:26 +0000 (12:19 +0000)]
Remove ARM JSCOnly bots from buildbot waterfall
https://bugs.webkit.org/show_bug.cgi?id=182398

Reviewed by Alexey Proskuryakov.

* BuildSlaveSupport/build.webkit.org-config/config.json:
* BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:

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

2 years ago[GTK] fast/events/message-channel-gc-4.html is flaky
commit-queue@webkit.org [Fri, 2 Feb 2018 10:53:30 +0000 (10:53 +0000)]
[GTK] fast/events/message-channel-gc-4.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=182104

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2018-02-02
Reviewed by Carlos Garcia Campos.

Source/WTF:

RELEASE_ASSERT of ThreadSpecific::set fails because
RunLoop::current is called even in GC thread since r227275.

* wtf/RunLoop.cpp:
(WTF::RunLoop::current):
Let the second template argument of ThreadSpecific CanBeGCThread::True.

LayoutTests:

* platform/gtk/TestExpectations:
Unmarked fast/events/message-channel-gc-4.html and fast/workers/worker-cloneport.html.

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

2 years agoUnreviewed. Update Selenium WebDriver imported tests.
carlosgc@webkit.org [Fri, 2 Feb 2018 09:24:22 +0000 (09:24 +0000)]
Unreviewed. Update Selenium WebDriver imported tests.

* imported/selenium/importer.json:
* imported/selenium/py/selenium/__init__.py:
* imported/selenium/py/selenium/webdriver/remote/errorhandler.py:
* imported/selenium/py/selenium/webdriver/remote/remote_connection.py:
* imported/selenium/py/test/selenium/webdriver/common/alerts_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/click_scrolling_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/correct_event_firing_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/driver_element_finding_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/element_attribute_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/executing_async_javascript_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/frame_switching_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/interactions_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/page_load_timeout_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/page_loading_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/rendered_webelement_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/stale_reference_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/webdriverwait_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/window_switching_tests.py:
* imported/selenium/py/test/selenium/webdriver/common/window_tests.py:

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

2 years agoUnreviewed. Try to avoid webdriver tests step timing out in the bots.
carlosgc@webkit.org [Fri, 2 Feb 2018 08:47:38 +0000 (08:47 +0000)]
Unreviewed. Try to avoid webdriver tests step timing out in the bots.

This is another speculative workaround. Carlos Lopez suggested to use os._exit() instead of sys.exit() as a
workaround for a bug in python2.7 when using multiprocess module.

* Scripts/run-webdriver-tests:

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

2 years agoFix broken bounds check in FTL's compileGetMyArgumentByVal().
mark.lam@apple.com [Fri, 2 Feb 2018 07:30:30 +0000 (07:30 +0000)]
Fix broken bounds check in FTL's compileGetMyArgumentByVal().
https://bugs.webkit.org/show_bug.cgi?id=182419
<rdar://problem/37044945>

Reviewed by Saam Barati.

JSTests:

* stress/regress-182419.js: Added.

Source/JavaScriptCore:

In compileGetMyArgumentByVal(), it computes:
    limit = m_out.sub(limit, m_out.constInt32(m_node->numberOfArgumentsToSkip()));
    ...
    LValue isOutOfBounds = m_out.aboveOrEqual(originalIndex, limit);

where the original "limit" is the number of arguments passed in by the caller.
If the original limit is less than numberOfArgumentsToSkip, the resultant limit
will be a large unsigned number.  As a result, this will defeat the bounds check
that follows it.

Note: later on in compileGetMyArgumentByVal(), we have to adjust adjust the index
value by adding numberOfArgumentsToSkip to it, in order to determine the actual
entry in the arguments array to get.

The fix is to just add numberOfArgumentsToSkip to index upfront (instead of
subtracting it from limit), and doing an overflow speculation check on that
addition before doing the bounds check.

* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileGetMyArgumentByVal):

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

2 years agoWhen SW install fails, null out registration.installing before setting worker state...
cdumez@apple.com [Fri, 2 Feb 2018 07:09:25 +0000 (07:09 +0000)]
When SW install fails, null out registration.installing before setting worker state to "redundant"
https://bugs.webkit.org/show_bug.cgi?id=182416
<rdar://problem/37141997>

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT test now that one more check is passing.

* web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https-expected.txt:

Source/WebCore:

When SW install fails, null out registration.installing before setting worker state to "redundant".
This does not match the spec but this is what Firefox and Chrome do. This is also what the
web-platform-tests expect.

Test: http/tests/workers/service/install-fails.html

* workers/service/server/SWServerJobQueue.cpp:
(WebCore::SWServerJobQueue::didFinishInstall):

LayoutTests:

Add layout test coverage. I have verified that this test is passing in both Firefox and Chrome.

* http/tests/workers/service/install-fails-expected.txt: Added.
* http/tests/workers/service/install-fails.html: Added.
* http/tests/workers/service/resources/install-fails-worker.js: Added.
(event.event.waitUntil.new.Promise):

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

2 years agoCreate BuildbotBuildEntry in Buildbot syncer in Buildbot 0.9 format
aakash_jain@apple.com [Fri, 2 Feb 2018 07:06:19 +0000 (07:06 +0000)]
Create BuildbotBuildEntry in Buildbot syncer in Buildbot 0.9 format
https://bugs.webkit.org/show_bug.cgi?id=182036

Reviewed by Ryosuke Niwa.

* tools/js/buildbot-syncer.js:
(BuildbotBuildEntry): Class for Buildbot entry in Buildbot 0.9 data format.
(BuildbotBuildEntryDeprecated): Renamed from BuildbotBuildEntry, sub-classed from BuildBotEntry. Handles Buildbot 0.8 data format.
(BuildbotBuildEntryDeprecated.prototype.url): URL in buildbot 0.8 format.
(BuildbotSyncer.prototype.builderID): Added.
(BuildbotSyncer.prototype.pathForPendingBuildsJSONDeprecated): Renamed from BuildbotSyncer.prototype.pathForPendingBuildsJSON.
(BuildbotSyncer.prototype.pathForPendingBuilds): Path for pending builds in Buildbot 0.9 format.
(BuildbotSyncer.prototype.urlForBuildNumberDeprecated): Deprecated. Renamed from urlForBuildNumber.
(BuildbotSyncer.prototype.urlForBuildNumber): Updated in Buildbot 0.9 format.
(BuildbotSyncer.prototype.urlForPendingBuild): Buildbot 0.9 has individual webpage for pending buildrequests as well. URL to that page.
* unit-tests/buildbot-syncer-tests.js: Renamed BuildbotBuildEntry to BuildbotBuildEntryDeprecated.
(sampleBuildData): Sample build data. Common method for in-progress and finished build data.
(samplePendingBuildData): Sample data for a pending build. Separate method so that we can easily create sample data with multiple builds.
(sampleInProgressBuildData): Ditto for in-progress build.
(sampleFinishedBuildData): Ditto for finished build.
(samplePendingBuild): Sample data for single pending build.
(sampleInProgressBuild): Ditto for in-progress build.
(sampleFinishedBuild): Ditto for finished build.
(samplePendingBuildDeprecated): Renamed from samplePendingBuild.
(sampleInProgressBuildDeprecated): Renamed from sampleInProgressBuild.
(sampleFinishedBuildDeprecated): Renamed from sampleFinishedBuild.
(BuildbotBuildEntry.it: Added unit-test for creating BuildbotBuildEntry for pending build.
(BuildbotBuildEntry.it: Added unit-test for creating BuildbotBuildEntry for in-progress build.
(BuildbotBuildEntry.it: Added unit-test for creating BuildbotBuildEntry for finished build.
(BuildbotBuildEntry.it: Added unit-test for creating BuildbotBuildEntry for mix of in-progress and finished build.

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

2 years agoTest fix after r227848.
mmaxfield@apple.com [Fri, 2 Feb 2018 04:46:23 +0000 (04:46 +0000)]
Test fix after r227848.
https://bugs.webkit.org/show_bug.cgi?id=180951

Unreviewed.

Using kCTFontNameAttribute on an in-memory font causes CTFontDescriptorCreateMatchingFontDescriptor()
to return nullptr. Luckily, we weren't using that attribute anyway.

Covered by existing tests.

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

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

2 years agoFix crashes due to mishandling custom sections.
keith_miller@apple.com [Fri, 2 Feb 2018 04:30:37 +0000 (04:30 +0000)]
Fix crashes due to mishandling custom sections.
https://bugs.webkit.org/show_bug.cgi?id=182404
<rdar://problem/36935863>

Reviewed by Saam Barati.

JSTests:

* wasm/Builder.js:
(export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
* wasm/js-api/validate.js:
(assert.truthy):

Source/JavaScriptCore:

This also cleans up some of our validation code. We also
mistakenly, allowed unknown (different from custom sections with
id: 0) section ids.

* wasm/WasmModuleParser.cpp:
(JSC::Wasm::ModuleParser::parse):
* wasm/WasmModuleParser.h:
* wasm/WasmSections.h:
(JSC::Wasm::isKnownSection):
(JSC::Wasm::decodeSection):
(JSC::Wasm::validateOrder):
(JSC::Wasm::makeString):
(JSC::Wasm::isValidSection): Deleted.

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

2 years agoWebKit fails to build (_startAssistingNode has conflicting parameters)
timothy_horton@apple.com [Fri, 2 Feb 2018 04:20:48 +0000 (04:20 +0000)]
WebKit fails to build (_startAssistingNode has conflicting parameters)
https://bugs.webkit.org/show_bug.cgi?id=182417
<rdar://problem/36965318>

Reviewed by Dan Bernstein.

* UIProcess/ios/WKContentViewInteraction.h:
Use Big BOOL like in the implementation.

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

2 years agoFix race-condition in fast/forms/ios/ipad/select-form-run-twice.html
megan_gardner@apple.com [Fri, 2 Feb 2018 02:13:40 +0000 (02:13 +0000)]
Fix race-condition in fast/forms/ios/ipad/select-form-run-twice.html
https://bugs.webkit.org/show_bug.cgi?id=182370

Reviewed by Tim Horton.

There is the potential for multiple button clicks, due to looping function calls that can cause timed functions to
still be running in the next test, causing crashes. Guarding against repeated clicks, and cancelling the timers should
clean up this problem.

* fast/forms/ios/ipad/select-form-run-twice.html:
* fast/forms/ios/ipad/unfocus-inside-fixed-hittest.html:

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

2 years agoImprove NetworkResourceLogger to report blocked (versus non-partitioned) cookies
bfulgham@apple.com [Fri, 2 Feb 2018 00:54:43 +0000 (00:54 +0000)]
Improve NetworkResourceLogger to report blocked (versus non-partitioned) cookies
https://bugs.webkit.org/show_bug.cgi?id=182408
<rdar://problem/36918028>

Reviewed by Chris Dumez.

Update the logging method to report blocked origins, rather than logging them as non-partitioned
loads that have no cookies or other content.

* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::logCookieInformation const):

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

2 years agoREGRESSION (r222824): UI process crashes in WebKit::WebBackForwardList::backItem...
ddkilzer@apple.com [Fri, 2 Feb 2018 00:40:31 +0000 (00:40 +0000)]
REGRESSION (r222824): UI process crashes in WebKit::WebBackForwardList::backItem const
<https://webkit.org/b/182409>
<rdar://problem/35495094>

Reviewed by Alex Christensen.

* UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::goToItem): Fix typo so the for loop
actually checks each value in m_entries.

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

2 years agoDelay service worker process creation until actually needed by SWServer
commit-queue@webkit.org [Fri, 2 Feb 2018 00:25:12 +0000 (00:25 +0000)]
Delay service worker process creation until actually needed by SWServer
https://bugs.webkit.org/show_bug.cgi?id=182301

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

Source/WebCore:

Rename SWServer::Connection::scheduleJobInServer to scheduleJob.
Add sessionID getter from an SWServer.

* workers/service/server/SWServer.h:
(WebCore::SWServer::sessionID const):

Source/WebKit:

Do not create a service worker process at creation of the first SWServerConnection.
Wait for a WebProcess message that needs it:
- postMessage message
- fetchEvent message
- job scheduling.

* StorageProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::startFetch):
(WebKit::WebSWServerConnection::postMessageToServiceWorker):
(WebKit::WebSWServerConnection::scheduleJobInServer):
* StorageProcess/ServiceWorker/WebSWServerConnection.h:
* StorageProcess/StorageToWebProcessConnection.cpp:
(WebKit::StorageToWebProcessConnection::establishSWServerConnection):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
(function):

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

2 years agoREGRESSION(r227594) [WinCairo] NULL pointer crash in GraphicsContext::getWindowsContext
commit-queue@webkit.org [Fri, 2 Feb 2018 00:16:50 +0000 (00:16 +0000)]
REGRESSION(r227594) [WinCairo] NULL pointer crash in GraphicsContext::getWindowsContext
https://bugs.webkit.org/show_bug.cgi?id=182282

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

ImageBufferCairo has been changed to use GraphicsContextImplCairo
in r227594. But, GraphicsContext::getWindowsContext doesn't care
the case of using GraphicsContextImpl and crashes due to null
dereference of GraphicsContext::m_data.

GraphicsContext::getWindowsContext should create a HDC in that case.

Remove the argument mayCreateBitmap because it is always
true at the moment.

No new tests (Covered by the existing tests)

* platform/graphics/GraphicsContext.h:
Removed a argument mayCreateBitmap of getWindowsContext and releaseWindowsContext.
* platform/graphics/win/GraphicsContextCGWin.cpp:
(WebCore::GraphicsContext::releaseWindowsContext): Ditto.
* platform/graphics/win/GraphicsContextCairoWin.cpp:
(WebCore::GraphicsContext::releaseWindowsContext): Ditto.
* platform/graphics/win/GraphicsContextDirect2D.cpp:
(WebCore::GraphicsContext::releaseWindowsContext): Ditto.
* platform/graphics/win/GraphicsContextWin.cpp:
(WebCore::GraphicsContext::getWindowsContext):
Create a HDC if m_impl is null. Removed a argument mayCreateBitmap.
* platform/graphics/win/LocalWindowsContext.h:
(WebCore::LocalWindowsContext::LocalWindowsContext):
Removed m_mayCreateBitmap.
(WebCore::LocalWindowsContext::~LocalWindowsContext): Ditto.

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

2 years ago[Curl] Use SQLite database in cookie jar implementation for Curl port
commit-queue@webkit.org [Fri, 2 Feb 2018 00:08:41 +0000 (00:08 +0000)]
[Curl] Use SQLite database in cookie jar implementation for Curl port
https://bugs.webkit.org/show_bug.cgi?id=174942

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

No new tests, Set-Cookie is already tested in Layout tests.

Adding an initial SQLite CookieJar implementation to the curl network layer.
WebCore will now parse and handle both HTTP and DOM cookies instead of using libcurl.
This currently supports cookie storage and retrieval.
Cookie deletion is not yet implemented.

* platform/Curl.cmake:
* platform/network/NetworkStorageSession.h: Added cookieDB storage in curl.
* platform/network/curl/CookieJarCurl.cpp: Removed the old curl cookie handling.
* platform/network/curl/CookieJarCurl.h:
* platform/network/curl/CookieJarCurlDatabase.cpp: Added.
* platform/network/curl/CookieJarCurlDatabase.h: Added.
* platform/network/curl/CookieJarDB.cpp: Added.
* platform/network/curl/CookieJarDB.h: Added.
* platform/network/curl/CookieUtil.cpp: Added.
* platform/network/curl/CookieUtil.h: Added.
* platform/network/curl/CurlContext.cpp: Removed the old curl cookie handling.
* platform/network/curl/CurlContext.h:
* platform/network/curl/CurlRequest.cpp: Added handlers for HTTP response cookies.
* platform/network/curl/NetworkStorageSessionCurl.cpp:
* platform/network/curl/ResourceHandleCurlDelegate.cpp:

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

2 years agoSkipped http/tests/resourceLoadStatistics/non-prevalent-resource-with-user-interactio...
jlewis3@apple.com [Thu, 1 Feb 2018 23:42:47 +0000 (23:42 +0000)]
Skipped http/tests/resourceLoadStatistics/non-prevalent-resource-with-user-interaction.html on macOS WK2.
https://bugs.webkit.org/show_bug.cgi?id=182366

Unreviewed test gardening.

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

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

2 years agoAdd missing RETURN_IF_EXCEPTION() after object->get() calls in convertDictionary<>()
cdumez@apple.com [Thu, 1 Feb 2018 23:33:19 +0000 (23:33 +0000)]
Add missing RETURN_IF_EXCEPTION() after object->get() calls in convertDictionary<>()
https://bugs.webkit.org/show_bug.cgi?id=182392
<rdar://problem/37119215>

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test now that all checks are passing.

* web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/extendable-message-event-constructor.https-expected.txt:

Source/WebCore:

Add missing RETURN_IF_EXCEPTION() after object->get() calls in convertDictionary<>(),
given that getting the property from the object can throw an exception.

No new tests, rebaselined existing test.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateDictionaryImplementationContent):
* bindings/scripts/test/JS/JSTestCallbackInterface.cpp:
(WebCore::convertDictionary<TestCallbackInterface::Dictionary>):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::convertDictionary<TestEventConstructor::Init>):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::convertDictionary<TestObj::Dictionary>):
(WebCore::convertDictionary<TestObj::DictionaryThatShouldNotTolerateNull>):
(WebCore::convertDictionary<TestObj::DictionaryThatShouldTolerateNull>):
(WebCore::convertDictionary<AlternateDictionaryName>):
(WebCore::convertDictionary<TestObj::ParentDictionary>):
(WebCore::convertDictionary<TestObj::ChildDictionary>):
(WebCore::convertDictionary<TestObj::ConditionalDictionaryA>):
(WebCore::convertDictionary<TestObj::ConditionalDictionaryB>):
(WebCore::convertDictionary<TestObj::ConditionalDictionaryC>):
* bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
(WebCore::convertDictionary<TestPromiseRejectionEvent::Init>):
* bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp:
(WebCore::convertDictionary<DictionaryImplName>):

LayoutTests:

Rebaseline existing test now that output is slightly different.

* fast/events/constructors/message-event-constructor-expected.txt:

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

2 years ago[Extra zoom mode] Implement basic support for interacting with text form controls
wenson_hsieh@apple.com [Thu, 1 Feb 2018 23:17:22 +0000 (23:17 +0000)]
[Extra zoom mode] Implement basic support for interacting with text form controls
https://bugs.webkit.org/show_bug.cgi?id=182401
<rdar://problem/35143035>

Reviewed by Tim Horton.

Add UI support for interacting with and editing text form controls when extra zoom mode is enabled. See below
for more details.

* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _textInteractionGesturesEnabled]):
(-[WKWebViewConfiguration _setTextInteractionGesturesEnabled:]):
(-[WKWebViewConfiguration _longPressActionsEnabled]):
(-[WKWebViewConfiguration _setLongPressActionsEnabled:]):

Introduce two new web view configuration flags: `textInteractionGesturesEnabled` and `longPressActionsEnabled`.
The former determines whether text interaction gestures (i.e. text selection, moving the caret, showing UI for
IME, etc.) are enabled. The latter determines whether or not long press actions (i.e. touch callout, share
sheet, etc.) are enabled. These are disabled by default only in extra zoom mode.

* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setTextAsync):

Add a way to set the text value of a currently edited text form control. This will either set the text value of
an input, a. la. autofill, or overwrite the contents of a contenteditable area by selecting everything and
inserting the given text.

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

Add a default argument for the completion callback.

* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setupInteraction]):
(-[WKContentView _displayFormNodeInputView]):
(-[WKContentView _actionForLongPressFromPositionInformation:]):
(-[WKContentView hasSelectablePositionAtPoint:]):
(-[WKContentView pointIsNearMarkedText:]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
(-[WKContentView insertionPointColor]):

Respect the web view configuration flags above by bailing early from text interaction and long press action
sheet methods.

(-[WKContentView _startAssistingKeyboard]):
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):

Add a flag indicating whether we are in the process of changing focus from one node to another. We use this to
decide whether or not we want to present the text input view controller right away, or just reload the focused
form control overlay. When we stop "assisting" a node, we also keep the focused form control overlay up if we're
only changing focus to another form control.

(-[WKContentView _stopAssistingNode]):
(-[WKContentView presentFocusedFormControlViewController:]):
(-[WKContentView dismissFocusedFormControlViewController:]):
(-[WKContentView shouldPresentTextInputViewController:]):
(-[WKContentView presentTextInputViewController:]):
(-[WKContentView dismissTextInputViewController:]):

Introduce helpers for managing presentation of the focused form control overlay and text input view controller.
All -present and -dismiss helpers here are idempotent. These view controllers are presented from the content
view's view controller for fullscreen presentation.

(-[WKContentView textInputController:didCommitText:]):
(-[WKContentView textInputController:didRequestDismissalWithAction:]):
(-[WKContentView focusedFormControlControllerDidSubmit:]):
(-[WKContentView focusedFormControlControllerDidCancel:]):
(-[WKContentView focusedFormControlControllerDidBeginEditing:]):
(-[WKContentView highlightedRectForFocusedFormControlController:inCoordinateSpace:]):
(-[WKContentView actionNameForFocusedFormControlController:]):
(-[WKContentView focusedFormControlControllerDidRequestNextNode:]):
(-[WKContentView focusedFormControlControllerDidRequestPreviousNode:]):
(-[WKContentView hasNextNodeForFocusedFormControlController:]):
(-[WKContentView hasPreviousNodeForFocusedFormControlController:]):

Implement delegate methods for the focused form control and text input view controllers. This mainly involves
straightforward plumbing of pieces of AssistedNodeInformation on the content view.

(-[WKContentView pointIsInAssistedNode:]): Deleted.

Remove a method that was still implemented only for binary compatibility with iOS 10.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setTextAsync):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

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

2 years agoSome test cases in accessibility/mac/selection-notification-focus-change.html fail
rniwa@webkit.org [Thu, 1 Feb 2018 23:11:13 +0000 (23:11 +0000)]
Some test cases in accessibility/mac/selection-notification-focus-change.html fail
https://bugs.webkit.org/show_bug.cgi?id=182212
<rdar://problem/36937147>

Reviewed by Antti Koivisto and Wenson Hsieh.

Source/WebCore:

The failure was caused by the async update of the selection appearance not preserving selection reveal intent.
Fixed the bug by storing the intent in a member variable and using it later.

* dom/Element.cpp:
(WebCore::Element::focus): Removed an unnecessary synchronous layout update.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setNeedsSelectionUpdate): Use the default intent to preserve the old behavior.
(WebCore::FrameSelection::respondToNodeModification): Ditto.
(WebCore::FrameSelection::setSelection): Save the selection reveal intent.
(WebCore::FrameSelection::updateAppearanceAfterLayoutOrStyleChange): Use the saved intent.
* editing/FrameSelection.h:
* page/FocusController.cpp:
(WebCore::FocusController::advanceFocusDirectionally): Always update the layout before invoking
nodeRectInAbsoluteCoordinates.

LayoutTests:

Updated and rebaselined the tests.

* accessibility/ios-simulator/header-elements.html: Force the layout after each call to element.focus
now that element.focus no longer updates the layout synchronously. Ordinarily, this will happen next time
the layout is updated for paint, by JS API, etc... but we have to force the accessibility tree to be
up-to-date for testing purposes.
* accessibility/ios-simulator/table-cell-for-row-col.html: Ditto.
* accessibility/mac/selection-notification-focus-change-expected.txt: Now all the test cases are passing.
* accessibility/mac/table-with-row-col-of-headers.html: Force the layout after each call to element.focus.
* accessibility/mac/table-with-zebra-rows.html: Ditto.
* accessibility/scroll-to-global-point-main-window.html: Ditto.
* accessibility/scroll-to-make-visible-with-subfocus.html: Ditto.
* editing/input/caret-at-the-edge-of-input.html: Wait for the focused element to reveal itself by a timer.
* fast/forms/input-text-scroll-left-on-blur.html: Ditto.
* fast/forms/textarea-no-scroll-on-blur.html: Ditto.
* fast/forms/textarea-scrolled-type.html: Ditto.
* platform/mac-wk2/accessibility/mac/selection-notification-focus-change-expected.txt: Rebaselined. We now
get one less AXTextSelectionChangedFocus notification because selection updates are now coalesced as expected.

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

2 years ago[RenderTreeBuilder] Move RenderRubyRun::rubyBaseSafe to RenderTreeBuilder::Ruby
zalan@apple.com [Thu, 1 Feb 2018 21:48:36 +0000 (21:48 +0000)]
[RenderTreeBuilder] Move RenderRubyRun::rubyBaseSafe to RenderTreeBuilder::Ruby
https://bugs.webkit.org/show_bug.cgi?id=182306
<rdar://problem/37041440>

Reviewed by Darin Adler.

Addressing post-review comment.

* rendering/updating/RenderTreeBuilderRuby.cpp:
(WebCore::RenderTreeBuilder::Ruby::insertChild):
(WebCore::RenderTreeBuilder::Ruby::rubyBaseSafe):
* rendering/updating/RenderTreeBuilderRuby.h:

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

2 years ago[Modern Media Controls] Turn media/modern-media-controls/ios-inline-media-controls...
graouts@webkit.org [Thu, 1 Feb 2018 20:30:04 +0000 (20:30 +0000)]
[Modern Media Controls] Turn media/modern-media-controls/ios-inline-media-controls back on
https://bugs.webkit.org/show_bug.cgi?id=182390

Reviewed by Eric Carlson.

Update tests to match the modern-media-controls design and expectations.

* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-button-padding-expected.txt: Removed.
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-button-padding.html: Removed.
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-buttons-styles-expected.txt: Removed.
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-buttons-styles.html: Removed.
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-constructor-expected.txt:
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-constructor.html:
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-controls-bar-styles-expected.txt:
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-controls-bar-styles.html:
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-layout-expected.txt:
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-layout.html:
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-status-label-enabled-hidden-controls-bar-expected.txt:
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-status-label-enabled-hidden-controls-bar.html:
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-status-label-expected.txt:
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-status-label.html:
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-tight-padding-expected.txt: Removed.
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-tight-padding.html: Removed.
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-time-control-styles-expected.txt:
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-time-control-styles.html:
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-dropping-controls-expected.txt:
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-dropping-controls.html:
* platform/ios/TestExpectations:

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

2 years agoUnreviewed, rebaseline imported/w3c/web-platform-tests/service-workers/service-worker...
cdumez@apple.com [Thu, 1 Feb 2018 19:47:28 +0000 (19:47 +0000)]
Unreviewed, rebaseline imported/w3c/web-platform-tests/service-workers/service-worker/performance-timeline.https.html

LayoutTests/imported/w3c:

* web-platform-tests/service-workers/service-worker/performance-timeline.https-expected.txt:

LayoutTests:

* TestExpectations:

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

2 years ago[RenderTreeBuilder] Introduce RenderTreeBuilder to takeChild()
zalan@apple.com [Thu, 1 Feb 2018 19:42:32 +0000 (19:42 +0000)]
[RenderTreeBuilder] Introduce RenderTreeBuilder to takeChild()
https://bugs.webkit.org/show_bug.cgi?id=182373
<rdar://problem/37101484>

Reviewed by Antti Koivisto.

This is in preparation for moving mutation code out of takeChild.

No change in functionality.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::takeChild):
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::takeChild):
* rendering/RenderBlockFlow.h:
* rendering/RenderButton.cpp:
(WebCore::RenderButton::takeChild):
* rendering/RenderButton.h:
* rendering/RenderElement.cpp:
(WebCore::RenderElement::takeChild):
(WebCore::RenderElement::removeAndDestroyChild):
(WebCore::RenderElement::destroyLeftoverChildren):
* rendering/RenderElement.h:
* rendering/RenderFullScreen.cpp:
(WebCore::RenderFullScreen::wrapExistingRenderer):
(WebCore::RenderFullScreen::unwrapRenderer):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::takeChild):
* rendering/RenderGrid.h:
* rendering/RenderMenuList.cpp:
(RenderMenuList::takeChild):
* rendering/RenderMenuList.h:
* rendering/RenderMultiColumnFlow.cpp:
(WebCore::RenderMultiColumnFlow::processPossibleSpannerDescendant):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::removeFromParentAndDestroy):
* rendering/RenderRuby.cpp:
(WebCore::RenderRubyAsInline::takeChild):
(WebCore::RenderRubyAsBlock::takeChild):
* rendering/RenderRuby.h:
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::takeChild):
* rendering/RenderRubyRun.h:
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::collapseAndDestroyAnonymousSiblingRows): Deleted.
* rendering/RenderTableRow.h:
* rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::takeChild):
* rendering/svg/RenderSVGContainer.h:
* rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::takeChild):
* rendering/svg/RenderSVGInline.h:
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::takeChild):
* rendering/svg/RenderSVGRoot.h:
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::takeChild):
* rendering/svg/RenderSVGText.h:
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::collapseAndDestroyAnonymousSiblingRows):
(WebCore::RenderTreeBuilder::removeFromParentAndDestroyCleaningUpAnonymousWrappers):
* rendering/updating/RenderTreeBuilder.h:
* rendering/updating/RenderTreeBuilderFirstLetter.cpp:
(WebCore::RenderTreeBuilder::FirstLetter::updateStyle):
(WebCore::RenderTreeBuilder::FirstLetter::createRenderers):
* rendering/updating/RenderTreeBuilderList.cpp:
(WebCore::RenderTreeBuilder::List::updateItemMarker):
* rendering/updating/RenderTreeBuilderMultiColumn.cpp:
(WebCore::RenderTreeBuilder::MultiColumn::createFragmentedFlow):
(WebCore::RenderTreeBuilder::MultiColumn::destroyFragmentedFlow):
* rendering/updating/RenderTreeBuilderRuby.cpp:
(WebCore::RenderTreeBuilder::Ruby::insertChild):

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

2 years ago[WPE][GTK] Make RunLoop::TimerBase robust to its own deletion inside its source callback
mcatanzaro@igalia.com [Thu, 1 Feb 2018 19:41:11 +0000 (19:41 +0000)]
[WPE][GTK] Make RunLoop::TimerBase robust to its own deletion inside its source callback
https://bugs.webkit.org/show_bug.cgi?id=182271

Reviewed by Carlos Garcia Campos.

RunLoopTimer::fired executes the user's callback, which could delete the RunLoopTimer
itself. But the source callback is not prepared to handle this case. We can detect it
easily, because TimerBase's destructor will call g_source_destroy(), which confusingly
removes the GSource from its GMainContext without actually destroying the GSource. Then we
can check if the GSource is still attached using g_source_is_destroyed().

* wtf/glib/RunLoopGLib.cpp:
(WTF::RunLoop::TimerBase::TimerBase):

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

2 years agoFollowup test expectation adjustment from r227947.
jlewis3@apple.com [Thu, 1 Feb 2018 19:07:48 +0000 (19:07 +0000)]
Followup test expectation adjustment from r227947.

Unreviewed test expectations.

* platform/ios-simulator/TestExpectations:

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

2 years agoREGRESSION (r219342): Scaled HTML widget is not responding to a clicks outside the...
dino@apple.com [Thu, 1 Feb 2018 18:59:38 +0000 (18:59 +0000)]
REGRESSION (r219342): Scaled HTML widget is not responding to a clicks outside the body
https://bugs.webkit.org/show_bug.cgi?id=182394
<rdar://problem/34840816>

Reviewed by Simon Fraser.

Source/WebCore:

If a scale < 1 is applied to the page, then the visual viewport will be bigger
than the layout viewport. Our hit testing code would then ignore any hits
that were outside the layout viewport.

The fix is to only apply a hit testing clip if the page is scaling up, not down.

Update the existing fast/dom/elementFromPoint-scaled-scrolled.html test.

* page/FrameView.cpp:
(WebCore::FrameView::layoutViewportToAbsoluteRect const): Deleted. This helper is
no longer used, and it would have probably been more confusing to have it accept
a flag to ignore the scale if it is less than 1.
* page/FrameView.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hitTest): No need to take the layout rect, remove the origin,
and pass it to a helper that added the origin back. The only thing the helper was
doing for us was applying a scale factor, which we only want to do if it was
scaling up.

LayoutTests:

Add a test for a scaled down page.

* fast/dom/elementFromPoint-scaled-scrolled-expected.txt:
* fast/dom/elementFromPoint-scaled-scrolled.html:

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

2 years agoUnreviewed, rolling out r227958 and r227972.
jlewis3@apple.com [Thu, 1 Feb 2018 18:31:06 +0000 (18:31 +0000)]
Unreviewed, rolling out r227958 and r227972.
https://bugs.webkit.org/show_bug.cgi?id=182393

This caused a consistent crash on macOS. (Requested by
mlewis13 on #webkit).

Reverted changesets:

"Update imagebitmap tests."
https://bugs.webkit.org/show_bug.cgi?id=182335
https://trac.webkit.org/changeset/227958

"[WPE] Update test expectations for r227958"
https://bugs.webkit.org/show_bug.cgi?id=182391
https://trac.webkit.org/changeset/227972

Patch by Commit Queue <commit-queue@webkit.org> on 2018-02-01

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

2 years ago[WPE] Update test expectations for r227958
Ms2ger@igalia.com [Thu, 1 Feb 2018 18:01:28 +0000 (18:01 +0000)]
[WPE] Update test expectations for r227958
https://bugs.webkit.org/show_bug.cgi?id=182391

Unreviewed test gardening.

* platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: Removed.
* platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: Added.

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

2 years agoBubbles intermittently disappear from bot watchers dashboard
aakash_jain@apple.com [Thu, 1 Feb 2018 17:30:26 +0000 (17:30 +0000)]
Bubbles intermittently disappear from bot watchers dashboard
https://bugs.webkit.org/show_bug.cgi?id=182085

Reviewed by Alexey Proskuryakov.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
(BuildbotIteration.prototype.failureLogURL): failureLogURL doesn't depend on step in Buildbot 0.9.
Return the Build Page URL for Buildbot Buildbot 0.9. Earlier code was also doing the same using a
confusing if (!this._firstFailedStep.logs) statement which is always false for Buildbot 0.9.

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

2 years ago-Wreturn-type warning in DFGObjectAllocationSinkingPhase.cpp
mcatanzaro@igalia.com [Thu, 1 Feb 2018 17:27:06 +0000 (17:27 +0000)]
-Wreturn-type warning in DFGObjectAllocationSinkingPhase.cpp
https://bugs.webkit.org/show_bug.cgi?id=182389

Reviewed by Yusuke Suzuki.

Fix the warning.

As a bonus, remove a couple unreachable breaks for good measure.

* dfg/DFGObjectAllocationSinkingPhase.cpp:

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

2 years agoStructured cloning a Symbol should throw
utatane.tea@gmail.com [Thu, 1 Feb 2018 17:22:35 +0000 (17:22 +0000)]
Structured cloning a Symbol should throw
https://bugs.webkit.org/show_bug.cgi?id=182380

Reviewed by Darin Adler.

Source/WebCore:

Test: js/dom/post-message-symbol.html

* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::dumpIfTerminal):
Structured cloning should throw "DataCloneError" DOMException if it finds Symbol.
Remove unused `isNumber()` case. It is done in dumpImmediate.
(WebCore::CloneSerializer::serializeUndefined): Deleted.
(WebCore::CloneSerializer::serializeBoolean): Deleted.
(WebCore::CloneSerializer::serializeNumber): Deleted.
Remove unused functions.

LayoutTests:

* js/dom/post-message-symbol-expected.txt: Added.
* js/dom/post-message-symbol.html: Added.

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

2 years ago[Modern Media Controls] Turn media/modern-media-controls/macos-fullscreen-media-contr...
commit-queue@webkit.org [Thu, 1 Feb 2018 17:20:24 +0000 (17:20 +0000)]
[Modern Media Controls] Turn media/modern-media-controls/macos-fullscreen-media-controls back on
https://bugs.webkit.org/show_bug.cgi?id=182385

Patch by Antoine Quint <graouts@apple.com> on 2018-02-01
Reviewed by Eric Carlson.

Update tests to match the modern-media-controls design and expectations.

* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-containers-styles-expected.txt:
* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-containers-styles.html:
* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles-expected.txt:
* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles.html:
* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor-expected.txt:
* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor.html:
* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-controls-bar-styles-expected.txt:
* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-controls-bar-styles.html:
* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-right-container-margin.html:
* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-time-control-styles-expected.txt:
* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-time-control-styles.html:
* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-styles-expected.txt:
* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-styles.html:
* platform/mac/TestExpectations:

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

2 years agoWe no longer need to queue service worker jobs until the connection to the service...
cdumez@apple.com [Thu, 1 Feb 2018 17:10:18 +0000 (17:10 +0000)]
We no longer need to queue service worker jobs until the connection to the service worker process has been established
https://bugs.webkit.org/show_bug.cgi?id=182375

Reviewed by Youenn Fablet.

We no longer need to queue service worker jobs until the connection to the service worker process
has been established. We initially did this to work around the fact that registrations restored
from disk would not have an active worker until the service worker process had been established.
However, this issue has been fixed in r227696.

This is basically a revert of r227220, which is no longer needed after r227696.

No new tests, initial fix was covered by an API test that still passes.

* workers/service/server/SWServer.cpp:
(WebCore::SWServer::clearAll):
(WebCore::SWServer::clear):
(WebCore::SWServer::scheduleJob):
(WebCore::SWServer::serverToContextConnectionCreated):
* workers/service/server/SWServer.h:

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

2 years ago[GTK] Shift + mouse scroll should scroll horizontally
carlosgc@webkit.org [Thu, 1 Feb 2018 16:04:09 +0000 (16:04 +0000)]
[GTK] Shift + mouse scroll should scroll horizontally
https://bugs.webkit.org/show_bug.cgi?id=181629

Reviewed by Michael Catanzaro.

Source/WebCore:

We currently turn vertical scroll into horizontal when scrolling over the horizontal scrollbar. When Shift key is
pressed, we still want to scroll in the scrollbar direction when scrolling over a scrollbar, so we need to swap
directions in both scrollbars depending on whther the Shift key is pressed or not.

* page/EventHandler.cpp:
(WebCore::EventHandler::shouldSwapScrollDirection const): Renamed.
(WebCore::EventHandler::handleWheelEvent): Use the new name.
(WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal const): Deleted.
* page/EventHandler.h:
* platform/PlatformWheelEvent.h:
(WebCore::PlatformWheelEvent::copySwappingDirection const): Swap the direction of the event.
(WebCore::PlatformWheelEvent::copyTurningVerticalTicksIntoHorizontalTicks const): Deleted.
* platform/glib/EventHandlerGLib.cpp:
(WebCore::EventHandler::shouldSwapScrollDirection const): Take into account whether the Shift key is present.
(WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal const): Deleted.

Source/WebKit:

Swap scroll direction when Shift is pressed for consistency with GtkScrolledWindow.

* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseScrollEvent):

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

2 years ago[GTK] Problem with Washington Post images
carlosgc@webkit.org [Thu, 1 Feb 2018 15:55:14 +0000 (15:55 +0000)]
[GTK] Problem with Washington Post images
https://bugs.webkit.org/show_bug.cgi?id=181421

Reviewed by Carlos Alberto Lopez Perez.

Source/WebCore:

This is because Washington Post is using the user agent to decide the image formats it serves. In the case of
chromium the images are served as webp, for firefox jpeg is used and in our case it's assuming we are safari and
it's providing jp2 images that we don't support. Add a user agent quirk to pretend to be chromium for
washingtonpost.com.

* platform/UserAgentQuirks.cpp:
(WebCore::urlRequiresChromeBrowser):

Tools:

Add test case for the new user agent quirk.

* TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
(TestWebKitAPI::TEST):

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

2 years ago[SOUP] Ensure domain is valid when converting a WebCore Cookie to Soup
carlosgc@webkit.org [Thu, 1 Feb 2018 15:53:42 +0000 (15:53 +0000)]
[SOUP] Ensure domain is valid when converting a WebCore Cookie to Soup
https://bugs.webkit.org/show_bug.cgi?id=182328

Reviewed by Michael Catanzaro.

soup_cookie_parse() adds the initial '.' to the domain if missing before creating the SoupCookie, but
soup_cookie_new() allows for domain to be a hostname that needs to match exactly. When converting a WebCore
Cookie into a SoupCookie we always want the domain to be considered as such and not as a hostname, so we need to
prepend the '.' if missing.

Fixes: imported/w3c/webdriver/tests/cookies/add_cookie.py::test_add_domain_cookie

* platform/network/soup/CookieSoup.cpp:
(WebCore::Cookie::toSoupCookie const):

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

2 years ago[RenderTreeBuilder] Move RenderTableRow::collapseAndDestroyAnonymousSiblingRows to...
zalan@apple.com [Thu, 1 Feb 2018 15:52:33 +0000 (15:52 +0000)]
[RenderTreeBuilder] Move RenderTableRow::collapseAndDestroyAnonymousSiblingRows to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182374
<rdar://problem/37102005>

Reviewed by Antti Koivisto.

It's only called from RenderTreeBuilder.

No change in functionality.

* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::collapseAndDestroyAnonymousSiblingRows): Deleted.
* rendering/RenderTableRow.h:
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::removeFromParentAndDestroyCleaningUpAnonymousWrappers):
* rendering/updating/RenderTreeBuilderTable.cpp:
(WebCore::RenderTreeBuilder::Table::collapseAndDestroyAnonymousSiblingRows):
* rendering/updating/RenderTreeBuilderTable.h:

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

2 years agoRewrite fast/events/scroll-in-scaled-page-with-overflow-hidden.html to conform with...
fred.wang@free.fr [Thu, 1 Feb 2018 14:03:45 +0000 (14:03 +0000)]
Rewrite fast/events/scroll-in-scaled-page-with-overflow-hidden.html to conform with CSSOM View
https://bugs.webkit.org/show_bug.cgi?id=182287

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

Per the CSSOM View specification, it is wrong to use document.body.scrollTop to retrieve the
vertical offset of the viewport in this test, because the body is potentially scrollable.
This commit relies on window.scrollY instead so that the test still works after bug 5991.

* fast/events/scroll-in-scaled-page-with-overflow-hidden-expected.txt:
* fast/events/scroll-in-scaled-page-with-overflow-hidden.html:

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

2 years agoREGRESSION(r227893): fast/events/touch/touch-stale-node-crash.html and other tests...
carlosgc@webkit.org [Thu, 1 Feb 2018 13:58:22 +0000 (13:58 +0000)]
REGRESSION(r227893): fast/events/touch/touch-stale-node-crash.html and other tests crash
https://bugs.webkit.org/show_bug.cgi?id=182350

Reviewed by Carlos Alberto Lopez Perez.

Ensure events synthesized from touch gestures have a valid window, screen and device.

* UIProcess/API/gtk/WebKitWebViewBase.cpp:
* UIProcess/gtk/GestureController.h: Add virtual destructor to GestureControllerclient.

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

2 years ago[Modern Media Controls] Turn media/modern-media-controls/media-controls back on
commit-queue@webkit.org [Thu, 1 Feb 2018 13:38:01 +0000 (13:38 +0000)]
[Modern Media Controls] Turn media/modern-media-controls/media-controls back on
https://bugs.webkit.org/show_bug.cgi?id=182377

Patch by Antoine Quint <graouts@apple.com> on 2018-02-01
Reviewed by Dean Jackson.

Update tests to match the modern-media-controls design and expectations, moving 3 tests under
media/modern-media-controls/macos-inline-media-controls since they are testing functionality
that is now specific to inline media controls.

* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-bar-always-ltr-expected.txt: Renamed from LayoutTests/media/modern-media-controls/media-controls/media-controls-controls-bar-always-ltr-expected.txt.
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-bar-always-ltr.html: Renamed from LayoutTests/media/modern-media-controls/media-controls/media-controls-controls-bar-always-ltr.html.
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-placard-expected.txt: Added.
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-placard.html: Added.
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-shows-start-button-expected.txt: Renamed from LayoutTests/media/modern-media-controls/media-controls/media-controls-start-button-expected.txt.
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-shows-start-button.html: Renamed from LayoutTests/media/modern-media-controls/media-controls/media-controls-start-button.html.
* media/modern-media-controls/media-controls/media-controls-appear-when-focus-expected.txt:
* media/modern-media-controls/media-controls/media-controls-appear-when-focus.html:
* media/modern-media-controls/media-controls/media-controls-constructor-expected.txt:
* media/modern-media-controls/media-controls/media-controls-constructor.html:
* media/modern-media-controls/media-controls/media-controls-placard-compressed-metrics-expected.txt:
* media/modern-media-controls/media-controls/media-controls-placard-compressed-metrics.html:
* media/modern-media-controls/media-controls/media-controls-placard-expected.txt: Removed.
* media/modern-media-controls/media-controls/media-controls-placard.html: Removed.
* platform/ios/TestExpectations:
* platform/mac/TestExpectations:

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

2 years agoQueue a microtask when a waitUntil() promise is settled
cdumez@apple.com [Thu, 1 Feb 2018 11:50:47 +0000 (11:50 +0000)]
Queue a microtask when a waitUntil() promise is settled
https://bugs.webkit.org/show_bug.cgi?id=182372
<rdar://problem/37101019>

Reviewed by Mark Lam.

LayoutTests/imported/w3c:

Reaseline WPT test now that all checks are passing.

* web-platform-tests/service-workers/service-worker/extendable-event-async-waituntil.https-expected.txt:

Source/JavaScriptCore:

Export a symbol so it can be used in WebCore.

* runtime/JSGlobalObject.h:

Source/WebCore:

Queue a microtask when a waitUntil() promise is settled, as per:
- https://w3c.github.io/ServiceWorker/#dom-extendableevent-waituntil (step 5)

Otherwise, we decrement m_pendingPromiseCount too quickly and it may cause
following calls to waitUntil() to throw when they shouldn't.

No new tests, rebaselined existing test.

* workers/service/ExtendableEvent.cpp:
(WebCore::ExtendableEvent::addExtendLifetimePromise):

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

2 years agoUpdate imagebitmap tests.
Ms2ger@igalia.com [Thu, 1 Feb 2018 11:16:09 +0000 (11:16 +0000)]
Update imagebitmap tests.
https://bugs.webkit.org/show_bug.cgi?id=182335

Unreviewed test gardening.

LayoutTests/imported/w3c:

* web-platform-tests/2dcontext/imagebitmap/common.sub.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/2dcontext/imagebitmap/common.js.
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html:
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html:
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: Added.
* web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub.html: Added.
* web-platform-tests/2dcontext/imagebitmap/w3c-import.log:
* web-platform-tests/common/namespaces.js: Added.
* web-platform-tests/common/w3c-import.log:
* web-platform-tests/images/pattern.mp4: Added.
* web-platform-tests/images/pattern.svg: Added.
* web-platform-tests/images/w3c-import.log:

LayoutTests:

* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: Removed.
* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: Added.

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

2 years ago[GTK] MiniBrowser settings are just a list of names
carlosgc@webkit.org [Thu, 1 Feb 2018 09:44:39 +0000 (09:44 +0000)]
[GTK] MiniBrowser settings are just a list of names
https://bugs.webkit.org/show_bug.cgi?id=182005

Reviewed by Sergio Villar Senin.

The default size we are using is too small to show the values column, and the window is not resizable because
GObjectClass::constructed() is not called in the parent class.

* MiniBrowser/gtk/BrowserSettingsDialog.c:
(browser_settings_dialog_init): Use 600x400 as default size.
(browserSettingsDialogConstructed): Chain up to parent constructed.

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

2 years agoInvalidate style for sibling combinators accurately on class change
antti@apple.com [Thu, 1 Feb 2018 09:01:01 +0000 (09:01 +0000)]
Invalidate style for sibling combinators accurately on class change
https://bugs.webkit.org/show_bug.cgi?id=182336

Reviewed by Zalan Bujtas.

Source/WebCore:

Use Style::Invalidator to invalidate only those elements that may be affected by a class
change for sibling combinators and nth pseudo classes.

* css/RuleFeature.cpp:

Add new AllSiblings MatchElement to use for nth pseudo classes with subselectors.

(WebCore::isSiblingOrSubject):

Add a helper.

(WebCore::RuleFeatureSet::computeNextMatchElement):
(WebCore::RuleFeatureSet::computeSubSelectorMatchElement):

Compute and propage MatchElement::AllSiblings.

* css/RuleFeature.h:
* dom/Node.cpp:
(WebCore::Node::updateAncestorsForStyleRecalc):

Don't need to test for childrenAffectedByPropertyBasedBackwardPositionalRules anymore (an oddly named bit for nth pseudo classes).

* style/StyleInvalidator.cpp:
(WebCore::Style::Invalidator::invalidateStyleWithMatchElement):

Invalidate only the potentially affected elements.
The old code would just unconditionally invalidate the current element. This would propagate to descedants of siblings via
affectedByPreviousSibling bits. That mechanism can be removed when everything has been switched to accurate invalidation.

LayoutTests:

Adapt to progressions.

* fast/css/direct-adjacent-style-update-optimization-expected.txt:
* fast/css/direct-adjacent-style-update-optimization.html:
* fast/css/indirect-adjacent-style-update-optimization-expected.txt:
* fast/css/indirect-adjacent-style-update-optimization.html:
* fast/css/nth-last-child-of-style-update-optimization.html:

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

2 years agoUnreviewed. Remove WebInspectorUI watchlist and remove myself from 2 watchlists more
carlosgc@webkit.org [Thu, 1 Feb 2018 08:52:43 +0000 (08:52 +0000)]
Unreviewed. Remove WebInspectorUI watchlist and remove myself from 2 watchlists more

Patch by Andres Gomez <agomez@igalia.com> on 2018-01-31

* Scripts/webkitpy/common/config/watchlist:

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

2 years agoUse different debug red colors for different contexts
simon.fraser@apple.com [Thu, 1 Feb 2018 07:28:10 +0000 (07:28 +0000)]
Use different debug red colors for different contexts
https://bugs.webkit.org/show_bug.cgi?id=182362

Reviewed by Tim Horton.
Source/WebCore:

Pure red is used elsehwere in the system as a debug color indicator, so use different
shades of red for WebKit in the two places where we paint a reddish wash in debug builds,
so they are identifiable.

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

Source/WebKit:

Pure red is used elsehwere in the system as a debug color indicator, so use different
shades of red for WebKit in the two places where we paint a reddish wash in debug builds,
so they are identifiable.

* Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::drawInContext):

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

2 years ago[Modern Media Controls] Turn media/modern-media-controls/macos-inline-media-controls...
graouts@webkit.org [Thu, 1 Feb 2018 07:12:09 +0000 (07:12 +0000)]
[Modern Media Controls] Turn media/modern-media-controls/macos-inline-media-controls back on
https://bugs.webkit.org/show_bug.cgi?id=182338

Reviewed by Eric Carlson.

Update tests to match the modern-media-controls designs and expectations. Certain tests didn't make any sense anymore
and were removed, for instance tests related to the compact mode.

* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-audio-background-expected.txt: Removed.
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-audio-background.html: Removed.
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-buttons-styles-expected.txt: Removed.
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-buttons-styles.html: Removed.
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-compact-buttons-styles-expected.txt: Removed.
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-compact-buttons-styles.html: Removed.
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-compact-controls-bar-styles-expected.txt: Removed.
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-compact-controls-bar-styles.html: Removed.
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-compact-expected.txt: Removed.
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-compact.html: Removed.
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-controls-bar-styles-expected.txt:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-controls-bar-styles.html:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-layout-expected.txt:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-layout.html:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-resize-with-hidden-controls-bar-expected.txt:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-resize-with-hidden-controls-bar.html:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-start-button-style-expected.txt:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-start-button-style.html:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-status-label-expected.txt:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-status-label.html:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-time-control-styles-expected.txt:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-time-control-styles.html:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-slider-visibility-expected.txt:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-slider-visibility.html:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles-expected.txt:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles.html:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls-expected.txt:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls.html:
* platform/ios/TestExpectations:
* platform/mac/TestExpectations:

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

2 years ago[CMake] Make JavaScriptCore headers copies
don.olmstead@sony.com [Thu, 1 Feb 2018 06:50:23 +0000 (06:50 +0000)]
[CMake] Make JavaScriptCore headers copies
https://bugs.webkit.org/show_bug.cgi?id=182303

Reviewed by Alex Christensen.

Source/JavaScriptCore:

* CMakeLists.txt:
* PlatformGTK.cmake:
* PlatformJSCOnly.cmake:
* PlatformMac.cmake:
* PlatformWPE.cmake:
* PlatformWin.cmake:
* shell/CMakeLists.txt:
* shell/PlatformWin.cmake:

Source/WebCore:

No new tests. No change in behavior.

* CMakeLists.txt:
* PlatformMac.cmake:
* PlatformWPE.cmake:
* PlatformWin.cmake:
* PlatformWinCairo.cmake:

Source/WebKit:

* CMakeLists.txt:
* Scripts/generate-forwarding-headers.pl:

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

2 years agoReplace tryLargeMemalignVirtual with tryLargeZeroedMemalignVirtual and use it to...
sbarati@apple.com [Thu, 1 Feb 2018 05:36:40 +0000 (05:36 +0000)]
Replace tryLargeMemalignVirtual with tryLargeZeroedMemalignVirtual and use it to allocate large zeroed memory in Wasm
https://bugs.webkit.org/show_bug.cgi?id=182064
<rdar://problem/36840132>

Reviewed by Geoffrey Garen.

Source/bmalloc:

This patch replaces the tryLargeMemalignVirtual API with tryLargeZeroedMemalignVirtual.
By doing that, we're able to remove the AllocationKind enum. To zero the memory,
tryLargeZeroedMemalignVirtual uses mmap(... MAP_ANON ...) over previously mmapped
memory. This both purges the any resident memory for the virtual range and ensures
that the pages in the range are zeroed. Most OSs should implement this by taking a
page fault and zero filling on first access. Therefore, this API is returning pages
that will result in page faults on first access. Hence, the name 'virtual' in the API.
This API differs from the old API in that users of it need not call madvise themselves.
The memory is ready to go.

* bmalloc.xcodeproj/project.pbxproj:
* bmalloc/AllocationKind.h: Removed.
* bmalloc/DebugHeap.cpp:
(bmalloc::DebugHeap::memalignLarge):
(bmalloc::DebugHeap::freeLarge):
* bmalloc/DebugHeap.h:
* bmalloc/Heap.cpp:
(bmalloc::Heap::splitAndAllocate):
(bmalloc::Heap::tryAllocateLarge):
(bmalloc::Heap::allocateLarge):
(bmalloc::Heap::shrinkLarge):
(bmalloc::Heap::deallocateLarge):
* bmalloc/Heap.h:
* bmalloc/IsoPage.cpp:
(bmalloc::IsoPageBase::allocatePageMemory):
* bmalloc/VMAllocate.h:
(bmalloc::vmZeroAndPurge):
* bmalloc/VMHeap.cpp:
(bmalloc::VMHeap::tryAllocateLargeChunk):
* bmalloc/VMHeap.h:
* bmalloc/bmalloc.cpp:
(bmalloc::api::tryLargeZeroedMemalignVirtual):
(bmalloc::api::freeLargeVirtual):
(bmalloc::api::tryLargeMemalignVirtual): Deleted.
* bmalloc/bmalloc.h:

Source/JavaScriptCore:

This patch switches WebAssembly Memory to always use bmalloc's
zeroed virtual allocation API. This makes it so that we don't
dirty the memory to zero it. It's a huge compile time speedup
on WasmBench on iOS.

* wasm/WasmMemory.cpp:
(JSC::Wasm::Memory::create):
(JSC::Wasm::Memory::~Memory):
(JSC::Wasm::Memory::addressIsInActiveFastMemory):
(JSC::Wasm::Memory::grow):
(JSC::Wasm::commitZeroPages): Deleted.

Source/WTF:

* wtf/Gigacage.cpp:
(Gigacage::tryAllocateZeroedVirtualPages):
(Gigacage::freeVirtualPages):
(Gigacage::tryAllocateVirtualPages): Deleted.
* wtf/Gigacage.h:
* wtf/OSAllocator.h:

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

2 years agoLayout Test fast/events/beforeunload-dom-manipulation-crash.html is crashing
pvollan@apple.com [Thu, 1 Feb 2018 04:18:38 +0000 (04:18 +0000)]
Layout Test fast/events/beforeunload-dom-manipulation-crash.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=181204
<rdar://problem/36256274>

Reviewed by Ryosuke Niwa.

Source/WebCore:

When a frame element is moved in the DOM tree during the execution of a beforeunload handler,
the frame will be detached when removed from its previous position in the DOM tree. When being
detached, an attempt will also be made to stop the load by calling FrameLoader::stopAllLoaders().
However, this method will return early when executed in a beforeunload handler, since navigation
is not allowed then. The end result is a detached frame which will continue to load, and hitting
asserts in DocumentLoader::dataReceived(), and DocumentLoader::notifyFinished(). It should be
possible to stop a frame load, even when executing a beforeunload handler.

No new tests. Covered by the existing test fast/events/beforeunload-dom-manipulation-crash.html.

* history/PageCache.cpp:
(WebCore::PageCache::addIfCacheable): Fix a failing API test by allowing scripts to be executed
under the PageCache::prune method.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::isStopLoadingAllowed const):
(WebCore::FrameLoader::stopAllLoaders):
* loader/FrameLoader.h:
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::~SVGImage): Disable scripts disallowed assertions in this scope, since it is
safe in this context.

Tools:

Implement 'testRunner.forceImmediateCompletion()' for WK1.

* DumpRenderTree/TestRunner.cpp:
(forceImmediateCompletionCallback):
(TestRunner::staticFunctions):

LayoutTests:

* fast/events/beforeunload-dom-manipulation-crash.html: Make it clear that the
frame element is a child of the 'del' element.
* fast/events/beforeunload-dom-manipulation-crash-expected.html:
* platform/mac-wk1/TestExpectations: Unskip test.

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

2 years agoinline-block baseline not computed correctly for vertical-lr
jfernandez@igalia.com [Thu, 1 Feb 2018 01:56:52 +0000 (01:56 +0000)]
inline-block baseline not computed correctly for vertical-lr
https://bugs.webkit.org/show_bug.cgi?id=170176

Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

When computing the baseline position of inline-block elements we use the
InlineFlow logicalTop and the FontMetrics ascent. The issue comes from
the fact that these units are incompatible. The logicalTop of a
vertical-lr element is offset to the left edge, while the ascent is the
distance from the right edge.

We need to either use logical value for the FontMetrics ascent so we can
compute the correctly the baselines of vertical-lr elements, or just using
the logicalBottom for these cases.

The approach based on a logicalAscent API for FontMetrics would require
a lot of work because inline-block logic assumes everything is vertical-rl
and at some point, flips the elements along the block-axis in case of
vertical-lr mode.

While it'd be desirable to get rid of this flipping logic, this patch tries
first the simpler approach of using logicalBottom, which aligns with the
currently implemented logic.

Tests: fast/inline-block/baseline-vertical-01.html
       fast/inline-block/baseline-vertical-02.html
       fast/inline-block/baseline-vertical-03.html
       fast/inline-block/baseline-vertical-04.html
       fast/inline-block/baseline-vertical-05.html
       fast/inline-block/baseline-vertical-06.html
       fast/inline-block/baseline-vertical-07.html
       fast/inline-block/baseline-vertical-08.html

* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxesInBlockDirection):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::inlineBlockBaseline const):

LayoutTests:

Tests to evaluate the baseline alignment in vertical modes.
Additionally, several tests were rebaselined.

Some of the new tests are marked as Failure for the ios-sim
platform because of pixel rounding errors in the absolute
positioned elements used as reference.

Finally, there are color differences in the border-styles-vertical-lr-expected.png
caused by changes in the gtk+ platform. Those differences were not noticeable until
now that the patch causes diffs in the expected.txt files.

* fast/inline-block/baseline-vertical-01-expected.html: Added.
* fast/inline-block/baseline-vertical-01.html: Added.
* fast/inline-block/baseline-vertical-02-expected.html: Added.
* fast/inline-block/baseline-vertical-02.html: Added.
* fast/inline-block/baseline-vertical-03-expected.html: Added.
* fast/inline-block/baseline-vertical-03.html: Added.
* fast/inline-block/baseline-vertical-04-expected.html: Added.
* fast/inline-block/baseline-vertical-04.html: Added.
* fast/inline-block/baseline-vertical-05-expected.html: Added.
* fast/inline-block/baseline-vertical-05.html: Added.
* fast/inline-block/baseline-vertical-06-expected.html: Added.
* fast/inline-block/baseline-vertical-06.html: Added.
* fast/inline-block/baseline-vertical-07-expected.html: Added.
* fast/inline-block/baseline-vertical-07.html: Added.
* fast/inline-block/baseline-vertical-08-expected.html: Added.
* fast/inline-block/baseline-vertical-08.html: Added.
* fast/text/emphasis-avoid-ruby-expected.png:
* fast/text/emphasis-avoid-ruby-expected.txt:
* fast/text/emphasis-overlap-expected.png:
* fast/text/emphasis-overlap-expected.txt:
* platform/gtk/fast/backgrounds/background-leakage-transforms-expected.png:
* platform/gtk/fast/backgrounds/background-leakage-transforms-expected.txt:
* platform/gtk/fast/writing-mode/border-styles-vertical-lr-expected.png:
* platform/gtk/fast/writing-mode/border-styles-vertical-lr-expected.txt:
* platform/ios-simulator/TestExpectations:
* platform/ios/fast/backgrounds/background-leakage-transforms-expected.png: Added.
* platform/ios/fast/backgrounds/background-leakage-transforms-expected.txt:
* platform/ios/fast/writing-mode/border-styles-vertical-lr-expected.png:
* platform/ios/fast/writing-mode/border-styles-vertical-lr-expected.txt:
* platform/mac/fast/backgrounds/background-leakage-transforms-expected.png:
* platform/mac/fast/backgrounds/background-leakage-transforms-expected.txt:
* platform/mac/fast/writing-mode/border-styles-vertical-lr-expected.txt:
* platform/win/fast/writing-mode/text-orientation-basic-expected.txt:

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

2 years agoMake run-perf-tests work with StyleBench and re-enable it
rniwa@webkit.org [Thu, 1 Feb 2018 01:42:34 +0000 (01:42 +0000)]
Make run-perf-tests work with StyleBench and re-enable it
https://bugs.webkit.org/show_bug.cgi?id=182322

Reviewed by Antti Koivisto.

This patch updates the test harness to report new metrics of StyleBench.

Replaced the total time by the geometric mean of the time spent in each suite, and added scores
as a metric in addition to time. Also, updated the PerfTestRunner harness and the results template
to support "Score" metric with "pt" as its unit.

* Skipped: Unskipped the test.
* StyleBench/resources/benchmark-report.js:
(window.benchmarkClient.willStartFirstIteration..createTest): Added the unit as an optional argument
to report the score in addition to time. Also report the geomean of time instead of the total time.
(window.benchmarkClient.willStartFirstIteration): Report the geomean of time.
(window.benchmarkClient.didRunSuites): Record the entire measuredValues instead of just tests.
(window.benchmarkClient.didFinishLastIteration): Report the scores.
* resources/results-template.html: Added "Score" as a metric and "pt" as its unit.
* resources/runner.js:
(PerfTestRunner..finish): Ditto.

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

2 years agoUnreviewed GTK+ test gardening.
aboya@igalia.com [Thu, 1 Feb 2018 01:40:09 +0000 (01:40 +0000)]
Unreviewed GTK+ test gardening.

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

2 years agoUpdate ReadMe.md
mcatanzaro@igalia.com [Thu, 1 Feb 2018 01:38:34 +0000 (01:38 +0000)]
Update ReadMe.md
https://bugs.webkit.org/show_bug.cgi?id=182314

Reviewed by Alex Christensen.

Add download link for Epiphany Technology Preview. Improve build instructions for GTK. Add
build instructions for WPE. Add instructions to run MiniBrowser on Linux. Miscellaneous
typographical adjustments.

* ReadMe.md:

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