WebKit.git
2 years agoCreate analysis task should use build time as fallback when commit time is not available.
dewei_zhu@apple.com [Sat, 10 Mar 2018 04:44:56 +0000 (04:44 +0000)]
Create analysis task should use build time as fallback when commit time is not available.
https://bugs.webkit.org/show_bug.cgi?id=183309

Reviewed by Ryosuke Niwa.

Added the ability to schedule analysis task for the range without commit time.

* public/privileged-api/create-analysis-task.php: Use build time as fallback.
* server-tests/privileged-api-create-analysis-task-tests.js: Added a unit test for this change.

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

2 years agoAX: WebKit seems to be running spell checker even on non-editable content text
cfleizach@apple.com [Sat, 10 Mar 2018 03:53:41 +0000 (03:53 +0000)]
AX: WebKit seems to be running spell checker even on non-editable content text
https://bugs.webkit.org/show_bug.cgi?id=183456
<rdar://problem/38076042>

Reviewed by Joanmarie Diggs.

Source/WebCore:

Test: accessibility/mac/attributed-string/attributed-string-does-not-includes-misspelled-for-non-editable.html

Only apply misspelled attributes if it's for editable text. It's not useful or performant to do this for static text.

* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(AXAttributeStringSetSpelling):

LayoutTests:

* accessibility/mac/attributed-string/attributed-string-does-not-includes-misspelled-for-non-editable-expected.txt: Added.
* accessibility/mac/attributed-string/attributed-string-does-not-includes-misspelled-for-non-editable.html: Added.
* accessibility/mac/attributed-string/attributed-string-for-range-with-options.html:
* accessibility/mac/attributed-string/attributed-string-for-range.html:
     Update tests to reflect that only editable content returns misspelled attributes.

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

2 years agoAX: AOM: More accessibility events support
n_wang@apple.com [Sat, 10 Mar 2018 03:37:13 +0000 (03:37 +0000)]
AX: AOM: More accessibility events support
https://bugs.webkit.org/show_bug.cgi?id=183023
<rdar://problem/37764380>

Reviewed by Chris Fleizach.

Source/WebCore:

The test is crashing when we call updateBackingStore when
the AXObjectCache object is gone. Added a check to fix that.

Modified the test by using the right format of setTimeout and extended the delay.

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::updateBackingStore):

LayoutTests:

* accessibility/mac/AOM-events-webarea-crash.html:

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

2 years agoUnreviewed. Fix WinCairo build after r229497.
ross.kirsling@sony.com [Sat, 10 Mar 2018 03:10:41 +0000 (03:10 +0000)]
Unreviewed. Fix WinCairo build after r229497.

* platform/MIMETypeRegistry.cpp:
(WebCore::MIMETypeRegistry::getNormalizedMIMEType):

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

2 years agoClean up MIMETypeRegistry::mimeTypeAssociationMap for Curl
ross.kirsling@sony.com [Sat, 10 Mar 2018 01:47:28 +0000 (01:47 +0000)]
Clean up MIMETypeRegistry::mimeTypeAssociationMap for Curl
https://bugs.webkit.org/show_bug.cgi?id=170529

Reviewed by Alex Christensen.

* platform/MIMETypeRegistry.cpp:
(WebCore::MIMETypeRegistry::getNormalizedMIMEType):
(WebCore::mimeTypeAssociationMap): Deleted.
Create map with makeNeverDestroyed and a loop instead.

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

2 years agoUnreviewed, rolling out r229468.
ryanhaddad@apple.com [Sat, 10 Mar 2018 01:28:07 +0000 (01:28 +0000)]
Unreviewed, rolling out r229468.

This change caused http/tests/security/frame-loading-via-
document-write.html to fail.

Reverted changeset:

"http/tests/security/frame-loading-via-document-write-async-
delegates.html fails with async delegates"
https://bugs.webkit.org/show_bug.cgi?id=183460
https://trac.webkit.org/changeset/229468

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

2 years agoWeb Inspector: Sources: Open all resources in Sources tab instead of Resources/Debugger
nvasilyev@apple.com [Sat, 10 Mar 2018 01:24:24 +0000 (01:24 +0000)]
Web Inspector: Sources: Open all resources in Sources tab instead of Resources/Debugger
https://bugs.webkit.org/show_bug.cgi?id=183317
<rdar://problem/38108455>

Reviewed by Matt Baker.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
* UserInterface/Views/ContextMenuUtilities.js:
(WI.appendContextMenuItemsForURL):
Introduce preferredTabType option instead of listing ignoreResourcesTab, ignoreDebuggerTab, ignoreSearchTab, and ignoreNetworkTab.
The only correct outcome of selecting "Reveal in Sources Tab" context menu is to open Sources tab, not any other tab.

* UserInterface/Views/SourceCodeTextEditor.js:
(WI.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):
* UserInterface/Views/TabBrowser.js:
(WI.TabBrowser.prototype.bestTabContentViewForRepresentedObject):

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

2 years agoUnconditionalize more methods in VideoFullscreenInterface (and related classes)
jer.noble@apple.com [Sat, 10 Mar 2018 01:18:08 +0000 (01:18 +0000)]
Unconditionalize more methods in VideoFullscreenInterface (and related classes)
https://bugs.webkit.org/show_bug.cgi?id=183501
<rdar://problem/38312038>

Unreviewed build fix; add correct pragmas to code referencing m_playbackSessionManager.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::hasActiveVideoForControlsManager const):
(WebKit::WebPageProxy::requestControlledElementID const):
(WebKit::WebPageProxy::isPlayingVideoInEnhancedFullscreen const):

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

2 years agoWeb Inspector: there should only be one way for async backend commands to send failure
bburg@apple.com [Sat, 10 Mar 2018 00:43:03 +0000 (00:43 +0000)]
Web Inspector: there should only be one way for async backend commands to send failure
https://bugs.webkit.org/show_bug.cgi?id=183524

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

If this is an async command, errors should be reported with BackendDispatcher::CallbackBase::sendFailure.
To avoid mixups, don't include the ErrorString out-parameter in generated async command signatures.
This change only affects interfaces generated for C++ backend dispatchers.

* inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:
(CppBackendDispatcherHeaderGenerator._generate_async_handler_declaration_for_command):
* inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:
(CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_command):
* inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result:

Source/WebCore:

Remove some useless ErrorString arguments. Fix some bugs where we
may never call the callback in an early exit situation.

Covered by existing Inspector and protocol generator tests.

* inspector/agents/InspectorDatabaseAgent.cpp:
(WebCore::InspectorDatabaseAgent::executeSQL):
* inspector/agents/InspectorDatabaseAgent.h:
* inspector/agents/InspectorIndexedDBAgent.h:
* inspector/agents/InspectorIndexedDBAgent.cpp:
(WebCore::getDocumentAndIDBFactoryFromFrameOrSendFailure):
(WebCore::InspectorIndexedDBAgent::requestDatabaseNames):
(WebCore::InspectorIndexedDBAgent::requestDatabase):
(WebCore::InspectorIndexedDBAgent::requestData):
(WebCore::InspectorIndexedDBAgent::clearObjectStore):
(WebCore::assertDocument): Deleted.
(WebCore::assertIDBFactory): Deleted.
Modernize this code a little bit to share the document/idbFactory extraction code.

* inspector/agents/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::loadResource):
* inspector/agents/InspectorNetworkAgent.h:

Source/WebKit:

Remove useless ErrorString argument from async commands.

For Automation protocol, introduce sync and async macros for filling
in and sending a failure response. Now that async commands don't have
an ErrorString and sync commands don't have a callback, trying to send
an error with the wrong macro is a compile-time error.

* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::getBrowsingContexts):
(WebKit::WebAutomationSession::getBrowsingContext):
(WebKit::WebAutomationSession::createBrowsingContext):
(WebKit::WebAutomationSession::closeBrowsingContext):
(WebKit::WebAutomationSession::switchToBrowsingContext):
(WebKit::WebAutomationSession::setWindowFrameOfBrowsingContext):
(WebKit::WebAutomationSession::waitForNavigationToComplete):
(WebKit::WebAutomationSession::navigateBrowsingContext):
(WebKit::WebAutomationSession::goBackInBrowsingContext):
(WebKit::WebAutomationSession::goForwardInBrowsingContext):
(WebKit::WebAutomationSession::reloadBrowsingContext):
(WebKit::WebAutomationSession::evaluateJavaScriptFunction):
(WebKit::WebAutomationSession::resolveChildFrameHandle):
(WebKit::WebAutomationSession::resolveParentFrameHandle):
(WebKit::WebAutomationSession::computeElementLayout):
(WebKit::WebAutomationSession::selectOptionElement):
(WebKit::WebAutomationSession::isShowingJavaScriptDialog):
(WebKit::WebAutomationSession::dismissCurrentJavaScriptDialog):
(WebKit::WebAutomationSession::acceptCurrentJavaScriptDialog):
(WebKit::WebAutomationSession::messageOfCurrentJavaScriptDialog):
(WebKit::WebAutomationSession::setUserInputForCurrentJavaScriptPrompt):
(WebKit::WebAutomationSession::setFilesToSelectForFileUpload):
(WebKit::WebAutomationSession::getAllCookies):
(WebKit::WebAutomationSession::deleteSingleCookie):
(WebKit::WebAutomationSession::addSingleCookie):
(WebKit::WebAutomationSession::deleteAllCookies):
(WebKit::WebAutomationSession::setSessionPermissions):
(WebKit::WebAutomationSession::performMouseInteraction):
(WebKit::WebAutomationSession::performKeyboardInteractions):
(WebKit::WebAutomationSession::takeScreenshot):
(WebKit::WebAutomationSession::didTakeScreenshot):
* UIProcess/Automation/WebAutomationSession.h:
* UIProcess/Automation/WebAutomationSessionMacros.h:
* UIProcess/Automation/mac/WebAutomationSessionMac.mm:
(WebKit::WebAutomationSession::inspectBrowsingContext):

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

2 years agoCrash in ServiceWorkerContainer::ready
youenn@apple.com [Sat, 10 Mar 2018 00:41:13 +0000 (00:41 +0000)]
Crash in ServiceWorkerContainer::ready
https://bugs.webkit.org/show_bug.cgi?id=183380

Reviewed by Chris Dumez.

Not using 'this' through lambdas.
Instead rely on the last lambda that is passed a ScriptExecutionContext& to get back 'this' which is a ServiceWorkerContainer.

Should be covered by imported/w3c/web-platform-tests/service-workers/service-worker/register-default-scope.https.html no longer crashing.
Although it should probably be LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/ready.https.html that should crash
since this is the main test using ready.

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

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

2 years agoRealtimeOutgoingAudioSource and RealtimeOutgoingVideoSource should be destroyed on...
youenn@apple.com [Sat, 10 Mar 2018 00:38:02 +0000 (00:38 +0000)]
RealtimeOutgoingAudioSource and RealtimeOutgoingVideoSource should be destroyed on the main thread
https://bugs.webkit.org/show_bug.cgi?id=183483
<rdar://problem/38214152>

Reviewed by Eric Carlson.

When dereferencing from libwebrtc code path, schedule a call to deref on main thread.
WebCore dereferencing is happening in the main thread so this guarantees destruction on the main thread.

Covered by updated mock libwebrtc peer connection backend.
We make mock senders to keep a reference to their source which are RealtimeOutgoingXXSource.
We then make mock peer connection backend to free the mock senders in a background thread.

* Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::LibWebRTCPeerConnectionBackend::doStop):
* platform/mediastream/RealtimeOutgoingAudioSource.cpp:
(WebCore::RealtimeOutgoingAudioSource::stop):
* platform/mediastream/RealtimeOutgoingAudioSource.h:
* platform/mediastream/RealtimeOutgoingVideoSource.cpp:
(WebCore::RealtimeOutgoingVideoSource::stop):
* platform/mediastream/RealtimeOutgoingVideoSource.h:
* testing/MockLibWebRTCPeerConnection.cpp:
(WebCore::ThreadKeeper::create):
(WebCore::ThreadKeeper::setThread):
(WebCore::MockLibWebRTCPeerConnection::~MockLibWebRTCPeerConnection):
* testing/MockLibWebRTCPeerConnection.h:

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

2 years agoDon't pass NULL to the result parameter of SecTrustEvaluate()
jer.noble@apple.com [Sat, 10 Mar 2018 00:12:35 +0000 (00:12 +0000)]
Don't pass NULL to the result parameter of SecTrustEvaluate()
https://bugs.webkit.org/show_bug.cgi?id=183495
<rdar://problem/38185688>

Reviewed by Andy Estes.

* UIProcess/ios/WKFullScreenWindowControllerIOS.mm:
(-[WKFullScreenWindowController _EVOrganizationName]):

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

2 years agoBuildbotBuildEntry for buildbot 0.9 uses incorrect buildrequestid
aakash_jain@apple.com [Fri, 9 Mar 2018 23:45:11 +0000 (23:45 +0000)]
BuildbotBuildEntry for buildbot 0.9 uses incorrect buildrequestid
https://bugs.webkit.org/show_bug.cgi?id=183194

Reviewed by Ryosuke Niwa.

* tools/js/buildbot-syncer.js:
(BuildbotBuildEntry.prototype.initialize): Updated _buildRequestId to use correct build-request-id, as set in syncer._buildRequestPropertyName.
(BuildbotSyncer.prototype.pathForPendingBuilds): Updated url to fetch properties for build-requests.
* unit-tests/buildbot-syncer-tests.js:
(sampleBuildData): Updated sampleBuildData with correct build-request-id in properties. Added
properties to samplePendingBuildRequestData.

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

2 years agoAllow NavigationState to intercept requests and send them to SystemPreviewController
dino@apple.com [Fri, 9 Mar 2018 23:39:19 +0000 (23:39 +0000)]
Allow NavigationState to intercept requests and send them to SystemPreviewController
https://bugs.webkit.org/show_bug.cgi?id=183526
<rdar://problem/37801140>

Reviewed by Tim Horton.

Implement a bit more of SystemPreviewController, such that it can be used
from NavigationState to identify and handle content that can be previewed.

* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse):
    If we'd in a download response policy, then check if SystemPreviewController
    can show the content. We ignore the download, but pass the original URL onto
    the preview. Ultimately, we'd want to avoid the navigation
    but use the download destination URL for preview.

* UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
(-[_WKPreviewControllerDataSource initWithURL:]):
    Move the URL to property, to help use a single datasource object for all previews.
(-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]):
(-[_WKPreviewControllerDelegate initWithSystemPreviewController:]):
    Add a delegate object, so we can detect when the preview is dismissed and return
    to the previous page.
(-[_WKPreviewControllerDelegate previewControllerWillDismiss:]):
(WebKit::SystemPreviewController::showPreview):
    Use single instances of the QLPreviewController, its datasource and delegate.

* UIProcess/SystemPreviewController.cpp:
    Add a helper to navigate back.
(WebKit::SystemPreviewController::SystemPreviewController):
(WebKit::SystemPreviewController::sendPageBack):
* UIProcess/SystemPreviewController.h:

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

2 years agowebkitfullscreenchange event not fired at the same time as :-webkit-full-screen pseud...
jer.noble@apple.com [Fri, 9 Mar 2018 23:10:05 +0000 (23:10 +0000)]
webkitfullscreenchange event not fired at the same time as :-webkit-full-screen pseudo selector changes; causes glitchiness
https://bugs.webkit.org/show_bug.cgi?id=183383
<rdar://problem/38197028>

Reviewed by Eric Carlson.

Follow-up patch: now that the 'fullscreenchange' event is being fired slightly earlier, the
Fullscreen.TopContentInset tests triggers what appears to be an existing behavior: if you
exit in the middle of an enter fullscreen animation, the exit never happens, because the
NSWindow never starts the exit animation. The solution is to store the exit fullscreen
request, and only act upon it when the enter animation completes.

* UIProcess/mac/WKFullScreenWindowController.h:
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
(-[WKFullScreenWindowController exitFullScreen]):

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

2 years agoBuild fix after r229476.
mark.lam@apple.com [Fri, 9 Mar 2018 23:07:26 +0000 (23:07 +0000)]
Build fix after r229476.
https://bugs.webkit.org/show_bug.cgi?id=183488

Not reviewed.

* runtime/StackAlignment.h:

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

2 years agoUnconditionalize more methods in VideoFullscreenInterface (and related classes)
jer.noble@apple.com [Fri, 9 Mar 2018 22:56:51 +0000 (22:56 +0000)]
Unconditionalize more methods in VideoFullscreenInterface (and related classes)
https://bugs.webkit.org/show_bug.cgi?id=183501

Reviewed by Eric Carlson.

Source/WebCore:

No need for these methods to be PLATFORM(MAC) only.

* platform/cocoa/PlaybackSessionModel.h:
(WebCore::PlaybackSessionModelClient::ensureControlsManager):
* platform/ios/VideoFullscreenInterfaceAVKit.h:
* platform/ios/VideoFullscreenInterfaceAVKit.mm:
(VideoFullscreenInterfaceAVKit::isPlayingVideoInEnhancedFullscreen const):
* platform/mac/VideoFullscreenInterfaceMac.h:

Source/WebKit:

No reason for these methods to be PLATFORM(MAC) only.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _videoControlsManagerDidChange]):
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:
(WebKit::PlaybackSessionManagerProxy::setUpPlaybackControlsManagerWithID):
(WebKit::PlaybackSessionManagerProxy::clearPlaybackControlsManager):
* UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
* UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::isPlayingMediaDidChange):
(WebKit::WebPageProxy::handleControlledElementIDResponse const):
(WebKit::WebPageProxy::isPlayingVideoInEnhancedFullscreen const):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::videoControlsManagerDidChange):
* UIProcess/ios/WKFullScreenWindowControllerIOS.h:
* UIProcess/ios/WKFullScreenWindowControllerIOS.mm:
(-[WKFullScreenWindowController videoControlsManagerDidChange]):
* WebProcess/cocoa/PlaybackSessionManager.mm:
(WebKit::PlaybackSessionManager::setUpPlaybackControlsManager):

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

2 years agoCreate CA layer contexts with +remoteContextWithOptions.
pvollan@apple.com [Fri, 9 Mar 2018 22:43:49 +0000 (22:43 +0000)]
Create CA layer contexts with +remoteContextWithOptions.
https://bugs.webkit.org/show_bug.cgi?id=182747

Reviewed by Brent Fulgham.

CA layer contexts (CAContext) are currently created with +contextWithCGSConnection, which is
using the main WindowServer connection to create the context. Instead, the contexts can be
created with +remoteContextWithOptions, which does not use the main WindowServer connection.
This is a step towards limiting the access the WebContent process has to the window server.
To make the +remoteContextWithOptions call succeed, the sandbox has to be modified to allow
access to CARenderServer. Also, access to the WindowServer should be denied by calling
CGSSetDenyWindowServerConnections(true) before entering the sandbox. This is planned to do
in a follow-up patch. The call to +remoteContextWithOptions will open up WindowServer
connections, since the WindowServer is the system default CA render server, but these
connections come with limited WindowServer exposure. In addition, we need to open up the
sandbox for accessing some IOKit properties.

* Platform/mac/LayerHostingContext.mm:
(WebKit::LayerHostingContext::createForExternalHostingProcess):
* Shared/mac/HangDetectionDisablerMac.mm:
(WebKit::setClientsMayIgnoreEvents):
* WebProcess/com.apple.WebProcess.sb.in:

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

2 years agoServiceWorker should respect IDB and DOMCache partitioning
youenn@apple.com [Fri, 9 Mar 2018 21:47:31 +0000 (21:47 +0000)]
ServiceWorker should respect IDB and DOMCache partitioning
https://bugs.webkit.org/show_bug.cgi?id=183496

Reviewed by Brady Eidson.

Source/WebCore:

Test: http/wpt/service-workers/third-party-registration.html

Set the correct top origin of service worker ScriptExecutionContext.

* workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::ServiceWorkerThread):

LayoutTests:

* http/wpt/service-workers/resources/third-party-registration-frame.html: Added.
* http/wpt/service-workers/resources/third-party-worker.js: Added.
* http/wpt/service-workers/third-party-registration-expected.txt: Added.
* http/wpt/service-workers/third-party-registration.html: Added.

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

2 years ago[Re-landing] Add support for ARM64E.
mark.lam@apple.com [Fri, 9 Mar 2018 21:45:51 +0000 (21:45 +0000)]
[Re-landing] Add support for ARM64E.
https://bugs.webkit.org/show_bug.cgi?id=183398
<rdar://problem/38212621>

Reviewed by Michael Saboff.

* assembler/MacroAssembler.h:
* llint/LLIntOfflineAsmConfig.h:
* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter64.asm:
* offlineasm/backends.rb:

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

2 years ago[Re-landing] Prepare LLInt code to support pointer profiling.
mark.lam@apple.com [Fri, 9 Mar 2018 21:35:17 +0000 (21:35 +0000)]
[Re-landing] Prepare LLInt code to support pointer profiling.
https://bugs.webkit.org/show_bug.cgi?id=183387
<rdar://problem/38199678>

Reviewed by JF Bastien.

Source/JavaScriptCore:

1. Introduced PtrTag enums for supporting pointer profiling later.

2. Also introduced tagging, untagging, retagging, and tag removal placeholder
   template functions for the same purpose.

3. Prepare the offlineasm for supporting pointer profiling later.

4. Tagged some pointers in LLInt asm code.  Currently, these should have no
   effect on behavior.

5. Removed returnToThrowForThrownException() because it is not used anywhere.

6. Added the offlineasm folder to JavaScriptCore Xcode project so that it's
   easier to view and edit these files in Xcode.

* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/LLIntCallLinkInfo.h:
(JSC::LLIntCallLinkInfo::unlink):
* llint/LLIntData.cpp:
(JSC::LLInt::initialize):
* llint/LLIntData.h:
* llint/LLIntExceptions.cpp:
(JSC::LLInt::returnToThrowForThrownException): Deleted.
* llint/LLIntExceptions.h:
* llint/LLIntOfflineAsmConfig.h:
* llint/LLIntOffsetsExtractor.cpp:
* llint/LLIntPCRanges.h:
(JSC::LLInt::isLLIntPC):
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::handleHostCall):
(JSC::LLInt::setUpCall):
* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* offlineasm/ast.rb:
* offlineasm/instructions.rb:
* offlineasm/risc.rb:
* runtime/PtrTag.h: Added.
(JSC::uniquePtrTagID):
(JSC::ptrTag):
(JSC::tagCodePtr):
(JSC::untagCodePtr):
(JSC::retagCodePtr):
(JSC::removeCodePtrTag):

Source/WTF:

* wtf/Platform.h:

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

2 years agoRemove cookie API access from WebContent Process
bfulgham@apple.com [Fri, 9 Mar 2018 21:31:02 +0000 (21:31 +0000)]
Remove cookie API access from WebContent Process
https://bugs.webkit.org/show_bug.cgi?id=183519
<rdar://problem/35368802>

Reviewed by Alex Christensen.

All cookie access is now handled in the Network Process. However, there are vestiges of the original logic that used CFNetwork APIs in the WebContent process.

This patch removes CFNetwork calls from the WebProcess code paths, since they serve no purpose in modern WebKit.

No tests because this is a code cleanup with no expected change in behavior.

* NetworkProcess/Cookies/mac/WebCookieManagerMac.mm:
(WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy): Moved from WebFrameNetworkingContext.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::setSharedHTTPCookieStorage): Moved from ChildProcess, since this should only be
called in the NetworkProcess.
* Shared/ChildProcess.h:
* Shared/mac/ChildProcessMac.mm:
(WebKit::ChildProcess::setSharedHTTPCookieStorage): Deleted.
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
(WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession): Remove CFNetwork code. This version of
'ensureWebsiteDataStoreSession' is needed to maintain a dictionary on the WebProcess side so we can refer to
the same network session in both the WebContent and Network processes.
(WebKit::WebFrameNetworkingContext::webFrameLoaderClient const):
(WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts): Deleted.
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess): Remove calls to CFNetwork.

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

2 years agoCannot change audio input source device
youenn@apple.com [Fri, 9 Mar 2018 21:14:58 +0000 (21:14 +0000)]
Cannot change audio input source device
https://bugs.webkit.org/show_bug.cgi?id=175975
<rdar://problem/34073589>

Reviewed by Eric Carlson.

Covered by manually testing https://webrtc.github.io/samples/src/content/devices/input-output/ with a USB web cam.

* platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioSharedUnit::setCaptureDeviceID):
(WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource):

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

2 years agoRemove unused LLINT_STATS feature.
mark.lam@apple.com [Fri, 9 Mar 2018 21:04:03 +0000 (21:04 +0000)]
Remove unused LLINT_STATS feature.
https://bugs.webkit.org/show_bug.cgi?id=183522
<rdar://problem/38313139>

Rubber-stamped by Keith Miller.

We haven't used this in a while, and it is one more option that makes offlineasm
build slower.  We can always re-introduce this later if we need it.

* jsc.cpp:
* llint/LLIntCommon.h:
* llint/LLIntData.cpp:
(JSC::LLInt::initialize):
(JSC::LLInt::Data::finalizeStats): Deleted.
(JSC::LLInt::compareStats): Deleted.
(JSC::LLInt::Data::dumpStats): Deleted.
(JSC::LLInt::Data::ensureStats): Deleted.
(JSC::LLInt::Data::loadStats): Deleted.
(JSC::LLInt::Data::resetStats): Deleted.
(JSC::LLInt::Data::saveStats): Deleted.
* llint/LLIntData.h:
(): Deleted.
(JSC::LLInt::Data::opcodeStats): Deleted.
* llint/LLIntOfflineAsmConfig.h:
* llint/LLIntSlowPaths.cpp:
* llint/LLIntSlowPaths.h:
* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* runtime/Options.cpp:
(JSC::Options::isAvailable):
(JSC::recomputeDependentOptions):
* runtime/Options.h:
* runtime/TestRunnerUtils.cpp:
(JSC::finalizeStatsAtEndOfTesting):

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

2 years agoServiceWorkerClientFetch should send data to its resource loader once the didReceiveR...
youenn@apple.com [Fri, 9 Mar 2018 20:47:11 +0000 (20:47 +0000)]
ServiceWorkerClientFetch should send data to its resource loader once the didReceiveResponse completion handler is called
https://bugs.webkit.org/show_bug.cgi?id=183110

Reviewed by Chris Dumez.

Buffering data/finish event/fail event until the response completion handler is called.

* WebProcess/Storage/ServiceWorkerClientFetch.cpp:
(WebKit::ServiceWorkerClientFetch::didReceiveResponse):
(WebKit::ServiceWorkerClientFetch::didReceiveData):
(WebKit::ServiceWorkerClientFetch::didFinish):
(WebKit::ServiceWorkerClientFetch::didFail):
(WebKit::ServiceWorkerClientFetch::didNotHandle):
(WebKit::ServiceWorkerClientFetch::cancel):
(WebKit::ServiceWorkerClientFetch::continueLoadingAfterCheckingResponse):
* WebProcess/Storage/ServiceWorkerClientFetch.h:

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

2 years agoRelanding "testmasm crashes in testBranchTruncateDoubleToInt32() on ARM64"
msaboff@apple.com [Fri, 9 Mar 2018 20:27:40 +0000 (20:27 +0000)]
Relanding "testmasm crashes in testBranchTruncateDoubleToInt32() on ARM64"
https://bugs.webkit.org/show_bug.cgi?id=183488

It applied and built just fine locally.

* assembler/testmasm.cpp:
(JSC::testBranchTruncateDoubleToInt32):

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

2 years agoAdd new CSS env constants for use with fullscreen
jer.noble@apple.com [Fri, 9 Mar 2018 19:20:31 +0000 (19:20 +0000)]
Add new CSS env constants for use with fullscreen
https://bugs.webkit.org/show_bug.cgi?id=183498

Reviewed by Dean Jackson.

Source/WebCore:

Tests: fullscreen/fullscreen-auto-hide-delay.html
       fullscreen/fullscreen-inset-top.html

* dom/ConstantPropertyMap.cpp:
(WebCore::ConstantPropertyMap::nameForProperty const):
(WebCore::variableDataForPositiveDuration):
(WebCore::ConstantPropertyMap::setFullscreenInsetTop):
(WebCore::ConstantPropertyMap::setFullscreenAutoHideDelay):
* dom/ConstantPropertyMap.h:
* page/Page.cpp:
(WebCore::Page::setFullscreenInsetTop):
(WebCore::Page::setFullscreenAutoHideDelay):
* page/Page.h:
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setFullscreenInsetTop):
(WebCore::Internals::setFullscreenAutoHideDelay):
* testing/Internals.h:
* testing/Internals.idl:

Source/WebKit:

Pass the values given to WebFullScreenManagerProxy through the process boundary and
into WebCore.

* UIProcess/WebFullScreenManagerProxy.cpp:
(WebKit::WebFullScreenManagerProxy::setFullscreenInsetTop):
(WebKit::WebFullScreenManagerProxy::setFullscreenAutoHideDelay):
* UIProcess/WebFullScreenManagerProxy.h:
* WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::didExitFullScreen):
(WebKit::WebFullScreenManager::setFullscreenInsetTop):
(WebKit::WebFullScreenManager::setFullscreenAutoHideDelay):
* WebProcess/FullScreen/WebFullScreenManager.h:
* WebProcess/FullScreen/WebFullScreenManager.messages.in:

LayoutTests:

* fullscreen/full-screen-test.js:
(run):
* fullscreen/fullscreen-auto-hide-delay-expected.txt: Added.
* fullscreen/fullscreen-auto-hide-delay.html: Added.
* fullscreen/fullscreen-inset-top-expected.txt: Added.
* fullscreen/fullscreen-inset-top.html: Added.

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

2 years agoRenderTreeBuilder::splitAnonymousBoxesAroundChild should take multicolumn spanners...
zalan@apple.com [Fri, 9 Mar 2018 19:14:23 +0000 (19:14 +0000)]
RenderTreeBuilder::splitAnonymousBoxesAroundChild should take multicolumn spanners into account.
https://bugs.webkit.org/show_bug.cgi?id=183493
<rdar://problem/38030461>

Reviewed by Antti Koivisto.

Source/WebCore:

Multicolumn spanners are taken out of their original position and placed next
to a RenderMultiColumnSet. splitAnonymousBoxesAroundChild needs to know the original parent (in the render tree context).

Test: fast/multicol/adjust-beforeChild-for-spanner-crash.html

* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::splitAnonymousBoxesAroundChild):
* rendering/updating/RenderTreeBuilder.h:
* rendering/updating/RenderTreeBuilderBlock.cpp:
(WebCore::RenderTreeBuilder::Block::attachIgnoringContinuation):
* rendering/updating/RenderTreeBuilderMultiColumn.cpp:
(WebCore::RenderTreeBuilder::MultiColumn::adjustBeforeChildForMultiColumnSpannerIfNeeded):
* rendering/updating/RenderTreeBuilderMultiColumn.h:
* rendering/updating/RenderTreeBuilderRuby.cpp:
(WebCore::RenderTreeBuilder::Ruby::moveChildrenInternal):
* rendering/updating/RenderTreeBuilderTable.cpp:
(WebCore::RenderTreeBuilder::Table::attach):

LayoutTests:

* fast/multicol/adjust-beforeChild-for-spanner-crash-expected.txt: Added.
* fast/multicol/adjust-beforeChild-for-spanner-crash.html: Added.

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

2 years ago[LayoutReloaded] Initial commit -block formatting context.
zalan@apple.com [Fri, 9 Mar 2018 19:10:37 +0000 (19:10 +0000)]
[LayoutReloaded] Initial commit -block formatting context.
https://bugs.webkit.org/show_bug.cgi?id=183462

Reviewed by Antti Koivisto.

See README.md

* LayoutReloaded/BlockContainer.js: Added.
(BlockContainer):
(BlockContainer.prototype.establishesInlineFormattingContext):
* LayoutReloaded/BlockFormattingContext.js: Added.
(BlockFormattingContext):
(BlockFormattingContext.prototype.layout):
(BlockFormattingContext.prototype.computeWidth):
(BlockFormattingContext.prototype.computeHeight):
(BlockFormattingContext.prototype.marginTop):
(BlockFormattingContext.prototype.marginBottom):
(BlockFormattingContext.prototype._computeStaticPosition):
(BlockFormattingContext.prototype._placeInFlowPositionedChildren):
(BlockFormattingContext.prototype._placeOutOfFlowDescendants):
(BlockFormattingContext.prototype._computeOutOfFlowWidth):
(BlockFormattingContext.prototype._computeFloatingWidth):
(BlockFormattingContext.prototype._computeInFlowWidth):
(BlockFormattingContext.prototype._computeOutOfFlowHeight):
(BlockFormattingContext.prototype._computeFloatingHeight):
(BlockFormattingContext.prototype._computeInFlowHeight):
(BlockFormattingContext.prototype._computeHorizontalConstraint):
(BlockFormattingContext.prototype._computeContentHeight):
(BlockFormattingContext.prototype._computeInFlowPositionedPosition):
(BlockFormattingContext.prototype._computeOutOfFlowPosition):
(BlockFormattingContext.prototype._shrinkToFitWidth):
* LayoutReloaded/BlockMarginCollapse.js: Added.
(BlockMarginCollapse.marginTop):
(BlockMarginCollapse.marginBottom):
(BlockMarginCollapse._isMarginTopCollapsedWithSibling):
(BlockMarginCollapse._isMarginBottomCollapsedWithSibling):
(BlockMarginCollapse._isMarginTopCollapsedWithParent):
(BlockMarginCollapse._isMarginBottomCollapsedWithParent):
(BlockMarginCollapse._nonCollapsedMarginTop):
(BlockMarginCollapse._nonCollapsedMarginBottom):
(BlockMarginCollapse._collapsedMarginTopFromFirstChild):
(BlockMarginCollapse._collapsedMarginBottomFromLastChild):
(BlockMarginCollapse._marginValue):
(BlockMarginCollapse._hasAdjoiningMarginTopAndBottom):
(BlockMarginCollapse):
* LayoutReloaded/Box.js: Added.
(Box):
(Box.prototype.id):
(Box.prototype.setRendererName):
(Box.prototype.name):
(Box.prototype.node):
(Box.prototype.parent):
(Box.prototype.nextSibling):
(Box.prototype.nextInFlowSibling):
(Box.prototype.previousSibling):
(Box.prototype.previousInFlowSibling):
(Box.prototype.setParent):
(Box.prototype.setNextSibling):
(Box.prototype.setPreviousSibling):
(Box.prototype.rect):
(Box.prototype.topLeft):
(Box.prototype.bottomRight):
(Box.prototype.setTopLeft):
(Box.prototype.setSize):
(Box.prototype.setWidth):
(Box.prototype.setHeight):
(Box.prototype.isContainer):
(Box.prototype.isBlockLevelBox):
(Box.prototype.isBlockContainerBox):
(Box.prototype.isInlineLevelBox):
(Box.prototype.setIsAnonymous):
(Box.prototype.isAnonymous):
(Box.prototype.establishesFormattingContext):
(Box.prototype.establishedFormattingContext):
(Box.prototype.establishesBlockFormattingContext):
(Box.prototype.establishesInlineFormattingContext):
(Box.prototype.isPositioned):
(Box.prototype.isRelativePositioned):
(Box.prototype.isAbsolutePositioned):
(Box.prototype.isFixedPositioned):
(Box.prototype.isInFlow):
(Box.prototype.isOutOfFlowPositioned):
(Box.prototype.isInFlowPositioned):
(Box.prototype.isFloatingPositioned):
(Box.prototype.isFloatingOrOutOfFlowPositioned):
(Box.prototype.isRootElement):
(Box.prototype.containingBlock):
(Box.prototype.borderBox):
(Box.prototype.paddingBox):
(Box.prototype.contentBox):
* LayoutReloaded/Container.js: Added.
(Container):
(Container.prototype.isContainer):
(Container.prototype.setFirstChild):
(Container.prototype.setLastChild):
(Container.prototype.firstChild):
(Container.prototype.firstInFlowChild):
(Container.prototype.lastChild):
(Container.prototype.lastInFlowChild):
(Container.prototype.hasChild):
(Container.prototype.hasInFlowChild):
* LayoutReloaded/FloatingContext.js: Added.
(FloatingContext):
(FloatingContext.prototype.computePosition):
(FloatingContext.prototype.bottom):
(FloatingContext.prototype._positionForFloating):
(FloatingContext.prototype._positionForClear):
(FloatingContext.prototype._computePositionToAvoidIntrudingFloats):
(FloatingContext.prototype._addFloating):
(FloatingContext.prototype._findInnerMostLeftAndRight):
(FloatingContext.prototype._moveToNextVerticalPosition):
(FloatingContext.prototype._availableSpace):
(FloatingContext.prototype._findFloatingAtVerticalPosition):
(FloatingContext.prototype._isEmpty):
(FloatingContext.prototype._adjustedFloatingPosition):
(FloatingContext.prototype._bottom):
(FloatingContext.prototype._formattingContext):
* LayoutReloaded/FormattingContext.js: Added.
(FormattingContext):
(FormattingContext.prototype.rootContainer):
(FormattingContext.prototype.floatingContext):
(FormattingContext.prototype.layout):
(FormattingContext.prototype.computeWidth):
(FormattingContext.prototype.computeHeight):
(FormattingContext.prototype.marginTop):
(FormattingContext.prototype.marginLeft):
(FormattingContext.prototype.marginBottom):
(FormattingContext.prototype.marginRight):
(FormattingContext.prototype.absoluteMarginBox):
(FormattingContext.prototype.absoluteBorderBox):
(FormattingContext.prototype.absolutePaddingBox):
(FormattingContext.prototype.absoluteContentBox):
* LayoutReloaded/InitialBlockContainer.js: Added.
(InitialBlockContainer):
(InitialBlockContainer.prototype.establishesBlockFormattingContext):
(InitialBlockContainer.prototype.paddingBox):
(InitialBlockContainer.prototype.contentBox):
* LayoutReloaded/InlineBox.js: Added.
(InlineBox):
(InlineBox.prototype.setText):
(InlineBox.prototype.text):
* LayoutReloaded/InlineFormattingContext.js: Added.
(InlineFormattingContext):
(InlineFormattingContext.prototype.layout):
(InlineFormattingContext.prototype._handleInlineBox):
(InlineFormattingContext.prototype._handleText):
* LayoutReloaded/Layout.js: Added.
(layout):
* LayoutReloaded/LayoutContext.js: Added.
(LayoutContext):
(LayoutContext.prototype.layoutFormattingContext):
* LayoutReloaded/LayoutReloaded.xcworkspace/contents.xcworkspacedata: Added.
* LayoutReloaded/LayoutReloaded.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: Added.
* LayoutReloaded/README.md: Added.
* LayoutReloaded/Text.js: Added.
(Text):
* LayoutReloaded/TreeBuilder.js: Added.
(TreeBuilder.prototype.createTree):
(TreeBuilder.prototype._createAndAttachBox):
(TreeBuilder.prototype._appendChild):
(TreeBuilder.prototype._findBox):
(TreeBuilder.prototype._findNode):
(TreeBuilder):
* LayoutReloaded/Utils.js: Added.
(LayoutPoint):
(LayoutPoint.prototype.setLeft):
(LayoutPoint.prototype.setTop):
(LayoutPoint.prototype.left):
(LayoutPoint.prototype.top):
(LayoutPoint.prototype.shiftLeft):
(LayoutPoint.prototype.shiftTop):
(LayoutPoint.prototype.moveBy):
(LayoutPoint.prototype.equal):
(LayoutPoint.prototype.clone):
(LayoutSize):
(LayoutSize.prototype.setWidth):
(LayoutSize.prototype.setHeight):
(LayoutSize.prototype.width):
(LayoutSize.prototype.height):
(LayoutSize.prototype.growBy):
(LayoutSize.prototype.shrinkBy):
(LayoutSize.prototype.isEmpty):
(LayoutSize.prototype.equal):
(LayoutSize.prototype.clone):
(LayoutRect):
(LayoutRect.prototype.setTop):
(LayoutRect.prototype.setLeft):
(LayoutRect.prototype.setBottom):
(LayoutRect.prototype.setRight):
(LayoutRect.prototype.left):
(LayoutRect.prototype.top):
(LayoutRect.prototype.bottom):
(LayoutRect.prototype.right):
(LayoutRect.prototype.setTopLeft):
(LayoutRect.prototype.topLeft):
(LayoutRect.prototype.topRight):
(LayoutRect.prototype.bottomRight):
(LayoutRect.prototype.setWidth):
(LayoutRect.prototype.setHeight):
(LayoutRect.prototype.setSize):
(LayoutRect.prototype.size):
(LayoutRect.prototype.width):
(LayoutRect.prototype.height):
(LayoutRect.prototype.growBy):
(LayoutRect.prototype.shrinkBy):
(LayoutRect.prototype.moveBy):
(LayoutRect.prototype.isEmpty):
(LayoutRect.prototype.equal):
(LayoutRect.prototype.intersects):
(LayoutRect.prototype.contains):
(LayoutRect.prototype.clone):
(ASSERT_NOT_REACHED):
(ASSERT):
(Utils.computedValue):
(Utils.propertyIsAuto):
(Utils.isWidthAuto):
(Utils.isHeightAuto):
(Utils.isTopAuto):
(Utils.isLeftAuto):
(Utils.isBottomAuto):
(Utils.isRightAuto):
(Utils.width):
(Utils.height):
(Utils.top):
(Utils.bottom):
(Utils.left):
(Utils.right):
(Utils.hasBorderTop):
(Utils.hasBorderBottom):
(Utils.hasPaddingTop):
(Utils.hasPaddingBottom):
(Utils.computedMarginTop):
(Utils.computedMarginLeft):
(Utils.computedMarginBottom):
(Utils.computedMarginRight):
(Utils.computedBorderTopLeft):
(Utils.computedBorderBottomRight):
(Utils.computedPaddingTopLeft):
(Utils.computedPaddingBottomRight):
(Utils.computedBorderAndPaddingTop):
(Utils.computedBorderAndPaddingLeft):
(Utils.computedBorderAndPaddingBottom):
(Utils.computedBorderAndPaddingRight):
(Utils.computedHorizontalBorderAndPadding):
(Utils.computedVerticalBorderAndPadding):
(Utils.hasClear):
(Utils.hasClearLeft):
(Utils.hasClearRight):
(Utils.hasClearBoth):
(Utils.isBlockLevelElement):
(Utils.isBlockContainerElement):
(Utils.isInlineLevelElement):
(Utils.isTableElement):
(Utils.isRelativePositioned):
(Utils.isAbsolutePositioned):
(Utils.isFixedPositioned):
(Utils.isOverflowVisible):
(Utils.isFloatingPositioned):
(Utils.isFloatingLeft):
(Utils.mapToContainer):
(Utils.mapStaticToAbsolute):
(Utils.collectOutOfFlowDescendants):
(Utils.nextBreakingOpportunity):
(Utils.measureText):
(Utils.layoutTreeDump):
(Utils._dumpBox):
(Utils._dumpTree):
(Utils):
* LayoutReloaded/misc/LayoutReloadedWebKit.patch: Added.
* LayoutReloaded/misc/headers/BlockContainer.h: Added.
* LayoutReloaded/misc/headers/BlockFormattingContext.h: Added.
* LayoutReloaded/misc/headers/BlockMarginCollapse.h: Added.
* LayoutReloaded/misc/headers/Box.h: Added.
* LayoutReloaded/misc/headers/Container.h: Added.
* LayoutReloaded/misc/headers/FloatingContext.h: Added.
* LayoutReloaded/misc/headers/FormattingContext.h: Added.
* LayoutReloaded/misc/headers/InitialBlockContainer.h: Added.
* LayoutReloaded/misc/headers/InlineBox.h: Added.
* LayoutReloaded/misc/headers/LayoutContext.h: Added.
* LayoutReloaded/misc/headers/Text.h: Added.
* LayoutReloaded/test/TestHarness.js: Added.
(verifyLayoutTreeDump):
(runLayout):
* LayoutReloaded/test/absolute-auto-with-sibling-margin-bottom.html: Added.
* LayoutReloaded/test/absolute-bottom.html: Added.
* LayoutReloaded/test/absolute-height-stretch.html: Added.
* LayoutReloaded/test/absolute-left-auto.html: Added.
* LayoutReloaded/test/absolute-left-right-top-bottom-auto.html: Added.
* LayoutReloaded/test/absolute-nested.html: Added.
* LayoutReloaded/test/absolute-nested2.html: Added.
* LayoutReloaded/test/absolute-simple.html: Added.
* LayoutReloaded/test/absolute-width-shrink-to-fit.html: Added.
* LayoutReloaded/test/absolute-width-stretch.html: Added.
* LayoutReloaded/test/absolute-with-inline-preferred-width.html: Added.
* LayoutReloaded/test/absolute-with-static-block-position-nested.html: Added.
* LayoutReloaded/test/almost-intruding-left-float-simple.html: Added.
* LayoutReloaded/test/border-simple.html: Added.
* LayoutReloaded/test/fixed-nested.html: Added.
* LayoutReloaded/test/float-left-when-container-has-padding-margin.html: Added.
* LayoutReloaded/test/floating-box-clear-both-simple.html: Added.
* LayoutReloaded/test/floating-box-clear-right-simple.html: Added.
* LayoutReloaded/test/floating-box-left-and-right-multiple-with-top-offset.html: Added.
* LayoutReloaded/test/floating-box-left-and-right-multiple.html: Added.
* LayoutReloaded/test/floating-box-right-simple.html: Added.
* LayoutReloaded/test/floating-box-with-clear-siblings.html: Added.
* LayoutReloaded/test/floating-box-with-clear-simple.html: Added.
* LayoutReloaded/test/floating-box-with-new-formatting-context.html: Added.
* LayoutReloaded/test/floating-box-with-relative-positioned-sibling.html: Added.
* LayoutReloaded/test/floating-left-right-simple.html: Added.
* LayoutReloaded/test/floating-left-right-with-all-margins.html: Added.
* LayoutReloaded/test/floating-lefts-and-rights-simple.html: Added.
* LayoutReloaded/test/floating-multiple-lefts-in-body.html: Added.
* LayoutReloaded/test/floating-multiple-lefts-multiple-lines.html: Added.
* LayoutReloaded/test/floating-multiple-lefts.html: Added.
* LayoutReloaded/test/floating-sizing.html: Added.
* LayoutReloaded/test/floating-sizing2.html: Added.
* LayoutReloaded/test/floating-sizing3.html: Added.
* LayoutReloaded/test/floating-with-new-block-formatting-context.html: Added.
* LayoutReloaded/test/index.html: Added.
* LayoutReloaded/test/inline-content-simple.html: Added.
* LayoutReloaded/test/intruding-left-float-simple.html: Added.
* LayoutReloaded/test/margin-collapse-bottom-bottom.html: Added.
* LayoutReloaded/test/margin-collapse-bottom-nested.html: Added.
* LayoutReloaded/test/margin-collapse-first-last-are-floating.html: Added.
* LayoutReloaded/test/margin-collapse-simple.html: Added.
* LayoutReloaded/test/margin-collapse-top-nested.html: Added.
* LayoutReloaded/test/margin-collapse-when-child-has-padding-border.html: Added.
* LayoutReloaded/test/margin-collapse-with-block-formatting-context.html: Added.
* LayoutReloaded/test/margin-collapse-with-block-formatting-context2.html: Added.
* LayoutReloaded/test/margin-left-right-sizing-out-of-flow.html: Added.
* LayoutReloaded/test/margin-left-right-sizing.html: Added.
* LayoutReloaded/test/margin-propagation-simple-content-height.html: Added.
* LayoutReloaded/test/margin-sibling-collapse-propagated.html: Added.
* LayoutReloaded/test/margin-simple.html: Added.
* LayoutReloaded/test/negative-margin-simple.html: Added.
* LayoutReloaded/test/padding-nested.html: Added.
* LayoutReloaded/test/padding-simple.html: Added.
* LayoutReloaded/test/relative-auto-with-parent-offset.html: Added.
* LayoutReloaded/test/relative-auto.html: Added.
* LayoutReloaded/test/relative-bottom.html: Added.
* LayoutReloaded/test/relative-right.html: Added.
* LayoutReloaded/test/relative-siblings.html: Added.
* LayoutReloaded/test/relative-simple.html: Added.

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

2 years agoAdd isPictureInPictureActive messaging across WebKit process boundary
jer.noble@apple.com [Fri, 9 Mar 2018 18:59:33 +0000 (18:59 +0000)]
Add isPictureInPictureActive messaging across WebKit process boundary
https://bugs.webkit.org/show_bug.cgi?id=183499

Reviewed by Eric Carlson.

Source/WebCore:

* platform/cocoa/PlaybackSessionModel.h:
(WebCore::PlaybackSessionModelClient::pictureInPictureActiveChanged):
* platform/cocoa/PlaybackSessionModelMediaElement.h:
* platform/cocoa/PlaybackSessionModelMediaElement.mm:
(WebCore::PlaybackSessionModelMediaElement::updateForEventName):
(WebCore::PlaybackSessionModelMediaElement::isPictureInPictureActive const):
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(VideoFullscreenControllerContext::isPictureInPictureActive const):

Source/WebKit:

* UIProcess/Cocoa/PlaybackSessionManagerProxy.h:
* UIProcess/Cocoa/PlaybackSessionManagerProxy.messages.in:
* UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:
(WebKit::PlaybackSessionModelContext::pictureInPictureActiveChanged):
(WebKit::PlaybackSessionManagerProxy::pictureInPictureActiveChanged):

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

2 years ago[Curl] Implement connection limit.
commit-queue@webkit.org [Fri, 9 Mar 2018 18:51:27 +0000 (18:51 +0000)]
[Curl] Implement connection limit.
https://bugs.webkit.org/show_bug.cgi?id=183016

Implement both connection limit per host and total
connection limit on curl network layer.

Patch by Basuke Suzuki <Basuke.Suzuki@sony.com> on 2018-03-09
Reviewed by Youenn Fablet.

No new tests because there's no behavior change.

* platform/network/curl/CurlContext.cpp:
(WebCore::EnvironmentVariableReader::sscanTemplate<signed>):
(WebCore::CurlContext::CurlContext):
(WebCore::CurlMultiHandle::setMaxConnects):
(WebCore::CurlMultiHandle::setMaxTotalConnections):
(WebCore::CurlMultiHandle::setMaxHostConnections):
* platform/network/curl/CurlContext.h:
(WebCore::CurlContext::scheduler):
* platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::startWithJobManager):
(WebCore::CurlRequest::cancel):
(WebCore::CurlRequest::invokeDidReceiveResponseForFile):
(WebCore::CurlRequest::completeDidReceiveResponse):
(WebCore::CurlRequest::pausedStatusChanged):
* platform/network/curl/CurlRequestScheduler.cpp:
(WebCore::CurlRequestScheduler::CurlRequestScheduler):
(WebCore::CurlRequestScheduler::workerThread):
(WebCore::CurlRequestScheduler::singleton): Deleted.
* platform/network/curl/CurlRequestScheduler.h:

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

2 years agoWebKitTestRunner: Do not build accessibility files/idl when !HAVE(ACCESSIBILITY)
commit-queue@webkit.org [Fri, 9 Mar 2018 18:51:26 +0000 (18:51 +0000)]
WebKitTestRunner: Do not build accessibility files/idl when !HAVE(ACCESSIBILITY)
https://bugs.webkit.org/show_bug.cgi?id=183516

Patch by Stephan Szabo <stephan.szabo@sony.com> on 2018-03-09
Reviewed by Alex Christensen.

* WebKitTestRunner/CMakeLists.txt:

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

2 years ago[webkitpy, WinCairo] Launch Apache HTTPD for HTTP Tests.
commit-queue@webkit.org [Fri, 9 Mar 2018 18:48:46 +0000 (18:48 +0000)]
[webkitpy, WinCairo] Launch Apache HTTPD for HTTP Tests.
https://bugs.webkit.org/show_bug.cgi?id=183265

Patch by Basuke Suzuki <Basuke.Suzuki@sony.com> on 2018-03-09
Reviewed by Daniel Bates.

Launch apache httpd server from python script for WinCairo HTTP LayoutTests. By now, AppleWin uses
Cygwin to launch httpd server. This patch enables native Windows to run HTTP LayoutTests by starting
and stopping httpd server from the script.

Tools:

* Scripts/webkitpy/layout_tests/servers/apache_http_server.py:
(LayoutTestApacheHttpd.__init__):
(LayoutTestApacheHttpd._copy_apache_config_file):
(LayoutTestApacheHttpd):
(LayoutTestApacheHttpd.platform):
(LayoutTestApacheHttpd._spawn_process):
(LayoutTestApacheHttpd._stop_running_server):
(LayoutTestApacheHttpd._run):
(LayoutTestApacheHttpd._server_error):
* Scripts/webkitpy/layout_tests/servers/http_server_base.py:
(HttpServerBase.aliases):
(HttpServerBase):
(HttpServerBase._build_alias_path_pairs):
(HttpServerBase._build_alias_path_pairs._make_path):
* Scripts/webkitpy/layout_tests/servers/http_server_base_unittest.py:
(TestHttpServerBase.test_corrupt_pid_file):
(TestHttpServerBase):
(TestHttpServerBase.test_build_alias_path_pairs):
* Scripts/webkitpy/port/base.py:
(Port._apache_config_file_name_for_platform):
* Scripts/webkitpy/port/port_testcase.py:
(test_apache_config_file_name_for_platform):
* Scripts/webkitpy/port/win.py:
(WinPort._path_to_apache):
(WinCairoPort.default_baseline_search_path):
(WinCairoPort):
(WinCairoPort.check_httpd):

LayoutTests:

* http/conf/win-httpd-2.4-php7.conf: Added.
For WinCairo from native Windows environment.

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

2 years agohttp/tests/security/frame-loading-via-document-write-async-delegates.html fails with...
cdumez@apple.com [Fri, 9 Mar 2018 18:45:59 +0000 (18:45 +0000)]
http/tests/security/frame-loading-via-document-write-async-delegates.html fails with async delegates
https://bugs.webkit.org/show_bug.cgi?id=183460

Reviewed by Alex Christensen.

The test has 3 frames which all initially load "about:blank". Then using document.write(), it inserts
HTML in each frame.
Frame 1: body has an onload event handler, which calls JS is click an anchor link to navigate the frame.
Frame 2: body has an onload event handler to do some logging
Frame 3: body has an onload event handler and finishes the test (calls testRunner.notifyDone())

The issue is that with asynchronous policy delegates, the first frame may not have navigated yet by the
time the third frame is loaded. Indeed, the onload event of the first frame merely clicks am anchor link
which will trigger a navigation policy check and then later navigate.

To make the test more robust, we now count the number of loads and call testRunner.notifyDone() when
we've reached the expected number of loads.

* http/tests/security/frame-loading-via-document-write-async-delegates-expected.txt: Added.
* http/tests/security/frame-loading-via-document-write-async-delegates.html: Copied from LayoutTests/http/tests/security/frame-loading-via-document-write.html.
* http/tests/security/frame-loading-via-document-write.html:
* http/tests/security/resources/frame-loading-via-document-write.js:

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

2 years agoAdd guard for wtf/glib include
commit-queue@webkit.org [Fri, 9 Mar 2018 18:40:51 +0000 (18:40 +0000)]
Add guard for wtf/glib include
https://bugs.webkit.org/show_bug.cgi?id=183521

Patch by Stephan Szabo <stephan.szabo@sony.com> on 2018-03-09
Reviewed by Alex Christensen.

* Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp:

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

2 years agowebkitfullscreenchange event not fired at the same time as :-webkit-full-screen pseud...
jer.noble@apple.com [Fri, 9 Mar 2018 18:21:11 +0000 (18:21 +0000)]
webkitfullscreenchange event not fired at the same time as :-webkit-full-screen pseudo selector changes; causes glitchiness
https://bugs.webkit.org/show_bug.cgi?id=183383

Source/WebCore:

Reviewed by Eric Carlson.

Fire the webkitfullscreenchange event at the same time as the pseudo class selector changes, during the handling
of webkitDidEnterFullScreenForElement. For WebKit2 clients, this is guaranteed to be asynchronous, since the
calling method originates in the UIProcess. For WebKit1 clients (and WKTR and DRT), there's the possibility that
webkitWillEnterFullScreenForElement will be called synchronously from within
Document::requestFullScreenForElement(), so break that synchronousness by starting the
ChromeClient::enterFullScreenForElement(...) process in a async task.

Previously, the firing of the fullscreenchange event was done through a zero-length timer. Use a
GenericTaskQueue instead.

A number of layout tests depend on the behavior that the element will be in fullscreen when the 'playing' event
fires. This was true for DRT (but not WKTR), since its fullscreen implementations were deliberately synchronous, but
won't necessarily be true for all ports. Fix this in a subsequent patch.

* dom/Document.cpp:
(WebCore::Document::requestFullScreenForElement):
(WebCore::Document::webkitExitFullscreen):
(WebCore::Document::webkitWillEnterFullScreenForElement):
(WebCore::Document::webkitDidEnterFullScreenForElement):
(WebCore::Document::webkitDidExitFullScreenForElement):
(WebCore::Document::dispatchFullScreenChangeEvents):
* dom/Document.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::playInternal):
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
(WebCore::HTMLMediaElement::updatePlayState):
(WebCore::HTMLMediaElement::setPlaying):

LayoutTests:

Fix a couple tests that depended on non-standard behavior, and skip other tests to be fixed later.

Reviewed by Eric Carlson.

* media/fullscreen-video-going-into-pip.html:
* media/video-fullscreeen-only-playback.html:
* platform/mac/TestExpectations:

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

2 years agoUnreviewed, remove WebAssemblyFunctionType
utatane.tea@gmail.com [Fri, 9 Mar 2018 18:02:49 +0000 (18:02 +0000)]
Unreviewed, remove WebAssemblyFunctionType
https://bugs.webkit.org/show_bug.cgi?id=183429

Drop WebAssemblyFunctionType since it is no longer used. This breaks
JSCast assumption that all the derived classes of JSFunction use
JSFunctionType. We also add ASSERT for JSFunction::finishCreation.

* runtime/JSFunction.cpp:
(JSC::JSFunction::finishCreation):
* runtime/JSType.h:
* wasm/js/WebAssemblyFunction.cpp:
(JSC::WebAssemblyFunction::createStructure):
* wasm/js/WebAssemblyFunction.h:

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

2 years agoUnreviewed, rolling out r229446.
ryanhaddad@apple.com [Fri, 9 Mar 2018 17:59:57 +0000 (17:59 +0000)]
Unreviewed, rolling out r229446.

This change relies on changes that have been rolled out.

Reverted changeset:

"testmasm crashes in testBranchTruncateDoubleToInt32() on
ARM64"
https://bugs.webkit.org/show_bug.cgi?id=183488
https://trac.webkit.org/changeset/229446

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

2 years agoUnreviewed GTK+ gardening.
fred.wang@free.fr [Fri, 9 Mar 2018 17:57:59 +0000 (17:57 +0000)]
Unreviewed GTK+ gardening.

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

* platform/gtk/TestExpectations: Skip test requiring DASHBOARD_SUPPORT.
* platform/gtk/mathml/mathml-in-dashboard-expected.txt: Removed.

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

2 years ago[Mac] WebKit fails to receive file promises when the embedding app is sandboxed
aestes@apple.com [Fri, 9 Mar 2018 15:11:01 +0000 (15:11 +0000)]
[Mac] WebKit fails to receive file promises when the embedding app is sandboxed
https://bugs.webkit.org/show_bug.cgi?id=183489
<rdar://problem/38267517>

Source/WebKit:

WebKit calls -[NSFilePromiseReceiver receivePromisedFilesAtDestination:...] with
NSTemporaryDirectory() as the destination for receiving file promise drops. AppKit attempts
to issue a sandbox extension for this directory, but for security reasons App Sandbox
refuses to do so for NSTemporaryDirectory() itself. As a result, AppKit will call our reader
block with a nil error and a valid file URL, but no file will actually exist at that URL.

In order for App Sandbox to grant issuing the sandbox extension needed by AppKit, we need to
use some other destination directory. This patch uses FileSystem::createTemporaryDirectory()
to securely create a unique temporary directory inside NSTemporaryDirectory() for use as the
drop destination.

Reviewed by Wenson Hsieh.

* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::performDragOperation):

Source/WebKitLegacy/mac:

WebKitLegacy calls -[NSFilePromiseReceiver receivePromisedFilesAtDestination:...] with
NSTemporaryDirectory() as the destination for receiving file promise drops. AppKit attempts
to issue a sandbox extension for this directory, but for security reasons App Sandbox
refuses to do so for NSTemporaryDirectory() itself. As a result, AppKit will call our reader
block with a nil error and a valid file URL, but no file will actually exist at that URL.

In order for App Sandbox to grant issuing the sandbox extension needed by AppKit, we need to
use some other destination directory. This patch uses FileSystem::createTemporaryDirectory()
to securely create a unique temporary directory inside NSTemporaryDirectory() for use as the
drop destination.

Reviewed by Wenson Hsieh.

* WebView/WebView.mm:
(-[WebView performDragOperation:]):

LayoutTests:

Reviewed by Wenson Hsieh.

Now that we create a unique temporary directory per drop, this test no longer encounters a
name conflict for apple.gif.

* editing/pasteboard/file-input-files-access-promise-expected.txt:
* editing/pasteboard/file-input-files-access-promise.html:

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

2 years ago[GTK] Do not use WebKitDOMHTMLFormElement as argument of signal WebKitWebPage::will...
carlosgc@webkit.org [Fri, 9 Mar 2018 14:41:01 +0000 (14:41 +0000)]
[GTK] Do not use WebKitDOMHTMLFormElement as argument of signal WebKitWebPage::will-submit-form
https://bugs.webkit.org/show_bug.cgi?id=183510

Reviewed by Michael Catanzaro.

Source/WebKit:

In 2.22 WebKitDOMHTMLFormElement will be deprecated in GTK+ port and won't still exist in WPE. The new
JavaScript GLib API will be used to replace most of the DOM API, but a few classes will remain with a minimal
API for things that can't be done with JavaScript. WebKitDOMElement will stay and will be added to WPE as well,
so if we change the signal parameter to WebKitDOMElement we will be able to keep using
WebKitWebPage::will-submit-form without any changes. WPE will gain this signal and the rest of the API that uses
DOM.

* WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp:
(webkit_web_page_class_init):

Tools:

Update the test to use WebKitDOMElement instead and fix a memory leak.

* TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:
(handleFormSubmissionCallback):
(willSubmitFormCallback):

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

2 years ago[Nicosia] Add threaded PaintingEngine implementation
zandobersek@gmail.com [Fri, 9 Mar 2018 14:03:25 +0000 (14:03 +0000)]
[Nicosia] Add threaded PaintingEngine implementation
https://bugs.webkit.org/show_bug.cgi?id=183511

Reviewed by Carlos Garcia Campos.

Add Nicosia::PaintingEngineThreaded, class that internally uses a thread
pool in which painting tasks are executed.

Implementation for now defaults to using GLib's GThreadPool, defaulting
to 4 threads that are exclusive to this pool. These parameters should be
fine-tuned in the future, or even made configurable, but are a solid
basis for testing.

In PaintingEngineThreaded::paint(), PaintingContext implementation is
used to record all the operations, and the gathered Vector is combined
with the Buffer object and dispatched into the thread pool. In the
thread function, the provided buffer and painting operations are run
through the PaintingContext implementation, replaying all the operations
on a painting context that draws into the given buffer.

The recorded operation objects implement the PaintingOperation interface
contain all the data necessary to replay a given operation. They can be
executed against a PaintingOperationReplay object, as is the case during
PaintingContext::replay(), or they can be dumped into a TextStream
object for debugging purposes.

PaintingContext now also provides the record() and replay() static
functions. PaintingContext objects now differ per purpose, which can be
either for painting or for recording. paint() and replay() use a
for-painting PaintingContext, and record() uses a for-recording one.
The for-painting PaintingContext receives a Buffer object, i.e. a memory
area on which it can draw, while the for-recording PaintingContext uses
the passed-in PaintingOperations Vector that should store all the
recorded operations.

The current Cairo implementation of PaintingContext is moved into
PaintingContextCairo::ForPainting. PaintingContextCairo::ForRecording is
added but is currently no-op until a Cairo-specific GraphicsContextImpl
with recording capabilities is added, allowing any call on the
GraphicsContext object used in PaintingContext::record() to be recorded
for later replay. PaintingOperationReplayCairo, inheriting from
PaintingOperationReplay, will be used for replay purposes, providing
only reference to the PlatformContextCairo object that is constructed in
PaintingContextCairo::ForPainting.

The Cairo-specific GraphicsContextImpl implementation will be added in
a separate patch. After that, PaintingEngine::create() will be modified
so that the Nicosia::PaintingEngineThreaded implementation can be used
for testing purposes, probably by setting an environment variable.

* platform/TextureMapper.cmake:
* platform/graphics/nicosia/NicosiaPaintingContext.cpp:
(Nicosia::PaintingContext::createForPainting):
(Nicosia::PaintingContext::createForRecording):
(Nicosia::PaintingContext::create): Deleted.
* platform/graphics/nicosia/NicosiaPaintingContext.h:
(Nicosia::PaintingContext::paint):
(Nicosia::PaintingContext::record):
(Nicosia::PaintingContext::replay):
* platform/graphics/nicosia/NicosiaPaintingEngineThreaded.cpp: Added.
(Nicosia::s_threadFunc):
(Nicosia::paintLayer):
(Nicosia::PaintingEngineThreaded::PaintingEngineThreaded):
(Nicosia::PaintingEngineThreaded::~PaintingEngineThreaded):
(Nicosia::PaintingEngineThreaded::paint):
* platform/graphics/nicosia/NicosiaPaintingEngineThreaded.h: Copied from Source/WebCore/platform/graphics/nicosia/NicosiaPaintingContext.cpp.
* platform/graphics/nicosia/NicosiaPaintingOperation.h: Copied from Source/WebCore/platform/graphics/nicosia/NicosiaPaintingContext.cpp.
* platform/graphics/nicosia/cairo/NicosiaPaintingContextCairo.cpp:
(Nicosia::PaintingContextCairo::ForPainting::ForPainting):
(Nicosia::PaintingContextCairo::ForPainting::~ForPainting):
(Nicosia::PaintingContextCairo::ForPainting::graphicsContext):
(Nicosia::PaintingContextCairo::ForPainting::replay):
(Nicosia::PaintingContextCairo::ForRecording::ForRecording):
(Nicosia::PaintingContextCairo::ForRecording::graphicsContext):
(Nicosia::PaintingContextCairo::ForRecording::replay):
(Nicosia::PaintingContextCairo::PaintingContextCairo): Deleted.
(Nicosia::PaintingContextCairo::~PaintingContextCairo): Deleted.
(Nicosia::PaintingContextCairo::graphicsContext): Deleted.
* platform/graphics/nicosia/cairo/NicosiaPaintingContextCairo.h:
* platform/graphics/nicosia/cairo/NicosiaPaintingOperationReplayCairo.h: Copied from Source/WebCore/platform/graphics/nicosia/NicosiaPaintingContext.cpp.
(Nicosia::PaintingOperationReplayCairo::PaintingOperationReplayCairo):

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

2 years agoRemove some unused cruft in TextureMapperLayer.
zandobersek@gmail.com [Fri, 9 Mar 2018 13:43:56 +0000 (13:43 +0000)]
Remove some unused cruft in TextureMapperLayer.

The ScrollingClient class is not used anymore since r229318.
findScrollableContentsLayerAt() is similarly unused, but also lacking
an actual definition. ContentsLayerCount enum can also be purged.

Rubber-stamped by Carlos Garcia Campos.

* platform/graphics/texmap/TextureMapperLayer.h:

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

2 years agoUnreviewed. [GTK][WPE] Bump Since tags of resource load stats API.
carlosgc@webkit.org [Fri, 9 Mar 2018 10:37:01 +0000 (10:37 +0000)]
Unreviewed. [GTK][WPE] Bump Since tags of resource load stats API.

The functionality hasn't been properly tested to be released in WebKitGTK+ 2.20.

* UIProcess/API/glib/WebKitWebsiteDataManager.cpp:
(webkit_website_data_manager_class_init):
* UIProcess/API/gtk/WebKitWebsiteData.h:
* UIProcess/API/wpe/WebKitWebsiteData.h:

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

2 years agoUnreviewed. Bump WebKitGTK+ version to 2.21.0.
carlosgc@webkit.org [Fri, 9 Mar 2018 10:18:50 +0000 (10:18 +0000)]
Unreviewed. Bump WebKitGTK+ version to 2.21.0.

* Source/cmake/OptionsGTK.cmake:

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

2 years agoUnreviewed GTK+ gardening.
zandobersek@gmail.com [Fri, 9 Mar 2018 09:13:35 +0000 (09:13 +0000)]
Unreviewed GTK+ gardening.

* platform/gtk/TestExpectations: Add a failure expectation for the
http/tests/preconnect/link-header-rel-preconnect-http.html test.
* platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt:
Update baseline after r229310.

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

2 years agoAdd basic synchronization capability to Nicosia::Buffer
zandobersek@gmail.com [Fri, 9 Mar 2018 07:50:26 +0000 (07:50 +0000)]
Add basic synchronization capability to Nicosia::Buffer
https://bugs.webkit.org/show_bug.cgi?id=183500

Reviewed by Carlos Garcia Campos.

Have Nicosia::Buffer track a painting state, and allow that state to be
modified and accessed from different threads. The PaintingState enum
value is protected by a Lock object, and can be modified via the
beginPainting() and completePainting() methods. Additionally, the
waitUntilPaintingComplete() method allows the caller to wait until the
painting is complete for the given Nicosia::Buffer object.

This added state doesn't affect a Nicosia::Buffer object internally, and
doesn't have any effect on  existing usages of Nicosia::Buffer (which
are not multi-threaded).

* platform/graphics/nicosia/NicosiaBuffer.cpp:
(Nicosia::Buffer::beginPainting):
(Nicosia::Buffer::completePainting):
(Nicosia::Buffer::waitUntilPaintingComplete):
* platform/graphics/nicosia/NicosiaBuffer.h:

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

2 years agoMove NicosiaPaintingContextCairo files under Cairo-specific directory
zandobersek@gmail.com [Fri, 9 Mar 2018 07:42:34 +0000 (07:42 +0000)]
Move NicosiaPaintingContextCairo files under Cairo-specific directory
https://bugs.webkit.org/show_bug.cgi?id=183497

Reviewed by Carlos Garcia Campos.

Pack Cairo-specific files in the Nicosia subsystem under cairo/.

* platform/TextureMapper.cmake:
* platform/graphics/nicosia/cairo/NicosiaPaintingContextCairo.cpp: Renamed from Source/WebCore/platform/graphics/nicosia/NicosiaPaintingContextCairo.cpp.
* platform/graphics/nicosia/cairo/NicosiaPaintingContextCairo.h: Renamed from Source/WebCore/platform/graphics/nicosia/NicosiaPaintingContextCairo.h.

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

2 years agoAX: AOM: More accessibility events support
n_wang@apple.com [Fri, 9 Mar 2018 07:35:52 +0000 (07:35 +0000)]
AX: AOM: More accessibility events support
https://bugs.webkit.org/show_bug.cgi?id=183023
<rdar://problem/37764380>

Reviewed by Chris Fleizach.

Source/WebCore:

Fixed the crash that we shouldn't dispatch the accessibility events if the
event path is empty.

Also added a check to not dispatch events if the runtime flag is not enabled.

Test: accessibility/mac/AOM-events-webarea-crash.html

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::shouldDispatchAccessibilityEvent const):
(WebCore::AccessibilityObject::dispatchAccessibilityEvent const):
* accessibility/AccessibilityObject.h:

LayoutTests:

* accessibility/mac/AOM-events-webarea-crash-expected.txt: Added.
* accessibility/mac/AOM-events-webarea-crash.html: Added.

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

2 years agoSafari not handling undefined global variables with same name as element Id correctly.
cdumez@apple.com [Fri, 9 Mar 2018 07:12:15 +0000 (07:12 +0000)]
Safari not handling undefined global variables with same name as element Id correctly.
https://bugs.webkit.org/show_bug.cgi?id=183087
<rdar://problem/37927596>

Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

global variables (var foo;) should not be hidden by:
- Named properties
- Properties on the prototype chain

Therefore, we now have JSGlobalObject::addVar() call JSGlobalObject::addGlobalVar()
if !hasOwnProperty() instead of !hasProperty.

This aligns our behavior with Chrome and Firefox.

* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::addVar):

LayoutTests:

* fast/dom/Window/es52-globals-expected.txt:
Rebaseline test now that we are passing more checks. This covers the code change.

* fast/forms/listbox-visible-size.html:
* js/dom/var-declarations-shadowing-expected.txt:
* js/dom/var-declarations-shadowing.html:
Tweak existing tests due to behavior change. I have checked that these tests
were failing in other browsers as well.

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

2 years agoUnreviewed. Suppress GCC warnings in SystemPreviewController.cpp by
zandobersek@gmail.com [Fri, 9 Mar 2018 07:00:37 +0000 (07:00 +0000)]
Unreviewed. Suppress GCC warnings in SystemPreviewController.cpp by
using the cross-platform #include directives for header inclusion,
instead of #import.

* UIProcess/SystemPreviewController.cpp:

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

2 years agofast/events/before-unload-returnValue.html times out with async policy delegates
cdumez@apple.com [Fri, 9 Mar 2018 05:56:53 +0000 (05:56 +0000)]
fast/events/before-unload-returnValue.html times out with async policy delegates
https://bugs.webkit.org/show_bug.cgi?id=183472

Reviewed by Ryosuke Niwa.

Delay setting the beforeunload handler on the iframe until after the initial load
(of resources/onclick.html). With asynchronous policy delegates, the beforeunload
handler was set too early, during the async policy decision for navigating to
"resources/onclick.html". As a result, the beforeunload handler would get called
for the load to "resources/onclick.html", after receiving the navigation policy
decision, which the test does not expect. The test only expects the beforeunload
handler to be called for later navigations to "resources/does-not-exist.html".

* fast/events/before-unload-returnValue-async-delegates-expected.txt: Copied from LayoutTests/fast/events/before-unload-returnValue-expected.txt.
* fast/events/before-unload-returnValue-async-delegates.html: Copied from LayoutTests/fast/events/before-unload-returnValue.html.
* fast/events/before-unload-returnValue-expected.txt:
* fast/events/before-unload-returnValue.html:

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

2 years agoAllow WebViews to disable system appearance
megan_gardner@apple.com [Fri, 9 Mar 2018 04:55:22 +0000 (04:55 +0000)]
Allow WebViews to disable system appearance
https://bugs.webkit.org/show_bug.cgi?id=183418
<rdar://problem/36975642>

Reviewed by Tim Horton.
Source/WebCore:

Not currently testable, tests will be added in a later patch.

Allow webviews to choose whether or not to follow the default system appearance.

* css/StyleColor.cpp:
(WebCore::StyleColor::colorFromKeyword):
* css/StyleColor.h:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::colorFromPrimitiveValue const):
* css/parser/CSSParser.cpp:
(WebCore::CSSParser::parseSystemColor):
* css/parser/CSSParser.h:
* css/parser/CSSParserMode.h:
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawFocusIfNeededInternal):
* html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::setStrokeColor):
(WebCore::CanvasRenderingContext2DBase::setFillColor):
* html/canvas/CanvasStyle.cpp:
(WebCore::parseColor):
(WebCore::parseColorOrCurrentColor):
(WebCore::CanvasStyle::createFromString):
(WebCore::CanvasStyle::createFromStringWithOverrideAlpha):
* html/canvas/CanvasStyle.h:
* page/Page.h:
(WebCore::Page::useSystemAppearance const):
(WebCore::Page::setUseSystemAppearance):
* platform/Theme.cpp:
(WebCore::Theme::paint):
* platform/Theme.h:
* platform/mac/LocalDefaultSystemAppearance.h:
* platform/mac/LocalDefaultSystemAppearance.mm:
(WebCore::LocalDefaultSystemAppearance::LocalDefaultSystemAppearance):
(WebCore::LocalDefaultSystemAppearance::~LocalDefaultSystemAppearance):
* platform/mac/ThemeMac.h:
* platform/mac/ThemeMac.mm:
(-[WebCoreThemeView initWithUseSystemAppearance:]):
(WebCore::paintToggleButton):
(WebCore::paintButton):
(WebCore::ThemeMac::ensuredView):
(WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):
(WebCore::ThemeMac::paint):
(-[WebCoreThemeView init]): Deleted.
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::systemColor const):
(WebCore::RenderTheme::focusRingColor):
* rendering/RenderTheme.h:
(WebCore::RenderTheme::platformFocusRingColor const):
* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::systemColor const):
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::documentViewFor const):
(WebCore::RenderThemeMac::platformFocusRingColor const):
(WebCore::RenderThemeMac::systemColor const):
(WebCore::RenderThemeMac::paintCellAndSetFocusedElementNeedsRepaintIfNecessary):
(WebCore::RenderThemeMac::paintSliderThumb):
* rendering/TextPaintStyle.cpp:
(WebCore::computeTextPaintStyle):

Source/WebKit:

Allow webviews to choose whether or not to follow the default system appearance.

* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _useSystemAppearance]):
(-[WKWebView _setUseSystemAppearance:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::setUseSystemAppearance):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::useSystemAppearance const):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setUseSystemAppearance):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

Source/WebKitLegacy/mac:

Allow webviews to choose whether or not to follow the default system appearance.

* WebView/WebView.mm:
(-[WebView _setUseSystemAppearance:]):
(-[WebView _useSystemAppearance]):
* WebView/WebViewPrivate.h:

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

2 years agoUnreviewed, rolling out r229354 and r229364.
ryanhaddad@apple.com [Fri, 9 Mar 2018 02:16:27 +0000 (02:16 +0000)]
Unreviewed, rolling out r229354 and r229364.
https://bugs.webkit.org/show_bug.cgi?id=183492

Breaks internal builds (Requested by ryanhaddad on #webkit).

Reverted changesets:

"Prepare LLInt code to support pointer profiling."
https://bugs.webkit.org/show_bug.cgi?id=183387
https://trac.webkit.org/changeset/229354

"Add support for ARM64E."
https://bugs.webkit.org/show_bug.cgi?id=183398
https://trac.webkit.org/changeset/229364

Patch by Commit Queue <commit-queue@webkit.org> on 2018-03-08

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

2 years agotestmasm crashes in testBranchTruncateDoubleToInt32() on ARM64
msaboff@apple.com [Fri, 9 Mar 2018 01:46:23 +0000 (01:46 +0000)]
testmasm crashes in testBranchTruncateDoubleToInt32() on ARM64
https://bugs.webkit.org/show_bug.cgi?id=183488

Reviewed by Mark Lam.

Using stackAlignmentBytes() will keep the stack properly aligned.

* assembler/testmasm.cpp:
(JSC::testBranchTruncateDoubleToInt32):

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

2 years agoUnreviewed fix. Meant to land the prior patch with Options::zeroStackFrame set to...
msaboff@apple.com [Fri, 9 Mar 2018 01:41:41 +0000 (01:41 +0000)]
Unreviewed fix.  Meant to land the prior patch with Options::zeroStackFrame set to false.

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

2 years agoEmit code to zero the stack frame on function entry
msaboff@apple.com [Fri, 9 Mar 2018 01:38:57 +0000 (01:38 +0000)]
Emit code to zero the stack frame on function entry
Nhttps://bugs.webkit.org/show_bug.cgi?id=183391

Reviewed by Mark Lam.

Added code to zero incoming stack frame behind a new JSC option, zeroStackFrame.
The default setting of the option is off.

Did some minor refactoring of the YarrJIT stack alignment code.

* b3/air/AirCode.cpp:
(JSC::B3::Air::defaultPrologueGenerator):
* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::compileFunction):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileCurrentBlock):
* dfg/DFGThunks.cpp:
(JSC::DFG::osrEntryThunkGenerator):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::lower):
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::clearStackFrame):
* jit/JIT.cpp:
(JSC::JIT::compileWithoutLinking):
* llint/LowLevelInterpreter.asm:
* runtime/Options.h:
* yarr/YarrJIT.cpp:
(JSC::Yarr::YarrGenerator::ialignCallFrameSizeInBytesnitCallFrame):
(JSC::Yarr::YarrGenerator::initCallFrame):
(JSC::Yarr::YarrGenerator::removeCallFrame):

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

2 years agoWeb Inspector: Sources: add SourcesTabContentView and SourceSidebarPanel classes
nvasilyev@apple.com [Fri, 9 Mar 2018 01:32:51 +0000 (01:32 +0000)]
Web Inspector: Sources: add SourcesTabContentView and SourceSidebarPanel classes
https://bugs.webkit.org/show_bug.cgi?id=183316
<rdar://problem/38107639>

Reviewed by Matt Baker.

Add Sources tab and sidebar panel, which are copies of the corresponding Resources classes.
The Sources tab is shown when it's enabled in the experimental settings. This patch doesn't
remove existing Resources and Debugger tabs.

* UserInterface/Base/Main.js:
(WI.contentLoaded):
* UserInterface/Main.html:
* UserInterface/Views/SourcesSidebarPanel.css: Added.
(.sidebar > .panel.navigation.sources > .content):
(.sidebar > .panel.navigation.sources > .navigation-bar):
* UserInterface/Views/SourcesSidebarPanel.js: Added.
(WI.SourcesSidebarPanel):
(WI.SourcesSidebarPanel.shouldPlaceResourcesAtTopLevel):
(WI.SourcesSidebarPanel.prototype.get minimumWidth):
(WI.SourcesSidebarPanel.prototype.closed):
(WI.SourcesSidebarPanel.prototype.showDefaultContentView):
(WI.SourcesSidebarPanel.prototype.treeElementForRepresentedObject.isAncestor):
(WI.SourcesSidebarPanel.prototype.treeElementForRepresentedObject.getParent):
(WI.SourcesSidebarPanel.prototype.treeElementForRepresentedObject):
(WI.SourcesSidebarPanel.prototype.initialLayout):
(WI.SourcesSidebarPanel.prototype.hasCustomFilters):
(WI.SourcesSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
(WI.SourcesSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
(WI.SourcesSidebarPanel.prototype._mainResourceDidChange):
(WI.SourcesSidebarPanel.prototype._mainFrameDidChange):
(WI.SourcesSidebarPanel.prototype._mainFrameMainResourceDidChange.delayedWork):
(WI.SourcesSidebarPanel.prototype._mainFrameMainResourceDidChange):
(WI.SourcesSidebarPanel.prototype._scriptWasAdded):
(WI.SourcesSidebarPanel.prototype._addScript):
(WI.SourcesSidebarPanel.prototype._scriptWasRemoved):
(WI.SourcesSidebarPanel.prototype._scriptsCleared):
(WI.SourcesSidebarPanel.prototype._styleSheetAdded):
(WI.SourcesSidebarPanel.prototype._addTargetWithMainResource):
(WI.SourcesSidebarPanel.prototype._targetRemoved):
(WI.SourcesSidebarPanel.prototype._treeSelectionDidChange):
(WI.SourcesSidebarPanel.prototype._compareTreeElements):
(WI.SourcesSidebarPanel.prototype._extraDomainsActivated):
(WI.SourcesSidebarPanel.prototype._scopeBarSelectionDidChange):
* UserInterface/Views/SourcesTabContentView.js: Added.
(WI.SourcesTabContentView):
(WI.SourcesTabContentView.tabInfo):
(WI.SourcesTabContentView.isTabAllowed):
(WI.SourcesTabContentView.prototype.get type):
(WI.SourcesTabContentView.prototype.get supportsSplitContentBrowser):
(WI.SourcesTabContentView.prototype.canShowRepresentedObject):

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

2 years agoUnreviewed, speculative attempt to fix CMake build after r229426
mcatanzaro@igalia.com [Fri, 9 Mar 2018 00:59:58 +0000 (00:59 +0000)]
Unreviewed, speculative attempt to fix CMake build after r229426
https://bugs.webkit.org/show_bug.cgi?id=183382
<rdar://problem/38191450>

* CMakeLists.txt:

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

2 years agoWebKitTestRunner: Don't use accessibility controller when !HAVE(ACCESSIBILITY)
commit-queue@webkit.org [Thu, 8 Mar 2018 23:27:45 +0000 (23:27 +0000)]
WebKitTestRunner: Don't use accessibility controller when !HAVE(ACCESSIBILITY)
https://bugs.webkit.org/show_bug.cgi?id=183475

Patch by Stephan Szabo <stephan.szabo@sony.com> on 2018-03-08
Reviewed by Youenn Fablet.

* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::done):
* WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::didClearWindowForFrame):

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

2 years agoEnsure default appearance for selection form control
megan_gardner@apple.com [Thu, 8 Mar 2018 23:20:30 +0000 (23:20 +0000)]
Ensure default appearance for selection form control
https://bugs.webkit.org/show_bug.cgi?id=183482
<rdar://problem/38274894>

Reviewed by Tim Horton.

The appearance for selection form controls was not set to default.

Not currently testable, will add tests in a later patch.

* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::platformInactiveListBoxSelectionBackgroundColor const):

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

2 years ago[Extra zoom mode] Support resigning first responder status when focusing a form control
wenson_hsieh@apple.com [Thu, 8 Mar 2018 23:07:30 +0000 (23:07 +0000)]
[Extra zoom mode] Support resigning first responder status when focusing a form control
https://bugs.webkit.org/show_bug.cgi?id=183477
<rdar://problem/38225994>

Reviewed by Tim Horton.

Currently, when presenting an input view controller in extra zoom mode, if the web view loses first responder
status, we will blur the focused element, which dismisses all focused form control UI. For certain types of form
controls, this prevents the user from using key pieces of functionality.

To address this, disconnect the notion of first responder status from DOM element focus while the form control
overlay is shown. Later, when the active input session ends, if the web content view was first responder before
upon focusing the element, restore first responder status on the web view. This extra tweak is needed to ensure
that certain UI affordances which require first responder status on the web view continue to work after
interacting with a form control that changes the first responder.

* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView presentFocusedFormControlViewController:]):
(-[WKContentView dismissFocusedFormControlViewController:]):

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

2 years agobmalloc mutex should be adaptive
fpizlo@apple.com [Thu, 8 Mar 2018 22:58:23 +0000 (22:58 +0000)]
bmalloc mutex should be adaptive
https://bugs.webkit.org/show_bug.cgi?id=177839

Reviewed by Michael Saboff.

Source/bmalloc:

This pulls the WordLock algorithm into bmalloc, mostly by copy-pasting the code. We need to
copy paste because sometimes we build WTF without bmalloc, so WTF cannot rely on bmalloc for
anything other than malloc.

Reland after failing to reproduce the WasmBench crash that caused it to get rolled out. Maybe that fixed
itself somehow?

* bmalloc/Algorithm.h:
(bmalloc::compareExchangeWeak):
(bmalloc::compareExchangeStrong):
* bmalloc/PerThread.h:
* bmalloc/StaticMutex.cpp:
(bmalloc::StaticMutex::lockSlow):
(bmalloc::StaticMutex::unlockSlow):
(bmalloc::StaticMutex::lockSlowCase): Deleted.
* bmalloc/StaticMutex.h:
(bmalloc::StaticMutex::try_lock):
(bmalloc::StaticMutex::isLocked const):
(bmalloc::StaticMutex::init):
(bmalloc::StaticMutex::tryLock):
(bmalloc::StaticMutex::lock):
(bmalloc::StaticMutex::unlock):
(bmalloc::sleep): Deleted.
(bmalloc::waitUntilFalse): Deleted.

Source/WTF:

Add some comments that I thought of while copy-pasting this code.

Reland after failing to reproduce the WasmBench crash that caused it to get rolled out. Maybe that fixed
itself somehow?

* wtf/LockAlgorithmInlines.h:
* wtf/WordLock.cpp:
(WTF::WordLock::unlockSlow):

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

2 years ago[Win] Compile error: pal/ExportMacros.h not found.
pvollan@apple.com [Thu, 8 Mar 2018 22:15:11 +0000 (22:15 +0000)]
[Win] Compile error: pal/ExportMacros.h not found.
https://bugs.webkit.org/show_bug.cgi?id=183467

Reviewed by Brent Fulgham.

PAL header files are no longer located under the WebCore folder in forwarding headers. An additional
build step is required to copy the PAL header files to the internal include folder.

No new tests, no change in functionality.

* PlatformWin.cmake:
* WebCore.vcxproj/WebCore.proj:

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

2 years agoUnreviewed, another attempt at fixing the Windows build.
keith_miller@apple.com [Thu, 8 Mar 2018 21:44:52 +0000 (21:44 +0000)]
Unreviewed, another attempt at fixing the Windows build.
I guess the pragma must be outside the function...

* jit/CCallHelpers.h:
(JSC::CCallHelpers::clampArrayToSize):

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

2 years agoResource Load Statistics: Revert defaults read of zero values
wilander@apple.com [Thu, 8 Mar 2018 21:35:38 +0000 (21:35 +0000)]
Resource Load Statistics: Revert defaults read of zero values
https://bugs.webkit.org/show_bug.cgi?id=183476

Unreviewed revert of three small changes landed in r229427.

* UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm:
(WebKit::WebResourceLoadStatisticsStore::registerUserDefaultsIfNeeded):
    Reverted back to strict check of greater than zero for defaults reads.

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

2 years agoEnsure system appearance is default for legacy webkit
megan_gardner@apple.com [Thu, 8 Mar 2018 21:30:27 +0000 (21:30 +0000)]
Ensure system appearance is default for legacy webkit
https://bugs.webkit.org/show_bug.cgi?id=183473
<rdar://problem/38210306>

Reviewed by Tim Horton.

Need to set the appearance on the window for legacy webkit due to differences in drawing.

Not currently testable, will add tests in a later patch.

* platform/mac/ThemeMac.mm:
(WebCore::paintButton):

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

2 years agoDon't have SafariServices in minimal simulator build
timothy_horton@apple.com [Thu, 8 Mar 2018 21:25:10 +0000 (21:25 +0000)]
Don't have SafariServices in minimal simulator build
https://bugs.webkit.org/show_bug.cgi?id=183436
<rdar://problem/38254778>

Reviewed by Dan Bernstein.

* config.h:

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

2 years agoAdd a way to not build libwebrtc when building WebKit via Makefiles
timothy_horton@apple.com [Thu, 8 Mar 2018 21:19:36 +0000 (21:19 +0000)]
Add a way to not build libwebrtc when building WebKit via Makefiles
https://bugs.webkit.org/show_bug.cgi?id=183437
<rdar://problem/38254840>

Reviewed by Dan Bernstein.

* Source/Makefile:

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

2 years agoResource Load Statistics: Make debug mode always partition prevalent resources
wilander@apple.com [Thu, 8 Mar 2018 21:11:50 +0000 (21:11 +0000)]
Resource Load Statistics: Make debug mode always partition prevalent resources
https://bugs.webkit.org/show_bug.cgi?id=183468
<rdar://problem/38269437>

Reviewed by Brent Fulgham.

After some testing we decided that a 30 second timeout in ITP debug mode just makes
it confusing. We should instead always partition prevalent resources in debug mode
to make it easy to understand. The partitioned state is what developers want to test
anyway.

* UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm:
(WebKit::WebResourceLoadStatisticsStore::registerUserDefaultsIfNeeded):
    Minor change to include 0 as valid setting.
* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::setResourceLoadStatisticsDebugMode):
    Now just stores the setting of debug mode instead of changing the timeout.
(WebKit::WebResourceLoadStatisticsStore::logUserInteraction):
    Now does not disable partitioning under debug mode.
(WebKit::WebResourceLoadStatisticsStore::shouldPartitionCookies const):
    Now returns true for prevalent resources with user interaction under debug mode.
(WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioning):
    Removed duplicate debug logging statement.
* UIProcess/WebResourceLoadStatisticsStore.h:
    Added member m_debugModeEnabled.

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

2 years agoRemove WebCookieManager and messaging from WebContent process.
bfulgham@apple.com [Thu, 8 Mar 2018 20:43:34 +0000 (20:43 +0000)]
Remove WebCookieManager and messaging from WebContent process.
https://bugs.webkit.org/show_bug.cgi?id=183382
<rdar://problem/38191450>

Reviewed by Alex Christensen.

Networking access was fully removed from the WebContent process in Bug 183192 (and related bugs). The
UIProcess no longer needs to ask the WebContent process about networking-related things, and shouldn't
waste everyone's time doing so.

This bug removes some left-over WebCookieManager API stuff, and is a first step in purging the
WebContent Process from accessing cookie data.

* NetworkProcess/Cookies: Copied from WebProcess/Cookies.
* NetworkProcess/Cookies/WebCookieManager.h:
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/Cookies: Removed.
* WebProcess/Cookies/WebCookieManager.cpp: Removed.
* WebProcess/Cookies/WebCookieManager.h: Removed.
* WebProcess/Cookies/WebCookieManager.messages.in: Removed.
* WebProcess/Cookies/curl: Removed.
* WebProcess/Cookies/curl/WebCookieManagerCurl.cpp: Removed.
* WebProcess/Cookies/mac: Removed.
* WebProcess/Cookies/mac/WebCookieManagerMac.mm: Removed.
* WebProcess/Cookies/soup: Removed.
* WebProcess/Cookies/soup/WebCookieManagerSoup.cpp: Removed.
* WebProcess/InjectedBundle/InjectedBundle.cpp: Remove 'WebCookieManager.h" header.
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: Ditto.
* WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm: Ditto.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess): Remove call to add WebCookieManager as a
WebProcessSupplement.
* CMakeLists.txt: Revised paths.
* DerivedSources.make: Ditto.
* PlatformMac.cmake: Ditto.
* PlatformWin.cmake: Ditto.
* SourcesGTK.txt: Ditto.
* SourcesWPE.txt: Ditto.

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

2 years agofast/html/marquee-reparent-check.html is flaky with async delegates
cdumez@apple.com [Thu, 8 Mar 2018 20:38:36 +0000 (20:38 +0000)]
fast/html/marquee-reparent-check.html is flaky with async delegates
https://bugs.webkit.org/show_bug.cgi?id=183425

Reviewed by Youenn Fablet.

The test was missing the "TEST COMPLETE" line at the end of its output.
When enabling async delegates, the "TEST COMPLETE" line would sometimes
show. Move the test away from js-test.js and to js-test-pre.js / js-test-post.js
so that the "TEST COMPLETE" line gets printed out consistently.

* fast/html/marquee-reparent-check-expected.txt:
* fast/html/marquee-reparent-check.html:

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

2 years agoUnreviewed, one last try at fixing the windows build before rollout.
keith_miller@apple.com [Thu, 8 Mar 2018 20:19:47 +0000 (20:19 +0000)]
Unreviewed, one last try at fixing the windows build before rollout.

* jit/CCallHelpers.h:
(JSC::CCallHelpers::clampArrayToSize):

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

2 years agoUnreviewed, skip imported/w3c/web-platform-tests/cors/remote-origin.htm
cdumez@apple.com [Thu, 8 Mar 2018 19:55:22 +0000 (19:55 +0000)]
Unreviewed, skip imported/w3c/web-platform-tests/cors/remote-origin.htm

This test is timing out via testharness.js, there is no point in running it and
it slows down running layout tests.

* TestExpectations:

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

2 years agoDisable JIT on Cocoa 32-bit ARM.
keith_miller@apple.com [Thu, 8 Mar 2018 19:34:43 +0000 (19:34 +0000)]
Disable JIT on Cocoa 32-bit ARM.
https://bugs.webkit.org/show_bug.cgi?id=183426

Reviewed by Michael Saboff.

* wtf/Platform.h:

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

2 years agolibwebrtc update broke internal builds
youenn@apple.com [Thu, 8 Mar 2018 19:32:35 +0000 (19:32 +0000)]
libwebrtc update broke internal builds
https://bugs.webkit.org/show_bug.cgi?id=183454

Reviewed by Eric Carlson.

Source/WebCore:

No change of behavior.
Fixed header search paths.
Removed deleted file from XCode project as an additional clean-up.

* Configurations/WebCore.xcconfig:
* WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

* Configurations/BaseTarget.xcconfig:

Source/WebKitLegacy/mac:

* Configurations/WebKitLegacy.xcconfig:

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

2 years agoUse asm instead of __asm__ in WTFBreakpointTrap so MSVC builds
keith_miller@apple.com [Thu, 8 Mar 2018 19:25:17 +0000 (19:25 +0000)]
Use asm instead of __asm__ in WTFBreakpointTrap so MSVC builds
https://bugs.webkit.org/show_bug.cgi?id=183465

Reviewed by Michael Saboff.

* wtf/Assertions.h:

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

2 years agoNSAnimation is not working in the WebContent process when WindowServer access is...
pvollan@apple.com [Thu, 8 Mar 2018 19:12:45 +0000 (19:12 +0000)]
NSAnimation is not working in the WebContent process when WindowServer access is blocked.
https://bugs.webkit.org/show_bug.cgi?id=183291

Reviewed by Dean Jackson.

The animation can be implemented by using an NSTimer instead. Use the existing Bezier timing
function to create a smooth animation.

No new tests. This code is used to fade scrollbars in and out by animating the alpha value.
This scrollbar setting is not the default in macOS, which makes it non trivial to create
layout tests for this.

* platform/mac/ScrollAnimatorMac.mm:
(-[WebScrollbarPartAnimation initWithScrollbar:featureToAnimate:animateFrom:animateTo:duration:]):
(-[WebScrollbarPartAnimation startAnimation]):
(-[WebScrollbarPartAnimation setCurrentProgress:setCurrentProgress:]):
(-[WebScrollbarPartAnimation invalidate]):
(-[WebScrollbarPartAnimation setDuration:]):
(-[WebScrollbarPartAnimation stopAnimation]):
(-[WebScrollbarPartAnimation setCurrentProgress:]): Deleted.

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

2 years agoPluginInfoStore::isSupportedPlugin should check for empty mime type
youenn@apple.com [Thu, 8 Mar 2018 19:06:22 +0000 (19:06 +0000)]
PluginInfoStore::isSupportedPlugin should check for empty mime type
https://bugs.webkit.org/show_bug.cgi?id=183457
<rdar://problem/38159575>

Reviewed by Chris Dumez.

* UIProcess/Plugins/PluginInfoStore.cpp:
(WebKit::PluginInfoStore::isSupportedPlugin):

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

2 years agoTemplatize SVGAnimatedType
commit-queue@webkit.org [Thu, 8 Mar 2018 18:47:45 +0000 (18:47 +0000)]
Templatize SVGAnimatedType
https://bugs.webkit.org/show_bug.cgi?id=183017

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2018-03-08
Reviewed by Dean Jackson.

This is a work toward https://bugs.webkit.org/show_bug.cgi?id=168586. The
goal to have SVGAnimatedType be type independent. The appropriate method
of this template will be implicitly instantiated based to the type of the
animated attribute(s).

* Sources.txt: Delete SVGAnimatedType.cpp since its function became template
functions or short enough to be inline functions.
* WebCore.xcodeproj/project.pbxproj:
* svg/SVGAnimatedAngle.cpp:
(WebCore::SVGAnimatedAngleAnimator::constructFromString):
(WebCore::SVGAnimatedAngleAnimator::startAnimValAnimation):
(WebCore::SVGAnimatedAngleAnimator::resetAnimValToBaseVal):
(WebCore::SVGAnimatedAngleAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedAngleAnimator::calculateAnimatedValue):
Use the template functions SVGAnimatedType::create<>() and SVGAnimatedType::as<>().

* svg/SVGAnimatedBoolean.cpp:
(WebCore::SVGAnimatedBooleanAnimator::constructFromString):
(WebCore::SVGAnimatedBooleanAnimator::startAnimValAnimation):
(WebCore::SVGAnimatedBooleanAnimator::resetAnimValToBaseVal):
(WebCore::SVGAnimatedBooleanAnimator::calculateAnimatedValue):
Ditto.

* svg/SVGAnimatedColor.cpp:
(WebCore::SVGAnimatedColorAnimator::constructFromString):
(WebCore::SVGAnimatedColorAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedColorAnimator::calculateAnimatedValue):
Ditto.

* svg/SVGAnimatedEnumeration.cpp:
(WebCore::SVGAnimatedEnumerationAnimator::constructFromString):
(WebCore::SVGAnimatedEnumerationAnimator::startAnimValAnimation):
(WebCore::SVGAnimatedEnumerationAnimator::resetAnimValToBaseVal):
(WebCore::SVGAnimatedEnumerationAnimator::calculateAnimatedValue):
Ditto.

* svg/SVGAnimatedInteger.cpp:
(WebCore::SVGAnimatedIntegerAnimator::constructFromString):
(WebCore::SVGAnimatedIntegerAnimator::startAnimValAnimation):
(WebCore::SVGAnimatedIntegerAnimator::resetAnimValToBaseVal):
(WebCore::SVGAnimatedIntegerAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedIntegerAnimator::calculateAnimatedValue):
Ditto.

* svg/SVGAnimatedIntegerOptionalInteger.cpp:
(WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::constructFromString):
(WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::startAnimValAnimation):
(WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::resetAnimValToBaseVal):
(WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateAnimatedValue):
Ditto.

* svg/SVGAnimatedLength.cpp:
(WebCore::SVGAnimatedLengthAnimator::constructFromString):
(WebCore::SVGAnimatedLengthAnimator::startAnimValAnimation):
(WebCore::SVGAnimatedLengthAnimator::resetAnimValToBaseVal):
(WebCore::SVGAnimatedLengthAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedLengthAnimator::calculateAnimatedValue):
Ditto.

* svg/SVGAnimatedLengthList.cpp:
(WebCore::SVGAnimatedLengthListAnimator::constructFromString):
(WebCore::SVGAnimatedLengthListAnimator::startAnimValAnimation):
(WebCore::SVGAnimatedLengthListAnimator::resetAnimValToBaseVal):
(WebCore::SVGAnimatedLengthListAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
Ditto.

* svg/SVGAnimatedNumber.cpp:
(WebCore::SVGAnimatedNumberAnimator::constructFromString):
(WebCore::SVGAnimatedNumberAnimator::startAnimValAnimation):
(WebCore::SVGAnimatedNumberAnimator::resetAnimValToBaseVal):
(WebCore::SVGAnimatedNumberAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedNumberAnimator::calculateAnimatedValue):
Ditto.

* svg/SVGAnimatedNumberList.cpp:
(WebCore::SVGAnimatedNumberListAnimator::constructFromString):
(WebCore::SVGAnimatedNumberListAnimator::startAnimValAnimation):
(WebCore::SVGAnimatedNumberListAnimator::resetAnimValToBaseVal):
(WebCore::SVGAnimatedNumberListAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedNumberListAnimator::calculateAnimatedValue):
Ditto.

* svg/SVGAnimatedNumberOptionalNumber.cpp:
(WebCore::SVGAnimatedNumberOptionalNumberAnimator::constructFromString):
(WebCore::SVGAnimatedNumberOptionalNumberAnimator::startAnimValAnimation):
(WebCore::SVGAnimatedNumberOptionalNumberAnimator::resetAnimValToBaseVal):
(WebCore::SVGAnimatedNumberOptionalNumberAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedNumberOptionalNumberAnimator::calculateAnimatedValue):
Ditto.

* svg/SVGAnimatedPath.cpp:
(WebCore::SVGAnimatedPathAnimator::constructFromString):
(WebCore::SVGAnimatedPathAnimator::startAnimValAnimation):
(WebCore::SVGAnimatedPathAnimator::resetAnimValToBaseVal):
(WebCore::SVGAnimatedPathAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedPathAnimator::calculateAnimatedValue):
Ditto.

* svg/SVGAnimatedPointList.cpp:
(WebCore::SVGAnimatedPointListAnimator::constructFromString):
(WebCore::SVGAnimatedPointListAnimator::startAnimValAnimation):
(WebCore::SVGAnimatedPointListAnimator::resetAnimValToBaseVal):
(WebCore::SVGAnimatedPointListAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedPointListAnimator::calculateAnimatedValue):
Ditto.

* svg/SVGAnimatedPreserveAspectRatio.cpp:
(WebCore::SVGAnimatedPreserveAspectRatioAnimator::constructFromString):
(WebCore::SVGAnimatedPreserveAspectRatioAnimator::startAnimValAnimation):
(WebCore::SVGAnimatedPreserveAspectRatioAnimator::resetAnimValToBaseVal):
(WebCore::SVGAnimatedPreserveAspectRatioAnimator::calculateAnimatedValue):
Ditto.

* svg/SVGAnimatedRect.cpp:
(WebCore::SVGAnimatedRectAnimator::constructFromString):
(WebCore::SVGAnimatedRectAnimator::startAnimValAnimation):
(WebCore::SVGAnimatedRectAnimator::resetAnimValToBaseVal):
(WebCore::SVGAnimatedRectAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedRectAnimator::calculateAnimatedValue):
Ditto.

* svg/SVGAnimatedString.cpp:
(WebCore::SVGAnimatedStringAnimator::constructFromString):
(WebCore::SVGAnimatedStringAnimator::startAnimValAnimation):
(WebCore::SVGAnimatedStringAnimator::resetAnimValToBaseVal):
(WebCore::SVGAnimatedStringAnimator::calculateAnimatedValue):
Ditto.

* svg/SVGAnimatedTransformList.cpp:
(WebCore::SVGAnimatedTransformListAnimator::constructFromString):
(WebCore::SVGAnimatedTransformListAnimator::startAnimValAnimation):
(WebCore::SVGAnimatedTransformListAnimator::resetAnimValToBaseVal):
(WebCore::SVGAnimatedTransformListAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedTransformListAnimator::calculateAnimatedValue):
(WebCore::SVGAnimatedTransformListAnimator::calculateDistance):
Ditto.

* svg/SVGAnimatedType.cpp: Removed.
* svg/SVGAnimatedType.h:
(WebCore::SVGAnimatedType::create):
(WebCore::SVGAnimatedType::SVGAnimatedType):
(WebCore::SVGAnimatedType::~SVGAnimatedType):
(WebCore::SVGAnimatedType::as const):
(WebCore::SVGAnimatedType::as):
(WebCore::SVGAnimatedType::type const):
(WebCore::SVGAnimatedType::valueAsString const):
(WebCore::SVGAnimatedType::setValueAsString):
(WebCore::SVGAnimatedType::supportsAnimVal):
(WebCore::SVGAnimatedType::angleAndEnumeration const): Deleted.
(WebCore::SVGAnimatedType::boolean const): Deleted.
(WebCore::SVGAnimatedType::color const): Deleted.
(WebCore::SVGAnimatedType::enumeration const): Deleted.
(WebCore::SVGAnimatedType::integer const): Deleted.
(WebCore::SVGAnimatedType::integerOptionalInteger const): Deleted.
(WebCore::SVGAnimatedType::length const): Deleted.
(WebCore::SVGAnimatedType::lengthList const): Deleted.
(WebCore::SVGAnimatedType::number const): Deleted.
(WebCore::SVGAnimatedType::numberList const): Deleted.
(WebCore::SVGAnimatedType::numberOptionalNumber const): Deleted.
(WebCore::SVGAnimatedType::path const): Deleted.
(WebCore::SVGAnimatedType::pointList const): Deleted.
(WebCore::SVGAnimatedType::preserveAspectRatio const): Deleted.
(WebCore::SVGAnimatedType::rect const): Deleted.
(WebCore::SVGAnimatedType::string const): Deleted.
(WebCore::SVGAnimatedType::transformList const): Deleted.
(WebCore::SVGAnimatedType::angleAndEnumeration): Deleted.
(WebCore::SVGAnimatedType::boolean): Deleted.
(WebCore::SVGAnimatedType::color): Deleted.
(WebCore::SVGAnimatedType::enumeration): Deleted.
(WebCore::SVGAnimatedType::integer): Deleted.
(WebCore::SVGAnimatedType::integerOptionalInteger): Deleted.
(WebCore::SVGAnimatedType::length): Deleted.
(WebCore::SVGAnimatedType::lengthList): Deleted.
(WebCore::SVGAnimatedType::number): Deleted.
(WebCore::SVGAnimatedType::numberList): Deleted.
(WebCore::SVGAnimatedType::numberOptionalNumber): Deleted.
(WebCore::SVGAnimatedType::path): Deleted.
(WebCore::SVGAnimatedType::pointList): Deleted.
(WebCore::SVGAnimatedType::preserveAspectRatio): Deleted.
(WebCore::SVGAnimatedType::rect): Deleted.
(WebCore::SVGAnimatedType::string): Deleted.
(WebCore::SVGAnimatedType::transformList): Deleted.
Replace the union by a Variant. Replace all the type specific functions
by the template functions create() and as(). Use WTF::visit to get the
value stored in the variant. Use the SVGPropertyTraits to perform the
required operation.

* svg/SVGAnimatedTypeAnimator.h:
(WebCore::SVGAnimatedTypeAnimator::constructFromBaseValue):
(WebCore::SVGAnimatedTypeAnimator::resetFromBaseValue):
(WebCore::SVGAnimatedTypeAnimator::stopAnimValAnimationForType):
(WebCore::SVGAnimatedTypeAnimator::animValDidChangeForType):
(WebCore::SVGAnimatedTypeAnimator::animValWillChangeForType):
(WebCore::SVGAnimatedTypeAnimator::constructFromBaseValues):
(WebCore::SVGAnimatedTypeAnimator::resetFromBaseValues):
(WebCore::SVGAnimatedTypeAnimator::stopAnimValAnimationForTypes):
(WebCore::SVGAnimatedTypeAnimator::animValDidChangeForTypes):
(WebCore::SVGAnimatedTypeAnimator::animValWillChangeForTypes):
(WebCore::SVGAnimatedTypeAnimator::executeAction):
Rename the parameters and the local variables to match their types. Use
the SVGAnimatedType template functions create() and as().

* svg/SVGLengthValue.h:
(WebCore::SVGPropertyTraits<SVGLengthValue>::parse): This was moved from
SVGAnimatedType::setValueAsString()
(WebCore::SVGPropertyTraits<SVGLengthValue>::toString): This was moved from
SVGAnimatedType::valueAsString().

* svg/SVGMarkerTypes.h: Add placeholders for parse() and toString() so
SVGAnimatedType::valueAsString() and setValueAsString() can compile for
all types.

* svg/SVGNumberListValues.h:
(WebCore::SVGPropertyTraits<SVGNumberListValues>::parse):
* svg/SVGPathByteStream.h:
(WebCore::SVGPropertyTraits<SVGPathByteStream>::parse):
(WebCore::SVGPropertyTraits<SVGPathByteStream>::toString):
* svg/SVGPointListValues.h:
(WebCore::SVGPropertyTraits<SVGPointListValues>::parse):
(WebCore::SVGPropertyTraits<SVGPointListValues>::toString):
* svg/SVGPreserveAspectRatioValue.h:
(WebCore::SVGPropertyTraits<SVGPreserveAspectRatioValue>::fromString):
(WebCore::SVGPropertyTraits<SVGPreserveAspectRatioValue>::parse):
(WebCore::SVGPropertyTraits<SVGPreserveAspectRatioValue>::toString):
Ditto.

* svg/SVGTransformListValues.h:
(WebCore::SVGPropertyTraits<SVGTransformListValues>::parse):
Ditto.

* svg/SVGValue.h: Added. SVGValueVariant is the replacement of the union
SVGAnimatedType::DataUnion.

* svg/properties/SVGPropertyInfo.h:
Add a minimum and maximum AnimatedPropertyType so, SVGAnimatedType::type()
can assert that the index of the variant is in the range of this enum.

* svg/properties/SVGPropertyTraits.h:
(WebCore::SVGPropertyTraits<bool>::parse):
(WebCore::SVGPropertyTraits<unsigned>::parse):
(WebCore::SVGPropertyTraits<int>::parse):
Ditto.

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

2 years ago[JSC][WebCore] Extend jsDynamicCast for WebCore types in WebCore and remove jsDynamic...
utatane.tea@gmail.com [Thu, 8 Mar 2018 18:38:09 +0000 (18:38 +0000)]
[JSC][WebCore] Extend jsDynamicCast for WebCore types in WebCore and remove jsDynamicDowncast
https://bugs.webkit.org/show_bug.cgi?id=183449

Reviewed by Mark Lam.

Source/WebCore:

This patch removes jsDynamicDowncast. Our JSC::jsDynamicCast can have a way to inject a fast
path that is similar to jsDynamicDowncast. WebCore can leverage this functionality to add
a fast path for WebCore's extended JS object types (JSEvent, JSElement, JSNode, and JSDocument).

No behavior change.

* WebCore.xcodeproj/project.pbxproj:
* bindings/js/CommonVM.cpp:
(WebCore::lexicalFrameFromCommonVM):
* bindings/js/JSDOMConvertBufferSource.h:
(WebCore::toPossiblySharedArrayBufferView):
* bindings/js/JSDOMConvertPromise.h:
(WebCore::Converter<IDLPromise<T>>::convert):
* bindings/js/JSDOMExceptionHandling.cpp:
(WebCore::reportException):
(WebCore::retrieveErrorMessage):
* bindings/js/JSDOMIterator.h:
(WebCore::IteratorTraits>::next):
* bindings/js/JSDOMWindowProxy.cpp:
(WebCore::JSDOMWindowProxy::toWrapped):
* bindings/js/JSDOMWrapperCache.h:
* bindings/js/JSDocumentCustom.h:
(JSC::JSCastingHelpers::InheritsTraits<WebCore::JSDocument>::inherits):
(WebCore::jsDocumentCast): Deleted.
* bindings/js/JSDynamicDowncast.h: Removed.
* bindings/js/JSElementCustom.h:
(JSC::JSCastingHelpers::InheritsTraits<WebCore::JSElement>::inherits):
(WebCore::jsElementCast): Deleted.
* bindings/js/JSEventCustom.h:
(JSC::JSCastingHelpers::InheritsTraits<WebCore::JSEvent>::inherits):
(WebCore::jsEventCast): Deleted.
* bindings/js/JSEventTargetCustom.cpp:
(WebCore::jsEventTargetCast):
* bindings/js/JSNodeCustom.h:
(JSC::JSCastingHelpers::InheritsTraits<WebCore::JSNode>::inherits):
(WebCore::jsNodeCast): Deleted.
* bindings/js/JSPluginElementFunctions.cpp:
(WebCore::pluginElementPropertyGetter):
* bindings/js/JSReadableStreamSourceCustom.cpp:
(WebCore::JSReadableStreamSource::start):
* bindings/js/JSWorkerGlobalScopeBase.cpp:
(WebCore::toJSDedicatedWorkerGlobalScope):
(WebCore::toJSWorkerGlobalScope):
(WebCore::toJSServiceWorkerGlobalScope):
* bindings/js/ReadableStream.cpp:
(WebCore::ReadableStream::create):
(WebCore::ReadableStream::isDisturbed):
* bindings/js/ReadableStream.h:
(WebCore::JSReadableStreamWrapperConverter::toWrapped):
* bindings/js/ScriptModuleLoader.cpp:
(WebCore::ScriptModuleLoader::evaluate):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneSerializer::serialize):
* bindings/js/StructuredClone.cpp:
(WebCore::structuredCloneArrayBufferView):
* bindings/scripts/CodeGeneratorJS.pm:
(GetCastingHelperForThisObject):
(GenerateImplementation):
* bindings/scripts/test/JS/JSInterfaceName.cpp:
(WebCore::jsInterfaceNameConstructor):
(WebCore::setJSInterfaceNameConstructor):
(WebCore::JSInterfaceName::toWrapped):
* bindings/scripts/test/JS/JSMapLike.cpp:
(WebCore::IDLAttribute<JSMapLike>::cast):
(WebCore::IDLOperation<JSMapLike>::cast):
(WebCore::jsMapLikeConstructor):
(WebCore::setJSMapLikeConstructor):
(WebCore::JSMapLike::toWrapped):
* bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
(WebCore::IDLAttribute<JSReadOnlyMapLike>::cast):
(WebCore::IDLOperation<JSReadOnlyMapLike>::cast):
(WebCore::jsReadOnlyMapLikeConstructor):
(WebCore::setJSReadOnlyMapLikeConstructor):
(WebCore::JSReadOnlyMapLike::toWrapped):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::IDLAttribute<JSTestActiveDOMObject>::cast):
(WebCore::IDLOperation<JSTestActiveDOMObject>::cast):
(WebCore::jsTestActiveDOMObjectConstructor):
(WebCore::setJSTestActiveDOMObjectConstructor):
(WebCore::JSTestActiveDOMObject::toWrapped):
* bindings/scripts/test/JS/JSTestCEReactions.cpp:
(WebCore::IDLAttribute<JSTestCEReactions>::cast):
(WebCore::IDLOperation<JSTestCEReactions>::cast):
(WebCore::jsTestCEReactionsConstructor):
(WebCore::setJSTestCEReactionsConstructor):
(WebCore::JSTestCEReactions::toWrapped):
* bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
(WebCore::IDLAttribute<JSTestCEReactionsStringifier>::cast):
(WebCore::IDLOperation<JSTestCEReactionsStringifier>::cast):
(WebCore::jsTestCEReactionsStringifierConstructor):
(WebCore::setJSTestCEReactionsStringifierConstructor):
(WebCore::JSTestCEReactionsStringifier::toWrapped):
* bindings/scripts/test/JS/JSTestCallTracer.cpp:
(WebCore::IDLAttribute<JSTestCallTracer>::cast):
(WebCore::IDLOperation<JSTestCallTracer>::cast):
(WebCore::jsTestCallTracerConstructor):
(WebCore::setJSTestCallTracerConstructor):
(WebCore::JSTestCallTracer::toWrapped):
* bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
(WebCore::jsTestClassWithJSBuiltinConstructorConstructor):
(WebCore::setJSTestClassWithJSBuiltinConstructorConstructor):
(WebCore::JSTestClassWithJSBuiltinConstructor::toWrapped):
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
(WebCore::jsTestCustomConstructorWithNoInterfaceObjectConstructor):
(WebCore::setJSTestCustomConstructorWithNoInterfaceObjectConstructor):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::toWrapped):
* bindings/scripts/test/JS/JSTestDOMJIT.cpp:
(WebCore::IDLAttribute<JSTestDOMJIT>::cast):
(WebCore::IDLOperation<JSTestDOMJIT>::cast):
(WebCore::jsTestDOMJITConstructor):
(WebCore::setJSTestDOMJITConstructor):
* bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
(WebCore::IDLAttribute<JSTestEnabledBySetting>::cast):
(WebCore::IDLOperation<JSTestEnabledBySetting>::cast):
(WebCore::jsTestEnabledBySettingConstructor):
(WebCore::setJSTestEnabledBySettingConstructor):
(WebCore::JSTestEnabledBySetting::toWrapped):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::IDLAttribute<JSTestEventConstructor>::cast):
(WebCore::jsTestEventConstructorConstructor):
(WebCore::setJSTestEventConstructorConstructor):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::IDLOperation<JSTestEventTarget>::cast):
(WebCore::jsTestEventTargetConstructor):
(WebCore::setJSTestEventTargetConstructor):
(WebCore::JSTestEventTarget::toWrapped):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::IDLAttribute<JSTestException>::cast):
(WebCore::jsTestExceptionConstructor):
(WebCore::setJSTestExceptionConstructor):
(WebCore::JSTestException::toWrapped):
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::IDLAttribute<JSTestGenerateIsReachable>::cast):
(WebCore::jsTestGenerateIsReachableConstructor):
(WebCore::setJSTestGenerateIsReachableConstructor):
(WebCore::JSTestGenerateIsReachable::toWrapped):
* bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::IDLAttribute<JSTestGlobalObject>::cast):
(WebCore::IDLOperation<JSTestGlobalObject>::cast):
(WebCore::jsTestGlobalObjectConstructor):
(WebCore::setJSTestGlobalObjectConstructor):
(WebCore::JSTestGlobalObject::toWrapped):
* bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:
(WebCore::jsTestIndexedSetterNoIdentifierConstructor):
(WebCore::setJSTestIndexedSetterNoIdentifierConstructor):
(WebCore::JSTestIndexedSetterNoIdentifier::toWrapped):
* bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:
(WebCore::jsTestIndexedSetterThrowingExceptionConstructor):
(WebCore::setJSTestIndexedSetterThrowingExceptionConstructor):
(WebCore::JSTestIndexedSetterThrowingException::toWrapped):
* bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
(WebCore::IDLOperation<JSTestIndexedSetterWithIdentifier>::cast):
(WebCore::jsTestIndexedSetterWithIdentifierConstructor):
(WebCore::setJSTestIndexedSetterWithIdentifierConstructor):
(WebCore::JSTestIndexedSetterWithIdentifier::toWrapped):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::IDLAttribute<JSTestInterface>::cast):
(WebCore::IDLOperation<JSTestInterface>::cast):
(WebCore::jsTestInterfaceConstructor):
(WebCore::setJSTestInterfaceConstructor):
(WebCore::JSTestInterface::toWrapped):
* bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
(WebCore::IDLAttribute<JSTestInterfaceLeadingUnderscore>::cast):
(WebCore::jsTestInterfaceLeadingUnderscoreConstructor):
(WebCore::setJSTestInterfaceLeadingUnderscoreConstructor):
(WebCore::JSTestInterfaceLeadingUnderscore::toWrapped):
* bindings/scripts/test/JS/JSTestIterable.cpp:
(WebCore::IDLOperation<JSTestIterable>::cast):
(WebCore::jsTestIterableConstructor):
(WebCore::setJSTestIterableConstructor):
(WebCore::JSTestIterable::toWrapped):
* bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
(WebCore::IDLAttribute<JSTestJSBuiltinConstructor>::cast):
(WebCore::IDLOperation<JSTestJSBuiltinConstructor>::cast):
(WebCore::jsTestJSBuiltinConstructorConstructor):
(WebCore::setJSTestJSBuiltinConstructorConstructor):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::IDLOperation<JSTestMediaQueryListListener>::cast):
(WebCore::jsTestMediaQueryListListenerConstructor):
(WebCore::setJSTestMediaQueryListListenerConstructor):
(WebCore::JSTestMediaQueryListListener::toWrapped):
* bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
(WebCore::jsTestNamedAndIndexedSetterNoIdentifierConstructor):
(WebCore::setJSTestNamedAndIndexedSetterNoIdentifierConstructor):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::toWrapped):
* bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
(WebCore::jsTestNamedAndIndexedSetterThrowingExceptionConstructor):
(WebCore::setJSTestNamedAndIndexedSetterThrowingExceptionConstructor):
(WebCore::JSTestNamedAndIndexedSetterThrowingException::toWrapped):
* bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
(WebCore::IDLOperation<JSTestNamedAndIndexedSetterWithIdentifier>::cast):
(WebCore::jsTestNamedAndIndexedSetterWithIdentifierConstructor):
(WebCore::setJSTestNamedAndIndexedSetterWithIdentifierConstructor):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::toWrapped):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::jsTestNamedConstructorConstructor):
(WebCore::setJSTestNamedConstructorConstructor):
(WebCore::JSTestNamedConstructor::toWrapped):
* bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:
(WebCore::jsTestNamedDeleterNoIdentifierConstructor):
(WebCore::setJSTestNamedDeleterNoIdentifierConstructor):
(WebCore::JSTestNamedDeleterNoIdentifier::toWrapped):
* bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:
(WebCore::jsTestNamedDeleterThrowingExceptionConstructor):
(WebCore::setJSTestNamedDeleterThrowingExceptionConstructor):
(WebCore::JSTestNamedDeleterThrowingException::toWrapped):
* bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
(WebCore::IDLOperation<JSTestNamedDeleterWithIdentifier>::cast):
(WebCore::jsTestNamedDeleterWithIdentifierConstructor):
(WebCore::setJSTestNamedDeleterWithIdentifierConstructor):
(WebCore::JSTestNamedDeleterWithIdentifier::toWrapped):
* bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:
(WebCore::jsTestNamedDeleterWithIndexedGetterConstructor):
(WebCore::setJSTestNamedDeleterWithIndexedGetterConstructor):
(WebCore::JSTestNamedDeleterWithIndexedGetter::toWrapped):
* bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:
(WebCore::jsTestNamedGetterCallWithConstructor):
(WebCore::setJSTestNamedGetterCallWithConstructor):
(WebCore::JSTestNamedGetterCallWith::toWrapped):
* bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:
(WebCore::jsTestNamedGetterNoIdentifierConstructor):
(WebCore::setJSTestNamedGetterNoIdentifierConstructor):
(WebCore::JSTestNamedGetterNoIdentifier::toWrapped):
* bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
(WebCore::IDLOperation<JSTestNamedGetterWithIdentifier>::cast):
(WebCore::jsTestNamedGetterWithIdentifierConstructor):
(WebCore::setJSTestNamedGetterWithIdentifierConstructor):
(WebCore::JSTestNamedGetterWithIdentifier::toWrapped):
* bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
(WebCore::jsTestNamedSetterNoIdentifierConstructor):
(WebCore::setJSTestNamedSetterNoIdentifierConstructor):
(WebCore::JSTestNamedSetterNoIdentifier::toWrapped):
* bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
(WebCore::jsTestNamedSetterThrowingExceptionConstructor):
(WebCore::setJSTestNamedSetterThrowingExceptionConstructor):
(WebCore::JSTestNamedSetterThrowingException::toWrapped):
* bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
(WebCore::IDLOperation<JSTestNamedSetterWithIdentifier>::cast):
(WebCore::jsTestNamedSetterWithIdentifierConstructor):
(WebCore::setJSTestNamedSetterWithIdentifierConstructor):
(WebCore::JSTestNamedSetterWithIdentifier::toWrapped):
* bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
(WebCore::IDLOperation<JSTestNamedSetterWithIndexedGetter>::cast):
(WebCore::jsTestNamedSetterWithIndexedGetterConstructor):
(WebCore::setJSTestNamedSetterWithIndexedGetterConstructor):
(WebCore::JSTestNamedSetterWithIndexedGetter::toWrapped):
* bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
(WebCore::IDLOperation<JSTestNamedSetterWithIndexedGetterAndSetter>::cast):
(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterConstructor):
(WebCore::setJSTestNamedSetterWithIndexedGetterAndSetterConstructor):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::toWrapped):
* bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp:
(WebCore::jsTestNamedSetterWithOverrideBuiltinsConstructor):
(WebCore::setJSTestNamedSetterWithOverrideBuiltinsConstructor):
(WebCore::JSTestNamedSetterWithOverrideBuiltins::toWrapped):
* bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp:
(WebCore::IDLAttribute<JSTestNamedSetterWithUnforgableProperties>::cast):
(WebCore::IDLOperation<JSTestNamedSetterWithUnforgableProperties>::cast):
(WebCore::jsTestNamedSetterWithUnforgablePropertiesConstructor):
(WebCore::setJSTestNamedSetterWithUnforgablePropertiesConstructor):
(WebCore::JSTestNamedSetterWithUnforgableProperties::toWrapped):
* bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp:
(WebCore::IDLAttribute<JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins>::cast):
(WebCore::IDLOperation<JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins>::cast):
(WebCore::jsTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsConstructor):
(WebCore::setJSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsConstructor):
(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins::toWrapped):
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::IDLAttribute<JSTestNode>::cast):
(WebCore::IDLOperation<JSTestNode>::cast):
(WebCore::jsTestNodeConstructor):
(WebCore::setJSTestNodeConstructor):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::IDLAttribute<JSTestObj>::cast):
(WebCore::IDLOperation<JSTestObj>::cast):
(WebCore::jsTestObjConstructor):
(WebCore::setJSTestObjConstructor):
(WebCore::JSTestObj::toWrapped):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::jsTestOverloadedConstructorsConstructor):
(WebCore::setJSTestOverloadedConstructorsConstructor):
(WebCore::JSTestOverloadedConstructors::toWrapped):
* bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
(WebCore::jsTestOverloadedConstructorsWithSequenceConstructor):
(WebCore::setJSTestOverloadedConstructorsWithSequenceConstructor):
(WebCore::JSTestOverloadedConstructorsWithSequence::toWrapped):
* bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::IDLOperation<JSTestOverrideBuiltins>::cast):
(WebCore::jsTestOverrideBuiltinsConstructor):
(WebCore::setJSTestOverrideBuiltinsConstructor):
(WebCore::JSTestOverrideBuiltins::toWrapped):
* bindings/scripts/test/JS/JSTestPluginInterface.cpp:
(WebCore::jsTestPluginInterfaceConstructor):
(WebCore::setJSTestPluginInterfaceConstructor):
(WebCore::JSTestPluginInterface::toWrapped):
* bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
(WebCore::IDLAttribute<JSTestPromiseRejectionEvent>::cast):
(WebCore::jsTestPromiseRejectionEventConstructor):
(WebCore::setJSTestPromiseRejectionEventConstructor):
* bindings/scripts/test/JS/JSTestSerialization.cpp:
(WebCore::IDLAttribute<JSTestSerialization>::cast):
(WebCore::IDLOperation<JSTestSerialization>::cast):
(WebCore::jsTestSerializationConstructor):
(WebCore::setJSTestSerializationConstructor):
(WebCore::JSTestSerialization::toWrapped):
* bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.cpp:
(WebCore::jsTestSerializationIndirectInheritanceConstructor):
(WebCore::setJSTestSerializationIndirectInheritanceConstructor):
* bindings/scripts/test/JS/JSTestSerializationInherit.cpp:
(WebCore::IDLAttribute<JSTestSerializationInherit>::cast):
(WebCore::IDLOperation<JSTestSerializationInherit>::cast):
(WebCore::jsTestSerializationInheritConstructor):
(WebCore::setJSTestSerializationInheritConstructor):
* bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp:
(WebCore::IDLAttribute<JSTestSerializationInheritFinal>::cast):
(WebCore::IDLOperation<JSTestSerializationInheritFinal>::cast):
(WebCore::jsTestSerializationInheritFinalConstructor):
(WebCore::setJSTestSerializationInheritFinalConstructor):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::IDLAttribute<JSTestSerializedScriptValueInterface>::cast):
(WebCore::IDLOperation<JSTestSerializedScriptValueInterface>::cast):
(WebCore::jsTestSerializedScriptValueInterfaceConstructor):
(WebCore::setJSTestSerializedScriptValueInterfaceConstructor):
(WebCore::JSTestSerializedScriptValueInterface::toWrapped):
* bindings/scripts/test/JS/JSTestStringifier.cpp:
(WebCore::IDLOperation<JSTestStringifier>::cast):
(WebCore::jsTestStringifierConstructor):
(WebCore::setJSTestStringifierConstructor):
(WebCore::JSTestStringifier::toWrapped):
* bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:
(WebCore::IDLOperation<JSTestStringifierAnonymousOperation>::cast):
(WebCore::jsTestStringifierAnonymousOperationConstructor):
(WebCore::setJSTestStringifierAnonymousOperationConstructor):
(WebCore::JSTestStringifierAnonymousOperation::toWrapped):
* bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:
(WebCore::IDLOperation<JSTestStringifierNamedOperation>::cast):
(WebCore::jsTestStringifierNamedOperationConstructor):
(WebCore::setJSTestStringifierNamedOperationConstructor):
(WebCore::JSTestStringifierNamedOperation::toWrapped):
* bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:
(WebCore::IDLOperation<JSTestStringifierOperationImplementedAs>::cast):
(WebCore::jsTestStringifierOperationImplementedAsConstructor):
(WebCore::setJSTestStringifierOperationImplementedAsConstructor):
(WebCore::JSTestStringifierOperationImplementedAs::toWrapped):
* bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:
(WebCore::IDLOperation<JSTestStringifierOperationNamedToString>::cast):
(WebCore::jsTestStringifierOperationNamedToStringConstructor):
(WebCore::setJSTestStringifierOperationNamedToStringConstructor):
(WebCore::JSTestStringifierOperationNamedToString::toWrapped):
* bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:
(WebCore::IDLAttribute<JSTestStringifierReadOnlyAttribute>::cast):
(WebCore::IDLOperation<JSTestStringifierReadOnlyAttribute>::cast):
(WebCore::jsTestStringifierReadOnlyAttributeConstructor):
(WebCore::setJSTestStringifierReadOnlyAttributeConstructor):
(WebCore::JSTestStringifierReadOnlyAttribute::toWrapped):
* bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:
(WebCore::IDLAttribute<JSTestStringifierReadWriteAttribute>::cast):
(WebCore::IDLOperation<JSTestStringifierReadWriteAttribute>::cast):
(WebCore::jsTestStringifierReadWriteAttributeConstructor):
(WebCore::setJSTestStringifierReadWriteAttributeConstructor):
(WebCore::JSTestStringifierReadWriteAttribute::toWrapped):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::IDLAttribute<JSTestTypedefs>::cast):
(WebCore::IDLOperation<JSTestTypedefs>::cast):
(WebCore::jsTestTypedefsConstructor):
(WebCore::setJSTestTypedefsConstructor):
(WebCore::JSTestTypedefs::toWrapped):
* bridge/objc/WebScriptObject.mm:
(-[WebScriptObject setValue:forKey:]):
* bridge/runtime_array.cpp:
(JSC::RuntimeArray::lengthGetter):
* bridge/runtime_method.cpp:
(JSC::RuntimeMethod::lengthGetter):
* html/HTMLMediaElement.cpp:
(WebCore::controllerJSValue):
(WebCore::HTMLMediaElement::updateCaptionContainer):
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):
* inspector/agents/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForEventListener):

Source/WebKit:

* WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::WebAutomationSessionProxy::elementForNodeHandle):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::frameForContext):

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

2 years agoMove a test from fast/DOM to fast/dom and delete the fast/DOM directory.
ryanhaddad@apple.com [Thu, 8 Mar 2018 18:35:22 +0000 (18:35 +0000)]
Move a test from fast/DOM to fast/dom and delete the fast/DOM directory.

Unreviewed test gardening.

* fast/dom/HTMLInputElement/input-value-and-type-change-crash-expected.txt: Renamed from LayoutTests/fast/DOM/HTMLInputElement/input-value-and-type-change-crash-expected.txt.
* fast/dom/HTMLInputElement/input-value-and-type-change-crash.html: Renamed from LayoutTests/fast/DOM/HTMLInputElement/input-value-and-type-change-crash.html.

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

2 years agoPossible null dereference of the page under WebFrameNetworkingContext::storageSession()
cdumez@apple.com [Thu, 8 Mar 2018 18:29:00 +0000 (18:29 +0000)]
Possible null dereference of the page under WebFrameNetworkingContext::storageSession()
https://bugs.webkit.org/show_bug.cgi?id=183455
<rdar://problem/38191749>

Reviewed by Youenn Fablet.

Add a null check for the page as we have evidence from crashes that it can be null.
Other functions in WebFrameNetworkingContext already null check the page as well,
not just the frame so this is consistent.

* WebCoreSupport/WebFrameNetworkingContext.mm:
(WebFrameNetworkingContext::storageSession const):

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

2 years ago[JSC] Optimize inherits<T> if T is final type
utatane.tea@gmail.com [Thu, 8 Mar 2018 18:24:07 +0000 (18:24 +0000)]
[JSC] Optimize inherits<T> if T is final type
https://bugs.webkit.org/show_bug.cgi?id=183435

Reviewed by Mark Lam.

If the type T is a final type (`std::is_final<T>::value == true`), there is no
classes which is derived from T. It means that `jsDynamicCast<T>` only needs
to check the given cell's `classInfo(vm)` is `T::info()`.

This patch adds a new specialization for jsDynamicCast<T> / inherits<T> for a
final type. And we also add `final` annotations to JS cell types in JSC. This
offers,

1. Readability. If the given class is annotated with `final`, we do not need to
consider about the derived classes of T.

2. Static Checking. If your class is not intended to be used as a base class, attaching
`final` can ensure this invariant.

3. Performance. jsDynamicCast<T> and inherits<T> can be optimized and the code size should
be smaller.

* API/JSCallbackConstructor.h:
(JSC::JSCallbackConstructor::create): Deleted.
(JSC::JSCallbackConstructor::classRef const): Deleted.
(JSC::JSCallbackConstructor::callback const): Deleted.
(JSC::JSCallbackConstructor::createStructure): Deleted.
(JSC::JSCallbackConstructor::constructCallback): Deleted.
* API/JSCallbackFunction.h:
(JSC::JSCallbackFunction::createStructure): Deleted.
(JSC::JSCallbackFunction::functionCallback): Deleted.
* API/JSCallbackObject.h:
(JSC::JSCallbackObject::create): Deleted.
(JSC::JSCallbackObject::destroy): Deleted.
(JSC::JSCallbackObject::classRef const): Deleted.
(JSC::JSCallbackObject::getPrivateProperty const): Deleted.
(JSC::JSCallbackObject::setPrivateProperty): Deleted.
(JSC::JSCallbackObject::deletePrivateProperty): Deleted.
(JSC::JSCallbackObject::visitChildren): Deleted.
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::setConstantRegisters):
* bytecode/ExecutableToCodeBlockEdge.h:
(JSC::ExecutableToCodeBlockEdge::subspaceFor): Deleted.
(JSC::ExecutableToCodeBlockEdge::codeBlock const): Deleted.
(JSC::ExecutableToCodeBlockEdge::unwrap): Deleted.
* bytecode/FunctionCodeBlock.h:
(JSC::FunctionCodeBlock::subspaceFor): Deleted.
(JSC::FunctionCodeBlock::create): Deleted.
(JSC::FunctionCodeBlock::createStructure): Deleted.
(JSC::FunctionCodeBlock::FunctionCodeBlock): Deleted.
* debugger/DebuggerScope.h:
(JSC::DebuggerScope::createStructure): Deleted.
(JSC::DebuggerScope::iterator::iterator): Deleted.
(JSC::DebuggerScope::iterator::get): Deleted.
(JSC::DebuggerScope::iterator::operator++): Deleted.
(JSC::DebuggerScope::iterator::operator== const): Deleted.
(JSC::DebuggerScope::iterator::operator!= const): Deleted.
(JSC::DebuggerScope::isValid const): Deleted.
(JSC::DebuggerScope::jsScope const): Deleted.
* inspector/JSInjectedScriptHost.h:
(Inspector::JSInjectedScriptHost::createStructure): Deleted.
(Inspector::JSInjectedScriptHost::create): Deleted.
(Inspector::JSInjectedScriptHost::impl const): Deleted.
* inspector/JSInjectedScriptHostPrototype.h:
(Inspector::JSInjectedScriptHostPrototype::create): Deleted.
(Inspector::JSInjectedScriptHostPrototype::createStructure): Deleted.
(Inspector::JSInjectedScriptHostPrototype::JSInjectedScriptHostPrototype): Deleted.
* inspector/JSJavaScriptCallFrame.h:
(Inspector::JSJavaScriptCallFrame::createStructure): Deleted.
(Inspector::JSJavaScriptCallFrame::create): Deleted.
(Inspector::JSJavaScriptCallFrame::impl const): Deleted.
* inspector/JSJavaScriptCallFramePrototype.h:
(Inspector::JSJavaScriptCallFramePrototype::create): Deleted.
(Inspector::JSJavaScriptCallFramePrototype::createStructure): Deleted.
(Inspector::JSJavaScriptCallFramePrototype::JSJavaScriptCallFramePrototype): Deleted.
* jit/Repatch.cpp:
(JSC::tryCacheGetByID):
* runtime/ArrayConstructor.h:
(JSC::ArrayConstructor::create): Deleted.
(JSC::ArrayConstructor::createStructure): Deleted.
* runtime/ArrayIteratorPrototype.h:
(JSC::ArrayIteratorPrototype::create): Deleted.
(JSC::ArrayIteratorPrototype::createStructure): Deleted.
(JSC::ArrayIteratorPrototype::ArrayIteratorPrototype): Deleted.
* runtime/ArrayPrototype.h:
(JSC::ArrayPrototype::createStructure): Deleted.
* runtime/AsyncFromSyncIteratorPrototype.h:
(JSC::AsyncFromSyncIteratorPrototype::createStructure): Deleted.
* runtime/AsyncFunctionConstructor.h:
(JSC::AsyncFunctionConstructor::create): Deleted.
(JSC::AsyncFunctionConstructor::createStructure): Deleted.
* runtime/AsyncFunctionPrototype.h:
(JSC::AsyncFunctionPrototype::create): Deleted.
(JSC::AsyncFunctionPrototype::createStructure): Deleted.
* runtime/AsyncGeneratorFunctionConstructor.h:
(JSC::AsyncGeneratorFunctionConstructor::create): Deleted.
(JSC::AsyncGeneratorFunctionConstructor::createStructure): Deleted.
* runtime/AsyncGeneratorFunctionPrototype.h:
(JSC::AsyncGeneratorFunctionPrototype::create): Deleted.
(JSC::AsyncGeneratorFunctionPrototype::createStructure): Deleted.
* runtime/AsyncGeneratorPrototype.h:
(JSC::AsyncGeneratorPrototype::create): Deleted.
(JSC::AsyncGeneratorPrototype::createStructure): Deleted.
(JSC::AsyncGeneratorPrototype::AsyncGeneratorPrototype): Deleted.
* runtime/AsyncIteratorPrototype.h:
(JSC::AsyncIteratorPrototype::create): Deleted.
(JSC::AsyncIteratorPrototype::createStructure): Deleted.
(JSC::AsyncIteratorPrototype::AsyncIteratorPrototype): Deleted.
* runtime/AtomicsObject.h:
* runtime/BigIntConstructor.h:
(JSC::BigIntConstructor::create): Deleted.
(JSC::BigIntConstructor::createStructure): Deleted.
* runtime/BigIntObject.h:
(JSC::BigIntObject::create): Deleted.
(JSC::BigIntObject::internalValue const): Deleted.
(JSC::BigIntObject::createStructure): Deleted.
* runtime/BigIntPrototype.h:
(JSC::BigIntPrototype::create): Deleted.
(JSC::BigIntPrototype::createStructure): Deleted.
* runtime/BooleanConstructor.h:
(JSC::BooleanConstructor::create): Deleted.
(JSC::BooleanConstructor::createStructure): Deleted.
* runtime/BooleanPrototype.h:
(JSC::BooleanPrototype::create): Deleted.
(JSC::BooleanPrototype::createStructure): Deleted.
* runtime/ConsoleObject.h:
(JSC::ConsoleObject::create): Deleted.
(JSC::ConsoleObject::createStructure): Deleted.
* runtime/DOMAttributeGetterSetter.h:
(JSC::isDOMAttributeGetterSetter): Deleted.
* runtime/DateConstructor.h:
(JSC::DateConstructor::create): Deleted.
(JSC::DateConstructor::createStructure): Deleted.
* runtime/DateInstance.h:
(JSC::DateInstance::create): Deleted.
(JSC::DateInstance::internalNumber const): Deleted.
(JSC::DateInstance::gregorianDateTime const): Deleted.
(JSC::DateInstance::gregorianDateTimeUTC const): Deleted.
(JSC::DateInstance::createStructure): Deleted.
* runtime/DatePrototype.h:
(JSC::DatePrototype::create): Deleted.
(JSC::DatePrototype::createStructure): Deleted.
* runtime/Error.h:
(JSC::StrictModeTypeErrorFunction::StrictModeTypeErrorFunction): Deleted.
(JSC::StrictModeTypeErrorFunction::create): Deleted.
(JSC::StrictModeTypeErrorFunction::constructThrowTypeError): Deleted.
(JSC::StrictModeTypeErrorFunction::callThrowTypeError): Deleted.
(JSC::StrictModeTypeErrorFunction::createStructure): Deleted.
* runtime/ErrorConstructor.h:
(JSC::ErrorConstructor::create): Deleted.
(JSC::ErrorConstructor::createStructure): Deleted.
(JSC::ErrorConstructor::stackTraceLimit const): Deleted.
* runtime/Exception.h:
(JSC::Exception::valueOffset): Deleted.
(JSC::Exception::value const): Deleted.
(JSC::Exception::stack const): Deleted.
(JSC::Exception::didNotifyInspectorOfThrow const): Deleted.
(JSC::Exception::setDidNotifyInspectorOfThrow): Deleted.
* runtime/FunctionConstructor.h:
(JSC::FunctionConstructor::create): Deleted.
(JSC::FunctionConstructor::createStructure): Deleted.
* runtime/FunctionPrototype.h:
(JSC::FunctionPrototype::create): Deleted.
(JSC::FunctionPrototype::createStructure): Deleted.
* runtime/FunctionRareData.h:
(JSC::FunctionRareData::offsetOfObjectAllocationProfile): Deleted.
(JSC::FunctionRareData::objectAllocationProfile): Deleted.
(JSC::FunctionRareData::objectAllocationStructure): Deleted.
(JSC::FunctionRareData::allocationProfileWatchpointSet): Deleted.
(JSC::FunctionRareData::isObjectAllocationProfileInitialized): Deleted.
(JSC::FunctionRareData::internalFunctionAllocationStructure): Deleted.
(JSC::FunctionRareData::createInternalFunctionAllocationStructureFromBase): Deleted.
(JSC::FunctionRareData::clearInternalFunctionAllocationProfile): Deleted.
(JSC::FunctionRareData::getBoundFunctionStructure): Deleted.
(JSC::FunctionRareData::setBoundFunctionStructure): Deleted.
(JSC::FunctionRareData::hasReifiedLength const): Deleted.
(JSC::FunctionRareData::setHasReifiedLength): Deleted.
(JSC::FunctionRareData::hasReifiedName const): Deleted.
(JSC::FunctionRareData::setHasReifiedName): Deleted.
(JSC::FunctionRareData::hasAllocationProfileClearingWatchpoint const): Deleted.
(JSC::FunctionRareData::createAllocationProfileClearingWatchpoint): Deleted.
(JSC::FunctionRareData::AllocationProfileClearingWatchpoint::AllocationProfileClearingWatchpoint): Deleted.
* runtime/GeneratorFunctionConstructor.h:
(JSC::GeneratorFunctionConstructor::create): Deleted.
(JSC::GeneratorFunctionConstructor::createStructure): Deleted.
* runtime/GeneratorFunctionPrototype.h:
(JSC::GeneratorFunctionPrototype::create): Deleted.
(JSC::GeneratorFunctionPrototype::createStructure): Deleted.
* runtime/GeneratorPrototype.h:
(JSC::GeneratorPrototype::create): Deleted.
(JSC::GeneratorPrototype::createStructure): Deleted.
(JSC::GeneratorPrototype::GeneratorPrototype): Deleted.
* runtime/InferredValue.h:
(JSC::InferredValue::subspaceFor): Deleted.
(JSC::InferredValue::inferredValue): Deleted.
(JSC::InferredValue::state const): Deleted.
(JSC::InferredValue::isStillValid const): Deleted.
(JSC::InferredValue::hasBeenInvalidated const): Deleted.
(JSC::InferredValue::add): Deleted.
(JSC::InferredValue::notifyWrite): Deleted.
(JSC::InferredValue::invalidate): Deleted.
* runtime/InspectorInstrumentationObject.h:
(JSC::InspectorInstrumentationObject::create): Deleted.
(JSC::InspectorInstrumentationObject::createStructure): Deleted.
* runtime/IntlCollator.h:
(JSC::IntlCollator::boundCompare const): Deleted.
* runtime/IntlCollatorConstructor.h:
(JSC::IntlCollatorConstructor::collatorStructure const): Deleted.
* runtime/IntlCollatorPrototype.h:
* runtime/IntlDateTimeFormat.h:
(JSC::IntlDateTimeFormat::boundFormat const): Deleted.
* runtime/IntlDateTimeFormatConstructor.h:
(JSC::IntlDateTimeFormatConstructor::dateTimeFormatStructure const): Deleted.
* runtime/IntlDateTimeFormatPrototype.h:
* runtime/IntlNumberFormat.h:
(JSC::IntlNumberFormat::boundFormat const): Deleted.
* runtime/IntlNumberFormatConstructor.h:
(JSC::IntlNumberFormatConstructor::numberFormatStructure const): Deleted.
* runtime/IntlNumberFormatPrototype.h:
* runtime/IntlObject.h:
* runtime/IteratorPrototype.h:
(JSC::IteratorPrototype::create): Deleted.
(JSC::IteratorPrototype::createStructure): Deleted.
(JSC::IteratorPrototype::IteratorPrototype): Deleted.
* runtime/JSAPIValueWrapper.h:
(JSC::JSAPIValueWrapper::value const): Deleted.
(JSC::JSAPIValueWrapper::createStructure): Deleted.
(JSC::JSAPIValueWrapper::create): Deleted.
(JSC::JSAPIValueWrapper::finishCreation): Deleted.
(JSC::JSAPIValueWrapper::JSAPIValueWrapper): Deleted.
* runtime/JSArrayBufferConstructor.h:
(JSC::JSArrayBufferConstructor::sharingMode const): Deleted.
* runtime/JSArrayBufferPrototype.h:
* runtime/JSAsyncFunction.h:
(JSC::JSAsyncFunction::subspaceFor): Deleted.
(JSC::JSAsyncFunction::allocationSize): Deleted.
(JSC::JSAsyncFunction::createStructure): Deleted.
* runtime/JSAsyncGeneratorFunction.h:
(JSC::JSAsyncGeneratorFunction::subspaceFor): Deleted.
(JSC::JSAsyncGeneratorFunction::allocationSize): Deleted.
(JSC::JSAsyncGeneratorFunction::createStructure): Deleted.
* runtime/JSBigInt.h:
(JSC::JSBigInt::setSign): Deleted.
(JSC::JSBigInt::sign const): Deleted.
(JSC::JSBigInt::setLength): Deleted.
(JSC::JSBigInt::length const): Deleted.
* runtime/JSBoundFunction.h:
(JSC::JSBoundFunction::subspaceFor): Deleted.
(JSC::JSBoundFunction::targetFunction): Deleted.
(JSC::JSBoundFunction::boundThis): Deleted.
(JSC::JSBoundFunction::boundArgs): Deleted.
(JSC::JSBoundFunction::createStructure): Deleted.
(JSC::JSBoundFunction::offsetOfTargetFunction): Deleted.
(JSC::JSBoundFunction::offsetOfBoundThis): Deleted.
* runtime/JSCast.h:
(JSC::JSCastingHelpers::FinalTypeDispatcher::inheritsGeneric):
(JSC::JSCastingHelpers::inheritsJSTypeImpl):
(JSC::JSCastingHelpers::InheritsTraits::inherits):
(JSC::JSCastingHelpers::inheritsGenericImpl): Deleted.
* runtime/JSCustomGetterSetterFunction.cpp:
(JSC::JSCustomGetterSetterFunction::customGetterSetterFunctionCall):
* runtime/JSCustomGetterSetterFunction.h:
(JSC::JSCustomGetterSetterFunction::subspaceFor): Deleted.
(JSC::JSCustomGetterSetterFunction::createStructure): Deleted.
(JSC::JSCustomGetterSetterFunction::customGetterSetter const): Deleted.
(JSC::JSCustomGetterSetterFunction::isSetter const): Deleted.
(JSC::JSCustomGetterSetterFunction::propertyName const): Deleted.
* runtime/JSDataView.h:
(JSC::JSDataView::possiblySharedBuffer const): Deleted.
(JSC::JSDataView::unsharedBuffer const): Deleted.
* runtime/JSDataViewPrototype.h:
* runtime/JSFixedArray.h:
(JSC::JSFixedArray::createStructure): Deleted.
(JSC::JSFixedArray::tryCreate): Deleted.
(JSC::JSFixedArray::create): Deleted.
(JSC::JSFixedArray::createFromArray): Deleted.
(JSC::JSFixedArray::get const): Deleted.
(JSC::JSFixedArray::set): Deleted.
(JSC::JSFixedArray::buffer): Deleted.
(JSC::JSFixedArray::buffer const): Deleted.
(JSC::JSFixedArray::values const): Deleted.
(JSC::JSFixedArray::size const): Deleted.
(JSC::JSFixedArray::length const): Deleted.
(JSC::JSFixedArray::offsetOfSize): Deleted.
(JSC::JSFixedArray::offsetOfData): Deleted.
(JSC::JSFixedArray::JSFixedArray): Deleted.
(JSC::JSFixedArray::allocationSize): Deleted.
* runtime/JSGeneratorFunction.h:
(JSC::JSGeneratorFunction::subspaceFor): Deleted.
(JSC::JSGeneratorFunction::allocationSize): Deleted.
(JSC::JSGeneratorFunction::createStructure): Deleted.
* runtime/JSGenericTypedArrayView.h:
(JSC::JSGenericTypedArrayView::byteLength const): Deleted.
(JSC::JSGenericTypedArrayView::byteSize const): Deleted.
(JSC::JSGenericTypedArrayView::typedVector const): Deleted.
(JSC::JSGenericTypedArrayView::typedVector): Deleted.
(JSC::JSGenericTypedArrayView::canGetIndexQuickly): Deleted.
(JSC::JSGenericTypedArrayView::canSetIndexQuickly): Deleted.
(JSC::JSGenericTypedArrayView::getIndexQuicklyAsNativeValue): Deleted.
(JSC::JSGenericTypedArrayView::getIndexQuicklyAsDouble): Deleted.
(JSC::JSGenericTypedArrayView::getIndexQuickly): Deleted.
(JSC::JSGenericTypedArrayView::setIndexQuicklyToNativeValue): Deleted.
(JSC::JSGenericTypedArrayView::setIndexQuicklyToDouble): Deleted.
(JSC::JSGenericTypedArrayView::setIndexQuickly): Deleted.
(JSC::JSGenericTypedArrayView::setIndex): Deleted.
(JSC::JSGenericTypedArrayView::toAdaptorNativeFromValue): Deleted.
(JSC::JSGenericTypedArrayView::toAdaptorNativeFromValueWithoutCoercion): Deleted.
(JSC::JSGenericTypedArrayView::sort): Deleted.
(JSC::JSGenericTypedArrayView::canAccessRangeQuickly): Deleted.
(JSC::JSGenericTypedArrayView::createStructure): Deleted.
(JSC::JSGenericTypedArrayView::info): Deleted.
(JSC::JSGenericTypedArrayView::purifyArray): Deleted.
(JSC::JSGenericTypedArrayView::sortComparison): Deleted.
(JSC::JSGenericTypedArrayView::sortFloat): Deleted.
* runtime/JSGenericTypedArrayViewConstructor.h:
* runtime/JSGenericTypedArrayViewPrototype.h:
* runtime/JSInternalPromise.h:
* runtime/JSInternalPromiseConstructor.h:
* runtime/JSInternalPromisePrototype.h:
* runtime/JSMapIterator.h:
(JSC::JSMapIterator::createStructure): Deleted.
(JSC::JSMapIterator::create): Deleted.
(JSC::JSMapIterator::advanceIter): Deleted.
(JSC::JSMapIterator::next): Deleted.
(JSC::JSMapIterator::nextKeyValue): Deleted.
(JSC::JSMapIterator::kind const): Deleted.
(JSC::JSMapIterator::iteratedValue const): Deleted.
(JSC::JSMapIterator::JSMapIterator): Deleted.
(JSC::JSMapIterator::setIterator): Deleted.
* runtime/JSModuleLoader.h:
(JSC::JSModuleLoader::create): Deleted.
(JSC::JSModuleLoader::createStructure): Deleted.
* runtime/JSModuleNamespaceObject.h:
(JSC::isJSModuleNamespaceObject): Deleted.
* runtime/JSModuleRecord.h:
(JSC::JSModuleRecord::sourceCode const): Deleted.
(JSC::JSModuleRecord::declaredVariables const): Deleted.
(JSC::JSModuleRecord::lexicalVariables const): Deleted.
* runtime/JSNativeStdFunction.h:
(JSC::JSNativeStdFunction::subspaceFor): Deleted.
(JSC::JSNativeStdFunction::createStructure): Deleted.
(JSC::JSNativeStdFunction::nativeStdFunctionCell): Deleted.
* runtime/JSONObject.h:
(JSC::JSONObject::create): Deleted.
(JSC::JSONObject::createStructure): Deleted.
* runtime/JSObject.h:
(JSC::JSObject::fillCustomGetterPropertySlot):
* runtime/JSScriptFetchParameters.h:
(JSC::JSScriptFetchParameters::createStructure): Deleted.
(JSC::JSScriptFetchParameters::create): Deleted.
(JSC::JSScriptFetchParameters::parameters const): Deleted.
(JSC::JSScriptFetchParameters::JSScriptFetchParameters): Deleted.
* runtime/JSScriptFetcher.h:
(JSC::JSScriptFetcher::createStructure): Deleted.
(JSC::JSScriptFetcher::create): Deleted.
(JSC::JSScriptFetcher::fetcher const): Deleted.
(JSC::JSScriptFetcher::JSScriptFetcher): Deleted.
* runtime/JSSetIterator.h:
(JSC::JSSetIterator::createStructure): Deleted.
(JSC::JSSetIterator::create): Deleted.
(JSC::JSSetIterator::advanceIter): Deleted.
(JSC::JSSetIterator::next): Deleted.
(JSC::JSSetIterator::kind const): Deleted.
(JSC::JSSetIterator::iteratedValue const): Deleted.
(JSC::JSSetIterator::JSSetIterator): Deleted.
(JSC::JSSetIterator::setIterator): Deleted.
* runtime/JSSourceCode.h:
(JSC::JSSourceCode::createStructure): Deleted.
(JSC::JSSourceCode::create): Deleted.
(JSC::JSSourceCode::sourceCode const): Deleted.
(JSC::JSSourceCode::JSSourceCode): Deleted.
* runtime/JSStringIterator.h:
(JSC::JSStringIterator::createStructure): Deleted.
(JSC::JSStringIterator::create): Deleted.
(JSC::JSStringIterator::JSStringIterator): Deleted.
* runtime/JSTemplateObjectDescriptor.h:
(JSC::isTemplateObjectDescriptor): Deleted.
* runtime/JSTypedArrayViewConstructor.h:
(JSC::JSTypedArrayViewConstructor::create): Deleted.
* runtime/JSTypedArrayViewPrototype.h:
* runtime/MapConstructor.h:
(JSC::MapConstructor::create): Deleted.
(JSC::MapConstructor::createStructure): Deleted.
* runtime/MapIteratorPrototype.h:
(JSC::MapIteratorPrototype::create): Deleted.
(JSC::MapIteratorPrototype::createStructure): Deleted.
(JSC::MapIteratorPrototype::MapIteratorPrototype): Deleted.
* runtime/MapPrototype.h:
(JSC::MapPrototype::create): Deleted.
(JSC::MapPrototype::createStructure): Deleted.
(JSC::MapPrototype::MapPrototype): Deleted.
* runtime/MathObject.h:
(JSC::MathObject::create): Deleted.
(JSC::MathObject::createStructure): Deleted.
* runtime/ModuleLoaderPrototype.h:
(JSC::ModuleLoaderPrototype::create): Deleted.
(JSC::ModuleLoaderPrototype::createStructure): Deleted.
* runtime/NativeErrorConstructor.h:
(JSC::NativeErrorConstructor::create): Deleted.
(JSC::NativeErrorConstructor::createStructure): Deleted.
(JSC::NativeErrorConstructor::errorStructure): Deleted.
* runtime/NativeErrorPrototype.h:
(JSC::NativeErrorPrototype::create): Deleted.
* runtime/NativeStdFunctionCell.h:
(JSC::NativeStdFunctionCell::createStructure): Deleted.
(JSC::NativeStdFunctionCell::function const): Deleted.
* runtime/NullGetterFunction.h:
(JSC::NullGetterFunction::create): Deleted.
(JSC::NullGetterFunction::createStructure): Deleted.
* runtime/NullSetterFunction.h:
(JSC::NullSetterFunction::create): Deleted.
(JSC::NullSetterFunction::createStructure): Deleted.
* runtime/NumberConstructor.h:
(JSC::NumberConstructor::create): Deleted.
(JSC::NumberConstructor::createStructure): Deleted.
(JSC::NumberConstructor::isIntegerImpl): Deleted.
* runtime/NumberPrototype.h:
(JSC::NumberPrototype::create): Deleted.
(JSC::NumberPrototype::createStructure): Deleted.
* runtime/ObjectConstructor.h:
(JSC::ObjectConstructor::create): Deleted.
(JSC::ObjectConstructor::createStructure): Deleted.
* runtime/ObjectPrototype.h:
(JSC::ObjectPrototype::createStructure): Deleted.
* runtime/ProxyConstructor.h:
(JSC::ProxyConstructor::createStructure): Deleted.
* runtime/ProxyRevoke.h:
(JSC::ProxyRevoke::createStructure): Deleted.
(JSC::ProxyRevoke::proxy): Deleted.
(JSC::ProxyRevoke::setProxyToNull): Deleted.
* runtime/ReflectObject.h:
(JSC::ReflectObject::create): Deleted.
(JSC::ReflectObject::createStructure): Deleted.
* runtime/RegExpConstructor.cpp:
(JSC::regExpConstructorDollar):
(JSC::regExpConstructorInput):
(JSC::regExpConstructorMultiline):
(JSC::regExpConstructorLastMatch):
(JSC::regExpConstructorLastParen):
(JSC::regExpConstructorLeftContext):
(JSC::regExpConstructorRightContext):
* runtime/RegExpConstructor.h:
(JSC::RegExpConstructor::create): Deleted.
(JSC::RegExpConstructor::createStructure): Deleted.
(JSC::RegExpConstructor::setMultiline): Deleted.
(JSC::RegExpConstructor::multiline const): Deleted.
(JSC::RegExpConstructor::setInput): Deleted.
(JSC::RegExpConstructor::input): Deleted.
(JSC::RegExpConstructor::offsetOfCachedResult): Deleted.
(JSC::asRegExpConstructor): Deleted.
* runtime/RegExpPrototype.h:
(JSC::RegExpPrototype::create): Deleted.
(JSC::RegExpPrototype::createStructure): Deleted.
(JSC::RegExpPrototype::emptyRegExp const): Deleted.
* runtime/SetConstructor.h:
(JSC::SetConstructor::create): Deleted.
(JSC::SetConstructor::createStructure): Deleted.
* runtime/SetIteratorPrototype.h:
(JSC::SetIteratorPrototype::create): Deleted.
(JSC::SetIteratorPrototype::createStructure): Deleted.
(JSC::SetIteratorPrototype::SetIteratorPrototype): Deleted.
* runtime/SetPrototype.h:
(JSC::SetPrototype::create): Deleted.
(JSC::SetPrototype::createStructure): Deleted.
(JSC::SetPrototype::SetPrototype): Deleted.
* runtime/StringConstructor.h:
(JSC::StringConstructor::create): Deleted.
(JSC::StringConstructor::createStructure): Deleted.
* runtime/StringIteratorPrototype.h:
(JSC::StringIteratorPrototype::create): Deleted.
(JSC::StringIteratorPrototype::createStructure): Deleted.
(JSC::StringIteratorPrototype::StringIteratorPrototype): Deleted.
* runtime/StringPrototype.h:
(JSC::StringPrototype::createStructure): Deleted.
* runtime/SymbolConstructor.h:
(JSC::SymbolConstructor::create): Deleted.
(JSC::SymbolConstructor::createStructure): Deleted.
* runtime/SymbolObject.h:
(JSC::SymbolObject::create): Deleted.
(JSC::SymbolObject::internalValue const): Deleted.
(JSC::SymbolObject::createStructure): Deleted.
* runtime/SymbolPrototype.h:
(JSC::SymbolPrototype::create): Deleted.
(JSC::SymbolPrototype::createStructure): Deleted.
* runtime/WeakMapConstructor.h:
(JSC::WeakMapConstructor::create): Deleted.
(JSC::WeakMapConstructor::createStructure): Deleted.
* runtime/WeakMapPrototype.h:
(JSC::WeakMapPrototype::create): Deleted.
(JSC::WeakMapPrototype::createStructure): Deleted.
(JSC::WeakMapPrototype::WeakMapPrototype): Deleted.
* runtime/WeakSetConstructor.h:
(JSC::WeakSetConstructor::create): Deleted.
(JSC::WeakSetConstructor::createStructure): Deleted.
* runtime/WeakSetPrototype.h:
(JSC::WeakSetPrototype::create): Deleted.
(JSC::WeakSetPrototype::createStructure): Deleted.
(JSC::WeakSetPrototype::WeakSetPrototype): Deleted.
* tools/JSDollarVM.h:
(JSC::JSDollarVM::createStructure): Deleted.
(JSC::JSDollarVM::create): Deleted.
(JSC::JSDollarVM::JSDollarVM): Deleted.
* wasm/js/JSWebAssembly.h:
* wasm/js/JSWebAssemblyCompileError.h:
(JSC::JSWebAssemblyCompileError::create): Deleted.
* wasm/js/JSWebAssemblyInstance.h:
(JSC::JSWebAssemblyInstance::instance): Deleted.
(JSC::JSWebAssemblyInstance::moduleNamespaceObject): Deleted.
(JSC::JSWebAssemblyInstance::webAssemblyToJSCallee): Deleted.
(JSC::JSWebAssemblyInstance::memory): Deleted.
(JSC::JSWebAssemblyInstance::setMemory): Deleted.
(JSC::JSWebAssemblyInstance::memoryMode): Deleted.
(JSC::JSWebAssemblyInstance::table): Deleted.
(JSC::JSWebAssemblyInstance::setTable): Deleted.
(JSC::JSWebAssemblyInstance::offsetOfPoisonedInstance): Deleted.
(JSC::JSWebAssemblyInstance::offsetOfPoisonedCallee): Deleted.
(JSC::JSWebAssemblyInstance::module const): Deleted.
* wasm/js/JSWebAssemblyLinkError.h:
(JSC::JSWebAssemblyLinkError::create): Deleted.
* wasm/js/JSWebAssemblyMemory.h:
(JSC::JSWebAssemblyMemory::subspaceFor): Deleted.
(JSC::JSWebAssemblyMemory::memory): Deleted.
* wasm/js/JSWebAssemblyModule.h:
* wasm/js/JSWebAssemblyRuntimeError.h:
(JSC::JSWebAssemblyRuntimeError::create): Deleted.
* wasm/js/JSWebAssemblyTable.h:
(JSC::JSWebAssemblyTable::isValidLength): Deleted.
(JSC::JSWebAssemblyTable::maximum const): Deleted.
(JSC::JSWebAssemblyTable::length const): Deleted.
(JSC::JSWebAssemblyTable::allocatedLength const): Deleted.
(JSC::JSWebAssemblyTable::table): Deleted.
* wasm/js/WebAssemblyCompileErrorConstructor.h:
* wasm/js/WebAssemblyCompileErrorPrototype.h:
* wasm/js/WebAssemblyInstanceConstructor.h:
* wasm/js/WebAssemblyInstancePrototype.h:
* wasm/js/WebAssemblyLinkErrorConstructor.h:
* wasm/js/WebAssemblyLinkErrorPrototype.h:
* wasm/js/WebAssemblyMemoryConstructor.h:
* wasm/js/WebAssemblyMemoryPrototype.h:
* wasm/js/WebAssemblyModuleConstructor.h:
* wasm/js/WebAssemblyModulePrototype.h:
* wasm/js/WebAssemblyModuleRecord.h:
* wasm/js/WebAssemblyPrototype.h:
* wasm/js/WebAssemblyRuntimeErrorConstructor.h:
* wasm/js/WebAssemblyRuntimeErrorPrototype.h:
* wasm/js/WebAssemblyTableConstructor.h:
* wasm/js/WebAssemblyTablePrototype.h:

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

2 years agoMake it possible to randomize register allocation
fpizlo@apple.com [Thu, 8 Mar 2018 17:11:51 +0000 (17:11 +0000)]
Make it possible to randomize register allocation
https://bugs.webkit.org/show_bug.cgi?id=183416

Reviewed by Keith Miller.
Source/JavaScriptCore:

This is disabled by default for now, because it reveals a regalloc bug in wasm.

* b3/air/AirCode.cpp:
(JSC::B3::Air::Code::Code):
* b3/air/AirCode.h:
(JSC::B3::Air::Code::weakRandom):
* runtime/Options.h:

Source/WTF:

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

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

2 years agoAdd references to bug 160161 for some MathML failures on iOS and macOS.
fred.wang@free.fr [Thu, 8 Mar 2018 16:58:54 +0000 (16:58 +0000)]
Add references to bug 160161 for some MathML failures on iOS and macOS.

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2018-03-08

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

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

2 years ago[JSC] Add inherits<T>(VM&) leveraging JSCast fast path
utatane.tea@gmail.com [Thu, 8 Mar 2018 16:06:48 +0000 (16:06 +0000)]
[JSC] Add inherits<T>(VM&) leveraging JSCast fast path
https://bugs.webkit.org/show_bug.cgi?id=183429

Reviewed by Mark Lam.

Source/JavaScriptCore:

Add new member function, JSCell::inherits<T>(VM&) and JSValue::inherits<T>(VM&).
They depends on jsDynamicCast<T> implementation and leverage JSType-based fast
paths defined in JSCast.h. We extract checking part as `JSCastingHelpers::inherit`
and construct jsDynamicCast and JSCell::inherits based on this.

And we remove several unnecessary casting functions (asRegExpObject, asDateInstance etc.).
In addition, we add jsDynamicCast fast path for RegExpObject by using existing RegExpObjectType.

We also fix the implementation of jsDynamicCast for JSObject since it uses LastJSCObjectType.
The embedder can add their extended object types after that.

* API/JSObjectRef.cpp:
(JSObjectGetPrivateProperty):
(JSObjectSetPrivateProperty):
(JSObjectDeletePrivateProperty):
* API/JSValue.mm:
(isDate):
(isArray):
* API/JSValueRef.cpp:
(JSValueIsArray):
(JSValueIsDate):
(JSValueIsObjectOfClass):
* API/JSWeakObjectMapRefPrivate.cpp:
* API/JSWrapperMap.mm:
(tryUnwrapObjcObject):
* API/ObjCCallbackFunction.mm:
(tryUnwrapConstructor):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGOperations.cpp:
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileOverridesHasInstance):
(JSC::FTL::DFG::LowerDFGToB3::compileNewRegexp):
* ftl/FTLOperations.cpp:
(JSC::FTL::operationMaterializeObjectInOSR):
* inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::subtype):
(Inspector::JSInjectedScriptHost::functionDetails):
* inspector/agents/InspectorHeapAgent.cpp:
(Inspector::InspectorHeapAgent::getPreview):
* interpreter/Interpreter.cpp:
(JSC::notifyDebuggerOfUnwinding):
* interpreter/ShadowChicken.cpp:
(JSC::ShadowChicken::update):
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
* jit/JITOperations.cpp:
(JSC::operationNewFunctionCommon):
* jsc.cpp:
(checkException):
* runtime/BooleanObject.h:
(JSC::asBooleanObject): Deleted.
* runtime/BooleanPrototype.cpp:
(JSC::booleanProtoFuncToString):
(JSC::booleanProtoFuncValueOf):
* runtime/DateConstructor.cpp:
(JSC::constructDate):
* runtime/DateInstance.h:
(JSC::asDateInstance): Deleted.
* runtime/DatePrototype.cpp:
(JSC::formateDateInstance):
(JSC::dateProtoFuncToISOString):
(JSC::dateProtoFuncToLocaleString):
(JSC::dateProtoFuncToLocaleDateString):
(JSC::dateProtoFuncToLocaleTimeString):
(JSC::dateProtoFuncGetTime):
(JSC::dateProtoFuncGetFullYear):
(JSC::dateProtoFuncGetUTCFullYear):
(JSC::dateProtoFuncGetMonth):
(JSC::dateProtoFuncGetUTCMonth):
(JSC::dateProtoFuncGetDate):
(JSC::dateProtoFuncGetUTCDate):
(JSC::dateProtoFuncGetDay):
(JSC::dateProtoFuncGetUTCDay):
(JSC::dateProtoFuncGetHours):
(JSC::dateProtoFuncGetUTCHours):
(JSC::dateProtoFuncGetMinutes):
(JSC::dateProtoFuncGetUTCMinutes):
(JSC::dateProtoFuncGetSeconds):
(JSC::dateProtoFuncGetUTCSeconds):
(JSC::dateProtoFuncGetMilliSeconds):
(JSC::dateProtoFuncGetUTCMilliseconds):
(JSC::dateProtoFuncGetTimezoneOffset):
(JSC::dateProtoFuncSetTime):
(JSC::setNewValueFromTimeArgs):
(JSC::setNewValueFromDateArgs):
(JSC::dateProtoFuncSetYear):
(JSC::dateProtoFuncGetYear):
* runtime/ExceptionHelpers.cpp:
(JSC::isTerminatedExecutionException):
* runtime/FunctionPrototype.cpp:
(JSC::functionProtoFuncToString):
* runtime/InternalFunction.h:
(JSC::asInternalFunction):
* runtime/JSArray.h:
(JSC::asArray):
* runtime/JSCJSValue.cpp:
(JSC::JSValue::dumpForBacktrace const):
* runtime/JSCJSValue.h:
* runtime/JSCJSValueInlines.h:
(JSC::JSValue::inherits const):
* runtime/JSCast.h:
(JSC::JSCastingHelpers::inheritsGenericImpl):
(JSC::JSCastingHelpers::inheritsJSTypeImpl):
(JSC::JSCastingHelpers::InheritsTraits::inherits):
(JSC::JSCastingHelpers::inherits):
(JSC::jsDynamicCast):
(JSC::JSCastingHelpers::jsDynamicCastGenericImpl): Deleted.
(JSC::JSCastingHelpers::jsDynamicCastJSTypeImpl): Deleted.
(JSC::JSCastingHelpers::JSDynamicCastTraits::cast): Deleted.
* runtime/JSCell.h:
* runtime/JSCellInlines.h:
(JSC::JSCell::inherits const):
* runtime/JSFunction.cpp:
(JSC::RetrieveCallerFunctionFunctor::operator() const):
(JSC::JSFunction::callerGetter):
(JSC::JSFunction::getOwnNonIndexPropertyNames):
(JSC::JSFunction::reifyLazyBoundNameIfNeeded):
* runtime/JSGlobalObject.cpp:
(JSC::enqueueJob):
* runtime/JSGlobalObject.h:
(JSC::asGlobalObject): Deleted.
* runtime/JSInternalPromiseDeferred.cpp:
(JSC::JSInternalPromiseDeferred::create):
* runtime/JSLexicalEnvironment.h:
(JSC::asActivation):
* runtime/JSONObject.cpp:
(JSC::unwrapBoxedPrimitive):
(JSC::Stringifier::Stringifier):
(JSC::Walker::walk):
* runtime/JSPromise.cpp:
(JSC::JSPromise::resolve):
* runtime/JSPromiseDeferred.cpp:
(JSC::JSPromiseDeferred::create):
* runtime/JSType.h:
* runtime/ProxyObject.h:
(JSC::ProxyObject::create): Deleted.
(JSC::ProxyObject::createStructure): Deleted.
(JSC::ProxyObject::target const): Deleted.
(JSC::ProxyObject::handler const): Deleted.
* runtime/RegExpConstructor.cpp:
(JSC::constructRegExp):
* runtime/RegExpConstructor.h:
(JSC::asRegExpConstructor):
(JSC::isRegExp):
* runtime/RegExpObject.cpp:
(JSC::RegExpObject::finishCreation):
(JSC::RegExpObject::getOwnPropertySlot):
(JSC::RegExpObject::defineOwnProperty):
(JSC::regExpObjectSetLastIndexStrict):
(JSC::regExpObjectSetLastIndexNonStrict):
(JSC::RegExpObject::put):
* runtime/RegExpObject.h:
(JSC::RegExpObject::create): Deleted.
(JSC::RegExpObject::setRegExp): Deleted.
(JSC::RegExpObject::regExp const): Deleted.
(JSC::RegExpObject::setLastIndex): Deleted.
(JSC::RegExpObject::getLastIndex const): Deleted.
(JSC::RegExpObject::test): Deleted.
(JSC::RegExpObject::testInline): Deleted.
(JSC::RegExpObject::createStructure): Deleted.
(JSC::RegExpObject::offsetOfRegExp): Deleted.
(JSC::RegExpObject::offsetOfLastIndex): Deleted.
(JSC::RegExpObject::offsetOfLastIndexIsWritable): Deleted.
(JSC::RegExpObject::allocationSize): Deleted.
(JSC::asRegExpObject): Deleted.
* runtime/RegExpPrototype.cpp:
(JSC::regExpProtoFuncTestFast):
(JSC::regExpProtoFuncExec):
(JSC::regExpProtoFuncMatchFast):
(JSC::regExpProtoFuncCompile):
(JSC::regExpProtoGetterGlobal):
(JSC::regExpProtoGetterIgnoreCase):
(JSC::regExpProtoGetterMultiline):
(JSC::regExpProtoGetterDotAll):
(JSC::regExpProtoGetterSticky):
(JSC::regExpProtoGetterUnicode):
(JSC::regExpProtoGetterSource):
(JSC::regExpProtoFuncSearchFast):
(JSC::regExpProtoFuncSplitFast):
* runtime/StringObject.h:
(JSC::asStringObject): Deleted.
* runtime/StringPrototype.cpp:
(JSC::replaceUsingRegExpSearch):
(JSC::replace):
(JSC::stringProtoFuncReplaceUsingRegExp):
(JSC::stringProtoFuncToString):
* runtime/SymbolPrototype.cpp:
(JSC::symbolProtoFuncToString):
(JSC::symbolProtoFuncValueOf):
* tools/JSDollarVM.cpp:
(WTF::customGetValue):
(WTF::customSetValue):
* wasm/js/JSWebAssemblyHelpers.h:
(JSC::isWebAssemblyHostFunction):
* wasm/js/WebAssemblyWrapperFunction.cpp:
(JSC::WebAssemblyWrapperFunction::create):

Source/WebCore:

* bindings/js/IDBBindingUtilities.cpp:
(WebCore::createIDBKeyFromValue):
* bindings/js/JSDOMConvertDate.cpp:
(WebCore::valueToDate):
* bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::scriptExecutionContext const):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::toWrapped):
* bindings/js/JSEventTargetCustom.cpp:
* bindings/js/JSNodeCustom.cpp:
(WebCore::JSNode::pushEventHandlerScope const):
* bindings/js/JSXPathNSResolverCustom.cpp:
(WebCore::JSXPathNSResolver::toWrapped):
* bindings/js/ScriptState.cpp:
(WebCore::domWindowFromExecState):
(WebCore::scriptExecutionContextFromExecState):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::isArray):
(WebCore::CloneSerializer::isMap):
(WebCore::CloneSerializer::isSet):
(WebCore::CloneSerializer::dumpArrayBufferView):
(WebCore::CloneSerializer::dumpDOMPoint):
(WebCore::CloneSerializer::dumpDOMRect):
(WebCore::CloneSerializer::dumpDOMMatrix):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneDeserializer::CloneDeserializer):
(WebCore::CloneDeserializer::readArrayBufferView):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateOverloadDispatcher):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameterOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnionOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnionsOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnionOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnionOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameterOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunctionOverloadDispatcher):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::JSTestOverloadedConstructorsConstructor::construct):
* bridge/c/c_instance.cpp:
(JSC::Bindings::CInstance::invokeMethod):
* bridge/objc/WebScriptObject.mm:
(+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
* bridge/objc/objc_instance.mm:
(ObjcInstance::invokeMethod):
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::callObjCFallbackObject):
* bridge/runtime_method.cpp:
(JSC::callRuntimeMethod):
* bridge/runtime_object.cpp:
(JSC::Bindings::callRuntimeObject):
(JSC::Bindings::callRuntimeConstructor):
* inspector/WebInjectedScriptHost.cpp:
(WebCore::WebInjectedScriptHost::subtype):
(WebCore::WebInjectedScriptHost::isHTMLAllCollection):

Source/WebKit:

* WebProcess/Plugins/Netscape/JSNPMethod.cpp:
(WebKit::callMethod):
* WebProcess/Plugins/Netscape/JSNPObject.cpp:
(WebKit::callNPJSObject):
(WebKit::constructWithConstructor):
* WebProcess/Plugins/Netscape/NPJSObject.cpp:
(WebKit::NPJSObject::create):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::counterValue):

Source/WebKitLegacy/mac:

* DOM/DOM.mm:
(+[DOMNode _nodeFromJSWrapper:]):
* Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::retainLocalObject):
(WebKit::NetscapePluginInstanceProxy::releaseLocalObject):
* Plugins/Hosted/ProxyInstance.mm:
(WebKit::ProxyInstance::invokeMethod):
* WebView/WebView.mm:
(aeDescFromJSValue):

Source/WebKitLegacy/win:

* WebFrame.cpp:
(WebFrame::stringByEvaluatingJavaScriptInScriptWorld):

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

2 years ago[Win] Use __debugbreak for WTFBreakpointTrap
utatane.tea@gmail.com [Thu, 8 Mar 2018 15:47:21 +0000 (15:47 +0000)]
[Win] Use __debugbreak for WTFBreakpointTrap
https://bugs.webkit.org/show_bug.cgi?id=183450

Reviewed by Mark Lam.

This patch adds WTFBreakpointTrap() implementation for MSVC by using
__debugbreak. It fixes build failure in Windows due to the use of
WTFBreakpointTrap().

* wtf/Assertions.h:

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

2 years ago[GTK] Skip imported/w3c/webdriver/tests/interaction/element_clear.py::test_closed_context
Ms2ger@igalia.com [Thu, 8 Mar 2018 15:06:04 +0000 (15:06 +0000)]
[GTK] Skip imported/w3c/webdriver/tests/interaction/element_clear.py::test_closed_context
https://bugs.webkit.org/show_bug.cgi?id=183452

Unreviewed test gardening.

* TestExpectations.json:

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

2 years agoRemove WebCore::TextureMapperAnimation as a special case in WebKit IPC
zandobersek@gmail.com [Thu, 8 Mar 2018 13:04:04 +0000 (13:04 +0000)]
Remove WebCore::TextureMapperAnimation as a special case in WebKit IPC
generation. Values of this type aren't being transferred across IPC.

Rubber-stamped by Carlos Garcia Campos.

* Scripts/webkit/messages.py:

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

2 years ago[GLib] RunLoop::wakeUp(): use a zero value instead of the monotonic time
zandobersek@gmail.com [Thu, 8 Mar 2018 13:00:31 +0000 (13:00 +0000)]
[GLib] RunLoop::wakeUp(): use a zero value instead of the monotonic time
https://bugs.webkit.org/show_bug.cgi?id=183447

Reviewed by Carlos Garcia Campos.

* wtf/glib/RunLoopGLib.cpp:
(WTF::RunLoop::wakeUp): Micro-optimize the wake-up schedule by using
a zero value as the GSource ready time, instead of retrieving and using
the current monotonic time.

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

2 years ago[iOS] Unskip MathML tests requiring a font with Mathematical Alphanumeric Symbols
commit-queue@webkit.org [Thu, 8 Mar 2018 12:43:03 +0000 (12:43 +0000)]
[iOS] Unskip MathML tests requiring a font with Mathematical Alphanumeric Symbols
https://bugs.webkit.org/show_bug.cgi?id=183445

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2018-03-08

* platform/ios/TestExpectations: Unskip the tests.

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

2 years agoUpdate StyleBench version number in page title to 0.3
antti@apple.com [Thu, 8 Mar 2018 10:58:10 +0000 (10:58 +0000)]
Update StyleBench version number in page title to 0.3

* StyleBench/index.html:

There has been a bunch of changes, most notably the addition of attribute selector test step.

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

2 years ago[iOS] Update PNG expectations for some MathML pixel tests.
fred.wang@free.fr [Thu, 8 Mar 2018 10:51:38 +0000 (10:51 +0000)]
[iOS] Update PNG expectations for some MathML pixel tests.

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2018-03-08

* platform/ios/TestExpectations: Remove ImageOnlyFailure for pixel tests, add reference to
bug 183441 for the reftest.
* platform/ios/mathml/opentype/opentype-stretchy-expected.png: Update expectation.
* platform/ios/mathml/presentation/menclose-notation-values-expected.png: Ditto.
* platform/ios/mathml/presentation/mo-stretch-expected.png: Ditto.
* platform/ios/mathml/presentation/roots-expected.png: Ditto.
* platform/ios/mathml/radical-fallback-expected.png: Ditto.

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

2 years ago[WPE] Update expectations for API tests
Ms2ger@igalia.com [Thu, 8 Mar 2018 10:31:25 +0000 (10:31 +0000)]
[WPE] Update expectations for API tests
https://bugs.webkit.org/show_bug.cgi?id=183434

Unreviewed test gardening.

* TestWebKitAPI/glib/TestExpectations.json:

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

2 years agoDon't have Celestial in minimal simulator configuration
timothy_horton@apple.com [Thu, 8 Mar 2018 09:18:54 +0000 (09:18 +0000)]
Don't have Celestial in minimal simulator configuration
https://bugs.webkit.org/show_bug.cgi?id=183432
<rdar://problem/38252985>

Reviewed by Dan Bernstein.

* wtf/Platform.h:

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

2 years agoStop linking ApplicationServices directly
timothy_horton@apple.com [Thu, 8 Mar 2018 08:28:38 +0000 (08:28 +0000)]
Stop linking ApplicationServices directly
https://bugs.webkit.org/show_bug.cgi?id=182867
<rdar://problem/38252142>

Reviewed by Alex Christensen.

The frameworks that we use that live inside ApplicationServices
have mostly moved out, so import them directly.

Source/WebCore:

* Configurations/WebCore.xcconfig:
* html/canvas/CanvasRenderingContext2D.cpp:
* html/canvas/CanvasRenderingContext2DBase.cpp:
* platform/MIMETypeRegistry.cpp:
* platform/graphics/ComplexTextController.cpp:
* platform/graphics/cg/ColorCG.cpp:
* platform/graphics/cg/ImageDecoderCG.cpp:
* platform/graphics/cg/UTIRegistry.cpp:
* platform/graphics/cocoa/FontCocoa.mm:
* platform/graphics/mac/ComplexTextControllerCoreText.mm:
* platform/graphics/mac/GlyphPageMac.cpp:
* platform/graphics/mac/PDFDocumentImageMac.mm:
* platform/graphics/mac/SimpleFontDataCoreText.cpp:
* platform/graphics/win/FontCGWin.cpp:
* platform/graphics/win/FontCacheWin.cpp:
* platform/graphics/win/FontCustomPlatformData.cpp:
* platform/graphics/win/FontPlatformDataCGWin.cpp:
* platform/graphics/win/ImageCGWin.cpp:
* platform/graphics/win/SimpleFontDataCGWin.cpp:

Source/WebKit:

* Configurations/WebKit.xcconfig:

Source/WebKitLegacy/mac:

* Carbon/CarbonUtils.h:
* WebKitPrefix.h:
* WebView/WebHTMLView.mm:
* WebView/WebPDFView.mm:

Source/WebKitLegacy/win:

* FullscreenVideoController.cpp:

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

2 years ago[Extra zoom mode] Specify password mode as needed when inputting text
wenson_hsieh@apple.com [Thu, 8 Mar 2018 08:16:10 +0000 (08:16 +0000)]
[Extra zoom mode] Specify password mode as needed when inputting text
https://bugs.webkit.org/show_bug.cgi?id=183428
<rdar://problem/37609386>

Reviewed by Tim Horton.

If the focused element is a password field, or the input delegate has forced secure text entry, set a flag on
the text input view controller to opt in to password text input mode.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView presentTextInputViewController:]):

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

2 years agoSort and separate FeatureDefines.xcconfig
timothy_horton@apple.com [Thu, 8 Mar 2018 07:14:42 +0000 (07:14 +0000)]
Sort and separate FeatureDefines.xcconfig
https://bugs.webkit.org/show_bug.cgi?id=183427

Reviewed by Dan Bernstein.

* Configurations/FeatureDefines.xcconfig:
Sort and split FeatureDefines into paragraphs
(to make it easier to sort later).

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

2 years ago[WTF] Set canInitializeWithMemset = true if T is an integral type
utatane.tea@gmail.com [Thu, 8 Mar 2018 06:44:42 +0000 (06:44 +0000)]
[WTF] Set canInitializeWithMemset = true if T is an integral type
https://bugs.webkit.org/show_bug.cgi?id=183357

Reviewed by Darin Adler.

This patch set `canInitializeWithMemset = true` if T is an integral type.
This can offer a chance to use memset if we use UniqueArray<T> where T is
an integral type. We also rename VectorTypeOperations::initialize to
VectorTypeOperations::initializeIfNonPOD, VectorTypeOperations::forceInitialize
to VectorTypeOperations::initialize respectively.

* wtf/RefCountedArray.h:
(WTF::RefCountedArray::RefCountedArray):
* wtf/UniqueArray.h:
* wtf/Vector.h:
(WTF::VectorTypeOperations::initializeIfNonPOD):
(WTF::VectorTypeOperations::initialize):
(WTF::Vector::Vector):
(WTF::Malloc>::resize):
(WTF::Malloc>::grow):
(WTF::VectorTypeOperations::forceInitialize): Deleted.
* wtf/VectorTraits.h:

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