WebKit-https.git
3 years agoUnreviewed, rolling out r191902.
commit-queue@webkit.org [Mon, 2 Nov 2015 19:55:27 +0000 (19:55 +0000)]
Unreviewed, rolling out r191902.
https://bugs.webkit.org/show_bug.cgi?id=150811

This change broke iOS builders (Requested by ryanhaddad on
#webkit).

Reverted changeset:

"Replace iOS-only WebKitSystemInterface calls with SPI"
https://bugs.webkit.org/show_bug.cgi?id=150763
http://trac.webkit.org/changeset/191902

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

3 years agoReplace iOS-only WebKitSystemInterface calls with SPI
aestes@apple.com [Mon, 2 Nov 2015 19:09:09 +0000 (19:09 +0000)]
Replace iOS-only WebKitSystemInterface calls with SPI
https://bugs.webkit.org/show_bug.cgi?id=150763

Reviewed by Darin Adler.

Source/WebCore:

* WebCore.xcodeproj/project.pbxproj:
* config.h: Removed WEBCORE_NAVIGATOR_PLATFORM and WEBCORE_NAVIGATOR_VENDOR.
* css/MediaQueryEvaluator.cpp:
(WebCore::isRunningOnIPhoneOrIPod): Used deviceClass() instead of iosDeviceClass().
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
* html/HTMLObjectElement.cpp:
(WebCore::shouldNotPerformURLAdjustment): Used dyld_get_program_sdk_version() instead of iosExecutableWasLinkedOnOrAfterVersion().
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::webkitSupportsPresentationMode): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
* page/NavigatorBase.cpp:
* page/Settings.h:
* page/ViewportConfiguration.cpp:
(WebCore::ViewportConfiguration::textDocumentParameters): Used screenSize() instead of wkGetScreenSize().
* page/ios/UserAgentIOS.mm:
(WebCore::isClassic): Added to return -[UIApplication _isClassic].
(WebCore::osNameForUserAgent): Upstreamed the implementation of WKGetOSNameForUserAgent() from WebKitSystemInterface.
(WebCore::deviceName): Ditto for wkGetDeviceName().
(WebCore::standardUserAgentWithApplicationName): Called deviceName() and osNameForUserAgent().
* page/mac/SettingsCocoa.mm: Renamed from Source/WebCore/page/mac/SettingsMac.mm.
(WebCore::Settings::defaultMinimumZoomFontSize): Upstreamed the implementation of WKGetMinimumZoomFontSize() from WebKitSystemInterface.
* platform/PlatformScreen.h:
* platform/ios/Device.cpp: Added functions that answer queries about the iOS device from MobileGestalt.
(WebCore::deviceClass):
(WebCore::deviceName):
(WebCore::deviceHasIPadCapability):
* platform/ios/Device.h:
* platform/ios/PlatformScreenIOS.mm:
(WebCore::screenPPIFactor): Used MGGetSInt32Answer() and MGGetFloat32Answer() instead of mobileGestaltFloatValue().
(WebCore::screenSize): Upstreamed the implementation of WKGetScreenSize() from WebKitSystemInterface.
(WebCore::availableScreenSize): Ditto for WKGetAvailableScreenSize().
(WebCore::screenScaleFactor): Ditto for WKGetScreenScaleFactor() and WKGetScaleFactorForScreen().
(WebCore::mobileGestaltFloatValue): Deleted.
* platform/ios/WebCoreSystemInterfaceIOS.h: Removed.
(iosExecutableWasLinkedOnOrAfterVersion): Deleted.
(iosDeviceClass): Deleted.
* platform/ios/WebCoreSystemInterfaceIOS.mm:
* platform/ios/WebVideoFullscreenInterfaceAVKit.h:
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoPictureInPicture): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
(WebCore::supportsPictureInPicture): Upstreamed the implementation of WKIsOptimizedFullscreenSupported() from WebKitSystemInterface.
* platform/ios/wak/WAKWindow.mm:
(-[WAKWindow initWithLayer:]): Used screenScaleFactor() instead of WKGetScreenScaleFactor().
(-[WAKWindow initWithFrame:]): Ditto.
* platform/ios/wak/WKGraphics.mm:
(WKGraphicsCreateImageFromBundleWithName): Ditto.
(WKDrawPatternBitmap): Ditto.
* platform/mac/WebCoreSystemInterface.h:
* platform/spi/cocoa/DynamicLinkerSPI.h: Defined additional DYLD_IOS_VERSION macros.
* platform/spi/ios/MobileGestaltSPI.h: Defined additional MobileGestalt queries, enum MGDeviceClass, MGGetSInt32Answer, and MGGetFloat32Answer.
* platform/spi/ios/UIKitSPI.h: Copied from Source/WebCore/platform/spi/ios/UIColorSPI.h, and added SPI declarations for UIApplication and UIScreen.
* rendering/RenderThemeIOS.mm:

Source/WebKit/ios:

* Misc/WebUIKitSupport.mm:
(linkedOnOrAfterIOS5): Used dyld_get_program_sdk_version() instead of iosExecutableWasLinkedOnOrAfterVersion().
(WebKitGetMinimumZoomFontSize): Used Settings::defaultMinimumZoomFontSize() instead of WKGetMinimumZoomFontSize().
* WebCoreSupport/WebChromeClientIOS.mm:
(WebChromeClientIOS::screenSize): Used screenSize() instead of WKGetScreenSize().

Source/WebKit/mac:

* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Deleted.
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]): Used deviceClass() and Settings::defaultMinimumZoomFontSize() instead of WKGetDeviceClass() and WKGetMinimumZoomFontSize().
* WebView/WebView.mm:
(shouldAllowPictureInPictureMediaPlayback): Used dyld_get_program_sdk_version() instead of iosExecutableWasLinkedOnOrAfterVersion().
(-[WebView _updateScreenScaleFromWindow]): Used screenScaleFactor() instead of WKGetScreenScaleFactor().

Source/WebKit2:

* Platform/ios/AccessibilityIOS.h: Added.
* Platform/ios/AccessibilityIOS.mm: Added.
(WebKit::newAccessibilityRemoteToken): Upstreamed the implementation of WKAXRemoteToken() from WebKitSystemInterface.
* Shared/WebPreferencesDefinitions.h: Used Settings::defaultMinimumZoomFontSize() instead of WKGetMinimumZoomFontSize().
* Shared/WebPreferencesStore.cpp:
* UIProcess/API/Cocoa/WKWebView.mm:
(shouldAllowPictureInPictureMediaPlayback): Used dyld_get_program_sdk_version() instead of iosExecutableWasLinkedOnOrAfterVersion().
(-[WKWebView _takeViewSnapshot]): Used screenScaleFactor() instead of WKGetScreenScaleFactor().
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]): Used deviceClass() instead of WKGetDeviceClass().
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _commonInitializationWithProcessPool:configuration:]): Used screenScaleFactor() instead of WKGetScaleFactorForScreen().
(-[WKContentView _updateForScreen:]): Ditto.
(storeAccessibilityRemoteConnectionInformation): Upstreamed the implementation of WKAXStoreRemoteConnectionInformation() from WebKitSystemInterface.
(-[WKContentView _accessibilityRegisterUIProcessTokens]): Used newAccessibilityRemoteToken() and storeAccessibilityRemoteConnectionInformation() instead of WKAXRemoteToken() and WKAXStoreRemoteConnectionInformation().
* UIProcess/ios/WKContentViewInteraction.mm:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::screenSize): Used screenSize() instead of WKGetScreenSize().
(WebKit::WebPageProxy::availableScreenSize): Used availableScreenSize() instead of WKGetAvailableScreenSize().
(WebKit::WebPageProxy::textAutosizingWidth): Used screenSize() instead of WKGetScreenSize().
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Deleted.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::platformInitializeAccessibility): Used newAccessibilityRemoteToken() instead of WKAXRemoteToken().

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

3 years agoRun sort-Xcode-project-file for the JavaScriptCore project.
bburg@apple.com [Mon, 2 Nov 2015 18:52:44 +0000 (18:52 +0000)]
Run sort-Xcode-project-file for the JavaScriptCore project.

Unreviewed. Many things were out of order following recent B3 commits.

* JavaScriptCore.xcodeproj/project.pbxproj:

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

3 years agosvn-apply should handle unified diffs
dburkart@apple.com [Mon, 2 Nov 2015 18:46:58 +0000 (18:46 +0000)]
svn-apply should handle unified diffs
https://bugs.webkit.org/show_bug.cgi?id=150650

Reviewed by Darin Adler.

* Scripts/VCSUtils.pm:
(parseUnifiedDiffHeader):
This method parses a unified diff header, and returns a information in the
style of parseGitDiffHeader and parseSvnDiffHeader.

(parseDiffHeader):
Teach parseDiffHeader to recognize unified diff headers.

(parseDiff):
Teach parseDiff to recognize unified diffs.

* Scripts/webkitperl/VCSUtils_unittest/parseDiffHeader.pl:
* Scripts/webkitperl/VCSUtils_unittest/parseUnifiedDiffHeader.pl: Added.

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

3 years agoMarking fast/text/multiple-feature-properties.html as flaky on win
ryanhaddad@apple.com [Mon, 2 Nov 2015 18:42:37 +0000 (18:42 +0000)]
Marking fast/text/multiple-feature-properties.html as flaky on win
https://bugs.webkit.org/show_bug.cgi?id=150808

Unreviewed test gardening.

* platform/win/TestExpectations:

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

3 years agostorage/indexeddb/modern/idbobjectstore-get-failures.html is flaky on mac-wk1
beidson@apple.com [Mon, 2 Nov 2015 18:39:17 +0000 (18:39 +0000)]
storage/indexeddb/modern/idbobjectstore-get-failures.html is flaky on mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=150804

Reviewed by Beth Dakin's rubberstamp.

* platform/mac-wk1/TestExpectations:
* storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures.html:
* storage/indexeddb/modern/idbobjectstore-count-failures.html:
* storage/indexeddb/modern/idbobjectstore-get-failures.html:
* storage/indexeddb/modern/idbobjectstore-put-and-clear-failures.html:

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

3 years agoRename op_put_getter_setter to op_put_getter_setter_by_id
utatane.tea@gmail.com [Mon, 2 Nov 2015 18:32:55 +0000 (18:32 +0000)]
Rename op_put_getter_setter to op_put_getter_setter_by_id
https://bugs.webkit.org/show_bug.cgi?id=150773

Reviewed by Mark Lam.

Renaming op_put_getter_setter to op_put_getter_setter_by_id makes this op name consistent with
the other ops' names like op_put_getter_by_id etc.

And to fix build dependencies in Xcode, we added LLIntAssembly.h into Xcode project file.

* JavaScriptCore.xcodeproj/project.pbxproj:
* bytecode/BytecodeList.json:
* bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitPutGetterSetter):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
* jit/JIT.h:
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_put_getter_setter_by_id):
(JSC::JIT::emit_op_put_getter_setter): Deleted.
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_put_getter_setter_by_id):
(JSC::JIT::emit_op_put_getter_setter): Deleted.
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* llint/LLIntSlowPaths.h:
* llint/LowLevelInterpreter.asm:

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

3 years agoMarking imported/w3c/web-platform-tests/XMLHttpRequest/send-timeout-events.htm as...
ryanhaddad@apple.com [Mon, 2 Nov 2015 18:28:18 +0000 (18:28 +0000)]
Marking imported/w3c/web-platform-tests/XMLHttpRequest/send-timeout-events.htm as flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=150806

Unreviewed test gardening.

* platform/mac/TestExpectations:

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

3 years agoAdd objC delegate callback for webProcessDidBecomeResponsive and webProcessDidBecomeU...
commit-queue@webkit.org [Mon, 2 Nov 2015 18:26:39 +0000 (18:26 +0000)]
Add objC delegate callback for webProcessDidBecomeResponsive and webProcessDidBecomeUnresponsive.
https://bugs.webkit.org/show_bug.cgi?id=150778

Add methods into WKNavigationDelegatePrivate to notify WebKit client when web process becomes unresponsive
or responsive, which is reported by WebKit::ResponsivenessTimer.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2015-11-02
Reviewed by Darin Adler.

* UIProcess/API/APINavigationClient.h: Add two new method processDidBecomeResponsive and processDidBecomeUnresponsive
    to NavigationClient; they are called when WebKit::ResponsivenessTimer update its client's state.
(API::NavigationClient::processDidBecomeResponsive):
(API::NavigationClient::processDidBecomeUnresponsive):
* UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Add two new delegate method to WKNavigationDelegatePrivate:
    _webViewWebProcessDidBecomeResponsive: and _webViewWebProcessDidBecomeUnresponsive:
* UIProcess/Cocoa/NavigationState.h: Add new overriding methods processDidBecomeResponsive and processDidBecomeUnresponsive.
    Also add a bool member for each method to indicate if the delegate has implement the related method.
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate): Update the new bool members based on the delegate.
(WebKit::NavigationState::NavigationClient::processDidBecomeResponsive): Send the delegate message to navigationDelegate
    if _webViewWebProcessDidBecomeResponsive: is implemented.
(WebKit::NavigationState::NavigationClient::processDidBecomeUnresponsive): Ditto.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::processDidBecomeUnresponsive): Call navigationClient's processDidBecomeUnresponsive if the page proxy
    has navigationClient.
(WebKit::WebPageProxy::processDidBecomeResponsive):  Call navigationClient's processDidBecomeResponsive if the page proxy
    has navigationClient.

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

3 years agoTapping and holding a link should have a share option
bdakin@apple.com [Mon, 2 Nov 2015 18:24:49 +0000 (18:24 +0000)]
Tapping and holding a link should have a share option
https://bugs.webkit.org/show_bug.cgi?id=150693

Reviewed by Dan Bernstein.

This is a follow-up to the original change. This change fixes non-ascii URLs.
They should maintain their non-ascii characters when they are shared.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView actionSheetAssistant:shareElementWithURL:rect:]):
* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView actionSheetAssistant:shareElementWithURL:rect:]):

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

3 years ago[Win] Add support for the USE_TYPO_METRICS flag
fred.wang@free.fr [Mon, 2 Nov 2015 18:12:21 +0000 (18:12 +0000)]
[Win] Add support for the USE_TYPO_METRICS flag
https://bugs.webkit.org/show_bug.cgi?id=150451

Reviewed by Darin Adler.

Source/WebCore:

Make the Windows backend use the typo metrics when the OS/2 USE_TYPO_METRICS flag is set.

No new tests because this is already tested by fonts/use-typo-metrics-1.html

* platform/graphics/win/SimpleFontDataCGWin.cpp:
(WebCore::Font::platformInit):
* platform/graphics/win/SimpleFontDataCairoWin.cpp:
(WebCore::Font::platformInit):
* platform/graphics/win/SimpleFontDataWin.cpp:
(WebCore::Font::initGDIFont):

LayoutTests:

Remove failure expectation for fonts/use-typo-metrics-1.html on Windows.

* platform/win/TestExpectations:

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

3 years agoMarking the following tests as flaky on win
ryanhaddad@apple.com [Mon, 2 Nov 2015 17:55:24 +0000 (17:55 +0000)]
Marking the following tests as flaky on win
editing/input/reveal-caret-of-multiline-contenteditable.html
editing/input/reveal-caret-of-multiline-input.html
https://bugs.webkit.org/show_bug.cgi?id=150684

Unreviewed test gardening.

* platform/win/TestExpectations:

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

3 years agoMarking storage/indexeddb/modern/idbobjectstore-count-failures.html as flaky on mac-wk1
ryanhaddad@apple.com [Mon, 2 Nov 2015 17:50:06 +0000 (17:50 +0000)]
Marking storage/indexeddb/modern/idbobjectstore-count-failures.html as flaky on mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=150805

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

3 years agoMarking storage/indexeddb/modern/idbobjectstore-get-failures.html as flaky on mac-wk1
ryanhaddad@apple.com [Mon, 2 Nov 2015 17:41:51 +0000 (17:41 +0000)]
Marking storage/indexeddb/modern/idbobjectstore-get-failures.html as flaky on mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=150804

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

3 years agoFix the FTL JIT build with system LLVM on Linux
ossy@webkit.org [Mon, 2 Nov 2015 16:24:41 +0000 (16:24 +0000)]
Fix the FTL JIT build with system LLVM on Linux
https://bugs.webkit.org/show_bug.cgi?id=150795

Reviewed by Filip Pizlo.

.:

* Source/cmake/FindLLVM.cmake:

Source/JavaScriptCore:

* CMakeLists.txt:

Tools:

* efl/install-dependencies:
* gtk/install-dependencies:

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

3 years agoEnable MediaSource::isTypeSupported() to handle the upper-cased MIME type & Codec
commit-queue@webkit.org [Mon, 2 Nov 2015 16:11:45 +0000 (16:11 +0000)]
Enable MediaSource::isTypeSupported() to handle the upper-cased MIME type & Codec
Source/WebCore:

https://bugs.webkit.org/show_bug.cgi?id=150436

Patch by Hyunduk Kim <hyunduk.kim@samsung.com> on 2015-11-02
Reviewed by Darin Adler.

Got the new test case from
https://github.com/w3c/web-platform-tests/blob/master/media-source/mediasource-is-type-supported.html
Tests: http\tests\media\media-source\mediasource-is-type-supported.html

* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::isTypeSupported):

LayoutTests:

I got the changes from
https://github.com/w3c/web-platform-tests/blob/master/media-source/mediasource-is-type-supported.html
https://bugs.webkit.org/show_bug.cgi?id=150436

Patch by Hyunduk Kim <hyunduk.kim@samsung.com> on 2015-11-02
Reviewed by Darin Adler.

* http/tests/media/media-source/mediasource-is-type-supported-expected.txt:
* http/tests/media/media-source/mediasource-is-type-supported.html:
* platform/mac/http/tests/media/media-source/mediasource-is-type-supported-expected.txt:

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

3 years agoRename JSDOMWrapper.impl to JSDOMWrapper.wrapped
youenn.fablet@crf.canon.fr [Mon, 2 Nov 2015 11:44:18 +0000 (11:44 +0000)]
Rename JSDOMWrapper.impl to JSDOMWrapper.wrapped
https://bugs.webkit.org/show_bug.cgi?id=150613

Reviewed by Darin Adler.

Source/WebCore:

Renaming impl to wrapped in classes and binding generated classes.
No change in behavior.

* Modules/plugins/QuickTimePluginReplacement.mm:
(WebCore::JSQuickTimePluginReplacement::timedMetaData):
(WebCore::JSQuickTimePluginReplacement::accessLog):
(WebCore::JSQuickTimePluginReplacement::errorLog):
* bindings/js/JSAttrCustom.cpp:
(WebCore::JSAttr::visitAdditionalChildren):
* bindings/js/JSAudioBufferSourceNodeCustom.cpp:
(WebCore::JSAudioBufferSourceNode::setBuffer):
* bindings/js/JSAudioTrackCustom.cpp:
(WebCore::JSAudioTrack::visitAdditionalChildren):
(WebCore::JSAudioTrack::setKind):
(WebCore::JSAudioTrack::setLanguage):
* bindings/js/JSAudioTrackListCustom.cpp:
(WebCore::JSAudioTrackList::visitAdditionalChildren):
* bindings/js/JSBiquadFilterNodeCustom.cpp:
(WebCore::JSBiquadFilterNode::setType):
* bindings/js/JSCSSRuleCustom.cpp:
(WebCore::JSCSSRule::visitAdditionalChildren):
* bindings/js/JSCSSRuleListCustom.cpp:
(WebCore::JSCSSRuleListOwner::isReachableFromOpaqueRoots):
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::JSCSSStyleDeclaration::visitAdditionalChildren):
(WebCore::getPropertyValueFallback):
(WebCore::cssPropertyGetterPixelOrPosPrefix):
(WebCore::cssPropertyGetter):
(WebCore::JSCSSStyleDeclaration::putDelegate):
(WebCore::JSCSSStyleDeclaration::getPropertyCSSValue):
(WebCore::JSCSSStyleDeclaration::getOwnPropertyNames):
* bindings/js/JSCSSValueCustom.cpp:
(WebCore::JSCSSValueOwner::isReachableFromOpaqueRoots):
(WebCore::JSCSSValueOwner::finalize):
* bindings/js/JSCanvasRenderingContext2DCustom.cpp:
(WebCore::toHTMLCanvasStyle):
(WebCore::JSCanvasRenderingContext2D::strokeStyle):
(WebCore::JSCanvasRenderingContext2D::setStrokeStyle):
(WebCore::JSCanvasRenderingContext2D::fillStyle):
(WebCore::JSCanvasRenderingContext2D::setFillStyle):
(WebCore::JSCanvasRenderingContext2D::webkitLineDash):
(WebCore::JSCanvasRenderingContext2D::setWebkitLineDash):
* bindings/js/JSCanvasRenderingContextCustom.cpp:
(WebCore::JSCanvasRenderingContext::visitAdditionalChildren):
* bindings/js/JSCharacterDataCustom.cpp:
(WebCore::JSCharacterData::before):
(WebCore::JSCharacterData::after):
(WebCore::JSCharacterData::replaceWith):
* bindings/js/JSCommandLineAPIHostCustom.cpp:
(WebCore::JSCommandLineAPIHost::inspectedObject):
(WebCore::JSCommandLineAPIHost::getEventListeners):
(WebCore::JSCommandLineAPIHost::inspect):
(WebCore::JSCommandLineAPIHost::databaseId):
(WebCore::JSCommandLineAPIHost::storageId):
* bindings/js/JSCryptoCustom.cpp:
(WebCore::JSCrypto::getRandomValues):
* bindings/js/JSCryptoKeyCustom.cpp:
(WebCore::JSCryptoKey::algorithm):
* bindings/js/JSCryptoKeyPairCustom.cpp:
(WebCore::JSCryptoKeyPair::visitAdditionalChildren):
* bindings/js/JSCustomEventCustom.cpp:
(WebCore::JSCustomEvent::detail):
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
* bindings/js/JSDOMBinding.cpp:
(WebCore::reportException):
(WebCore::activeDOMWindow):
(WebCore::firstDOMWindow):
* bindings/js/JSDOMFormDataCustom.cpp:
(WebCore::toHTMLFormElementOrNull):
(WebCore::JSDOMFormData::append):
* bindings/js/JSDOMMimeTypeArrayCustom.cpp:
(WebCore::JSDOMMimeTypeArray::nameGetter):
* bindings/js/JSDOMNamedFlowCollectionCustom.cpp:
(WebCore::JSDOMNamedFlowCollection::nameGetter):
* bindings/js/JSDOMPluginArrayCustom.cpp:
(WebCore::JSDOMPluginArray::nameGetter):
* bindings/js/JSDOMPluginCustom.cpp:
(WebCore::JSDOMPlugin::nameGetter):
* bindings/js/JSDOMStringListCustom.cpp:
(WebCore::JSDOMStringList::toWrapped):
* bindings/js/JSDOMStringMapCustom.cpp:
(WebCore::JSDOMStringMap::getOwnPropertySlotDelegate):
(WebCore::JSDOMStringMap::getOwnPropertyNames):
(WebCore::JSDOMStringMap::deleteProperty):
(WebCore::JSDOMStringMap::putDelegate):
* bindings/js/JSDOMTokenListCustom.cpp:
(WebCore::JSDOMTokenList::toggle):
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::shouldAllowAccessFrom):
(WebCore::JSDOMWindowBase::JSDOMWindowBase):
(WebCore::JSDOMWindowBase::updateDocument):
(WebCore::JSDOMWindowBase::scriptExecutionContext):
(WebCore::JSDOMWindowBase::printErrorMessage):
(WebCore::JSDOMWindowBase::supportsProfiling):
(WebCore::JSDOMWindowBase::supportsRichSourceInfo):
(WebCore::JSDOMWindowBase::shouldInterruptScript):
(WebCore::JSDOMWindowBase::shouldInterruptScriptBeforeTimeout):
(WebCore::JSDOMWindowBase::javaScriptRuntimeFlags):
(WebCore::JSDOMWindowBase::moduleLoaderResolve):
(WebCore::JSDOMWindowBase::moduleLoaderFetch):
(WebCore::JSDOMWindowBase::moduleLoaderEvaluate):
* bindings/js/JSDOMWindowBase.h:
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::visitAdditionalChildren):
(WebCore::childFrameGetter):
(WebCore::namedItemGetter):
(WebCore::jsDOMWindowWebKit):
(WebCore::jsDOMWindowIndexedDB):
(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
(WebCore::JSDOMWindow::put):
(WebCore::JSDOMWindow::putByIndex):
(WebCore::JSDOMWindow::deleteProperty):
(WebCore::JSDOMWindow::deletePropertyByIndex):
(WebCore::JSDOMWindow::getEnumerableLength):
(WebCore::JSDOMWindow::getStructurePropertyNames):
(WebCore::JSDOMWindow::getGenericPropertyNames):
(WebCore::JSDOMWindow::getPropertyNames):
(WebCore::JSDOMWindow::getOwnPropertyNames):
(WebCore::JSDOMWindow::defineOwnProperty):
(WebCore::JSDOMWindow::setLocation):
(WebCore::JSDOMWindow::open):
(WebCore::JSDOMWindow::showModalDialog):
(WebCore::JSDOMWindow::postMessage):
(WebCore::JSDOMWindow::setTimeout):
(WebCore::JSDOMWindow::setInterval):
(WebCore::JSDOMWindow::addEventListener):
(WebCore::JSDOMWindow::removeEventListener):
(WebCore::JSDOMWindow::toWrapped):
* bindings/js/JSDOMWindowShell.cpp:
(WebCore::JSDOMWindowShell::setWindow):
(WebCore::JSDOMWindowShell::wrapped):
* bindings/js/JSDOMWindowShell.h:
* bindings/js/JSDOMWrapper.h:
(WebCore::JSDOMWrapper::wrapped):
(WebCore::JSDOMWrapper::JSDOMWrapper):
* bindings/js/JSDataCueCustom.cpp:
(WebCore::JSDataCue::value):
(WebCore::JSDataCue::setValue):
* bindings/js/JSDataTransferCustom.cpp:
(WebCore::JSDataTransfer::types):
* bindings/js/JSDedicatedWorkerGlobalScopeCustom.cpp:
(WebCore::JSDedicatedWorkerGlobalScope::postMessage):
* bindings/js/JSDeviceMotionEventCustom.cpp:
(WebCore::JSDeviceMotionEvent::acceleration):
(WebCore::JSDeviceMotionEvent::accelerationIncludingGravity):
(WebCore::JSDeviceMotionEvent::rotationRate):
(WebCore::JSDeviceMotionEvent::interval):
(WebCore::JSDeviceMotionEvent::initDeviceMotionEvent):
* bindings/js/JSDeviceOrientationEventCustom.cpp:
(WebCore::JSDeviceOrientationEvent::alpha):
(WebCore::JSDeviceOrientationEvent::beta):
(WebCore::JSDeviceOrientationEvent::gamma):
(WebCore::JSDeviceOrientationEvent::webkitCompassHeading):
(WebCore::JSDeviceOrientationEvent::webkitCompassAccuracy):
(WebCore::JSDeviceOrientationEvent::absolute):
(WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
* bindings/js/JSDocumentCustom.cpp:
(WebCore::JSDocument::prepend):
(WebCore::JSDocument::append):
* bindings/js/JSDocumentFragmentCustom.cpp:
(WebCore::JSDocumentFragment::prepend):
(WebCore::JSDocumentFragment::append):
* bindings/js/JSDocumentTypeCustom.cpp:
(WebCore::JSDocumentType::before):
(WebCore::JSDocumentType::after):
(WebCore::JSDocumentType::replaceWith):
* bindings/js/JSElementCustom.cpp:
(WebCore::JSElement::before):
(WebCore::JSElement::after):
(WebCore::JSElement::replaceWith):
(WebCore::JSElement::prepend):
(WebCore::JSElement::append):
* bindings/js/JSEventCustom.cpp:
(WebCore::JSEvent::clipboardData):
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
* bindings/js/JSEventTargetCustom.cpp:
* bindings/js/JSFileReaderCustom.cpp:
(WebCore::JSFileReader::result):
* bindings/js/JSGeolocationCustom.cpp:
(WebCore::JSGeolocation::getCurrentPosition):
(WebCore::JSGeolocation::watchPosition):
* bindings/js/JSHTMLAllCollectionCustom.cpp:
(WebCore::namedItems):
(WebCore::callHTMLAllCollection):
(WebCore::JSHTMLAllCollection::item):
* bindings/js/JSHTMLCanvasElementCustom.cpp:
(WebCore::JSHTMLCanvasElement::getContext):
(WebCore::JSHTMLCanvasElement::probablySupportsContext):
(WebCore::JSHTMLCanvasElement::toDataURL):
* bindings/js/JSHTMLCollectionCustom.cpp:
(WebCore::JSHTMLCollection::nameGetter):
* bindings/js/JSHTMLDocumentCustom.cpp:
(WebCore::JSHTMLDocument::nameGetter):
(WebCore::JSHTMLDocument::all):
(WebCore::findCallingDocument):
(WebCore::JSHTMLDocument::open):
(WebCore::documentWrite):
* bindings/js/JSHTMLElementCustom.cpp:
(WebCore::JSHTMLElement::pushEventHandlerScope):
* bindings/js/JSHTMLFormControlsCollectionCustom.cpp:
(WebCore::namedItems):
* bindings/js/JSHTMLFormElementCustom.cpp:
(WebCore::JSHTMLFormElement::nameGetter):
* bindings/js/JSHTMLFrameElementCustom.cpp:
(WebCore::JSHTMLFrameElement::setLocation):
* bindings/js/JSHTMLFrameSetElementCustom.cpp:
(WebCore::JSHTMLFrameSetElement::nameGetter):
* bindings/js/JSHTMLInputElementCustom.cpp:
(WebCore::JSHTMLInputElement::selectionStart):
(WebCore::JSHTMLInputElement::setSelectionStart):
(WebCore::JSHTMLInputElement::selectionEnd):
(WebCore::JSHTMLInputElement::setSelectionEnd):
(WebCore::JSHTMLInputElement::selectionDirection):
(WebCore::JSHTMLInputElement::setSelectionDirection):
(WebCore::JSHTMLInputElement::setSelectionRange):
* bindings/js/JSHTMLMediaElementCustom.cpp:
(WebCore::JSHTMLMediaElement::setController):
* bindings/js/JSHTMLOptionsCollectionCustom.cpp:
(WebCore::JSHTMLOptionsCollection::nameGetter):
(WebCore::JSHTMLOptionsCollection::setLength):
(WebCore::JSHTMLOptionsCollection::indexSetter):
(WebCore::JSHTMLOptionsCollection::remove):
* bindings/js/JSHTMLSelectElementCustom.cpp:
(WebCore::JSHTMLSelectElement::remove):
(WebCore::JSHTMLSelectElement::indexSetter):
* bindings/js/JSHTMLTemplateElementCustom.cpp:
(WebCore::JSHTMLTemplateElement::content):
* bindings/js/JSHistoryCustom.cpp:
(WebCore::JSHistory::getOwnPropertySlotDelegate):
(WebCore::JSHistory::putDelegate):
(WebCore::JSHistory::deleteProperty):
(WebCore::JSHistory::deletePropertyByIndex):
(WebCore::JSHistory::getOwnPropertyNames):
(WebCore::JSHistory::state):
(WebCore::JSHistory::pushState):
(WebCore::JSHistory::replaceState):
* bindings/js/JSIDBDatabaseCustom.cpp:
(WebCore::JSIDBDatabase::createObjectStore):
* bindings/js/JSIDBObjectStoreCustom.cpp:
(WebCore::JSIDBObjectStore::createIndex):
* bindings/js/JSInspectorFrontendHostCustom.cpp:
(WebCore::JSInspectorFrontendHost::showContextMenu):
* bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::getOwnPropertySlotDelegate):
(WebCore::JSLocation::putDelegate):
(WebCore::JSLocation::deleteProperty):
(WebCore::JSLocation::deletePropertyByIndex):
(WebCore::JSLocation::getOwnPropertyNames):
(WebCore::JSLocation::toStringFunction):
* bindings/js/JSMediaSourceStatesCustom.cpp:
(WebCore::JSMediaSourceStates::width):
(WebCore::JSMediaSourceStates::height):
(WebCore::JSMediaSourceStates::frameRate):
(WebCore::JSMediaSourceStates::aspectRatio):
(WebCore::JSMediaSourceStates::facingMode):
(WebCore::JSMediaSourceStates::volume):
* bindings/js/JSMessageChannelCustom.cpp:
(WebCore::JSMessageChannel::visitAdditionalChildren):
* bindings/js/JSMessageEventCustom.cpp:
(WebCore::JSMessageEvent::data):
(WebCore::handleInitMessageEvent):
* bindings/js/JSMessagePortCustom.cpp:
(WebCore::JSMessagePort::visitAdditionalChildren):
(WebCore::JSMessagePort::postMessage):
* bindings/js/JSMockContentFilterSettingsCustom.cpp:
(WebCore::JSMockContentFilterSettings::decisionPoint):
(WebCore::JSMockContentFilterSettings::setDecisionPoint):
(WebCore::JSMockContentFilterSettings::decision):
(WebCore::JSMockContentFilterSettings::setDecision):
(WebCore::JSMockContentFilterSettings::unblockRequestDecision):
(WebCore::JSMockContentFilterSettings::setUnblockRequestDecision):
* bindings/js/JSMutationObserverCustom.cpp:
(WebCore::JSMutationObserverOwner::isReachableFromOpaqueRoots):
* bindings/js/JSNamedNodeMapCustom.cpp:
(WebCore::JSNamedNodeMap::nameGetter):
* bindings/js/JSNavigatorCustom.cpp:
(WebCore::JSNavigator::webkitGetUserMedia):
* bindings/js/JSNodeCustom.cpp:
(WebCore::JSNodeOwner::isReachableFromOpaqueRoots):
(WebCore::JSNode::insertBefore):
(WebCore::JSNode::replaceChild):
(WebCore::JSNode::removeChild):
(WebCore::JSNode::appendChild):
(WebCore::JSNode::visitAdditionalChildren):
* bindings/js/JSNodeIteratorCustom.cpp:
(WebCore::JSNodeIterator::visitAdditionalChildren):
* bindings/js/JSNodeListCustom.cpp:
(WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
* bindings/js/JSNodeOrString.cpp:
(WebCore::toNodeOrStringVector):
* bindings/js/JSOscillatorNodeCustom.cpp:
(WebCore::JSOscillatorNode::setType):
* bindings/js/JSPannerNodeCustom.cpp:
(WebCore::JSPannerNode::setPanningModel):
(WebCore::JSPannerNode::setDistanceModel):
* bindings/js/JSPluginElementFunctions.cpp:
(WebCore::pluginScriptObjectFromPluginViewBase):
(WebCore::pluginScriptObject):
(WebCore::pluginElementGetCallData):
* bindings/js/JSPopStateEventCustom.cpp:
(WebCore::JSPopStateEvent::state):
* bindings/js/JSRTCStatsResponseCustom.cpp:
(WebCore::JSRTCStatsResponse::nameGetter):
* bindings/js/JSSQLResultSetRowListCustom.cpp:
(WebCore::JSSQLResultSetRowList::item):
* bindings/js/JSSQLTransactionCustom.cpp:
(WebCore::JSSQLTransaction::executeSql):
* bindings/js/JSSVGLengthCustom.cpp:
(WebCore::JSSVGLength::value):
(WebCore::JSSVGLength::setValue):
(WebCore::JSSVGLength::convertToSpecifiedUnits):
* bindings/js/JSStorageCustom.cpp:
(WebCore::JSStorage::nameGetter):
(WebCore::JSStorage::deleteProperty):
(WebCore::JSStorage::getOwnPropertyNames):
(WebCore::JSStorage::putDelegate):
* bindings/js/JSStyleSheetCustom.cpp:
(WebCore::JSStyleSheet::visitAdditionalChildren):
* bindings/js/JSStyleSheetListCustom.cpp:
(WebCore::JSStyleSheetList::nameGetter):
* bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::JSSubtleCrypto::encrypt):
(WebCore::JSSubtleCrypto::decrypt):
(WebCore::JSSubtleCrypto::sign):
(WebCore::JSSubtleCrypto::verify):
(WebCore::JSSubtleCrypto::wrapKey):
(WebCore::JSSubtleCrypto::unwrapKey):
* bindings/js/JSTextTrackCueCustom.cpp:
(WebCore::JSTextTrackCueOwner::isReachableFromOpaqueRoots):
(WebCore::JSTextTrackCue::visitAdditionalChildren):
* bindings/js/JSTextTrackCustom.cpp:
(WebCore::JSTextTrack::visitAdditionalChildren):
(WebCore::JSTextTrack::setKind):
(WebCore::JSTextTrack::setLanguage):
* bindings/js/JSTextTrackListCustom.cpp:
(WebCore::JSTextTrackList::visitAdditionalChildren):
* bindings/js/JSTrackCustom.cpp:
(WebCore::toTrack):
* bindings/js/JSTrackEventCustom.cpp:
(WebCore::JSTrackEvent::track):
* bindings/js/JSTreeWalkerCustom.cpp:
(WebCore::JSTreeWalker::visitAdditionalChildren):
* bindings/js/JSUserMessageHandlersNamespaceCustom.cpp:
(WebCore::JSUserMessageHandlersNamespace::getOwnPropertySlotDelegate):
* bindings/js/JSVideoTrackCustom.cpp:
(WebCore::JSVideoTrack::visitAdditionalChildren):
(WebCore::JSVideoTrack::setKind):
(WebCore::JSVideoTrack::setLanguage):
* bindings/js/JSVideoTrackListCustom.cpp:
(WebCore::JSVideoTrackList::visitAdditionalChildren):
* bindings/js/JSWebGL2RenderingContextCustom.cpp:
(WebCore::JSWebGL2RenderingContext::visitAdditionalChildren):
(WebCore::JSWebGL2RenderingContext::getIndexedParameter):
* bindings/js/JSWebGLRenderingContextBaseCustom.cpp:
(WebCore::getObjectParameter):
(WebCore::JSWebGLRenderingContextBase::visitAdditionalChildren):
(WebCore::JSWebGLRenderingContextBase::getAttachedShaders):
(WebCore::JSWebGLRenderingContextBase::getExtension):
(WebCore::JSWebGLRenderingContextBase::getFramebufferAttachmentParameter):
(WebCore::JSWebGLRenderingContextBase::getParameter):
(WebCore::JSWebGLRenderingContextBase::getProgramParameter):
(WebCore::JSWebGLRenderingContextBase::getShaderParameter):
(WebCore::JSWebGLRenderingContextBase::getSupportedExtensions):
(WebCore::JSWebGLRenderingContextBase::getUniform):
(WebCore::JSWebGLRenderingContextBase::uniform1fv):
(WebCore::JSWebGLRenderingContextBase::uniform1iv):
(WebCore::JSWebGLRenderingContextBase::uniform2fv):
(WebCore::JSWebGLRenderingContextBase::uniform2iv):
(WebCore::JSWebGLRenderingContextBase::uniform3fv):
(WebCore::JSWebGLRenderingContextBase::uniform3iv):
(WebCore::JSWebGLRenderingContextBase::uniform4fv):
(WebCore::JSWebGLRenderingContextBase::uniform4iv):
(WebCore::JSWebGLRenderingContextBase::uniformMatrix2fv):
(WebCore::JSWebGLRenderingContextBase::uniformMatrix3fv):
(WebCore::JSWebGLRenderingContextBase::uniformMatrix4fv):
(WebCore::JSWebGLRenderingContextBase::vertexAttrib1fv):
(WebCore::JSWebGLRenderingContextBase::vertexAttrib2fv):
(WebCore::JSWebGLRenderingContextBase::vertexAttrib3fv):
(WebCore::JSWebGLRenderingContextBase::vertexAttrib4fv):
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::JSWebGLRenderingContext::visitAdditionalChildren):
* bindings/js/JSWorkerCustom.cpp:
(WebCore::JSWorker::postMessage):
(WebCore::constructJSWorker):
* bindings/js/JSWorkerGlobalScopeBase.cpp:
(WebCore::JSWorkerGlobalScopeBase::JSWorkerGlobalScopeBase):
(WebCore::JSWorkerGlobalScopeBase::scriptExecutionContext):
* bindings/js/JSWorkerGlobalScopeBase.h:
(WebCore::JSWorkerGlobalScopeBase::wrapped):
* bindings/js/JSWorkerGlobalScopeCustom.cpp:
(WebCore::JSWorkerGlobalScope::visitAdditionalChildren):
(WebCore::JSWorkerGlobalScope::importScripts):
(WebCore::JSWorkerGlobalScope::setTimeout):
(WebCore::JSWorkerGlobalScope::setInterval):
* bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::JSXMLHttpRequest::visitAdditionalChildren):
(WebCore::JSXMLHttpRequest::open):
(WebCore::JSXMLHttpRequest::send):
(WebCore::JSXMLHttpRequest::responseText):
(WebCore::JSXMLHttpRequest::response):
* bindings/js/JSXPathResultCustom.cpp:
(WebCore::JSXPathResult::visitAdditionalChildren):
* bindings/js/JSXSLTProcessorCustom.cpp:
(WebCore::JSXSLTProcessor::setParameter):
(WebCore::JSXSLTProcessor::getParameter):
(WebCore::JSXSLTProcessor::removeParameter):
* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::execute):
* bindings/js/ScriptCachedFrameData.cpp:
(WebCore::ScriptCachedFrameData::restore):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::clearWindowShell):
(WebCore::ScriptController::collectIsolatedContexts):
* bindings/js/ScriptState.cpp:
(WebCore::domWindowFromExecState):
* bindings/objc/DOM.mm:
(+[DOMNode _nodeFromJSWrapper:]):
* bindings/objc/DOMUtility.mm:
(JSC::createDOMWrapper):
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject _isSafeScript]):
(+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody):
(GenerateHeader):
(GetIndexedGetterExpression):
(GenerateImplementation):
(NativeToJSValue):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectExcitingAttr):
(WebCore::jsTestActiveDOMObjectConstructor):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
(WebCore::JSTestActiveDOMObjectOwner::finalize):
(WebCore::JSTestActiveDOMObject::toWrapped):
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectOwner::finalize):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::toWrapped):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
(WebCore::JSTestCustomNamedGetterOwner::finalize):
(WebCore::JSTestCustomNamedGetter::toWrapped):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::jsTestEventConstructorAttr1):
(WebCore::jsTestEventConstructorAttr2):
(WebCore::JSTestEventConstructorOwner::finalize):
(WebCore::JSTestEventConstructor::toWrapped):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTarget::getOwnPropertySlot):
(WebCore::JSTestEventTarget::getOwnPropertySlotByIndex):
(WebCore::JSTestEventTarget::getOwnPropertyNames):
(WebCore::jsTestEventTargetPrototypeFunctionItem):
(WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
(WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
(WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
(WebCore::JSTestEventTarget::visitChildren):
(WebCore::JSTestEventTargetOwner::isReachableFromOpaqueRoots):
(WebCore::JSTestEventTargetOwner::finalize):
(WebCore::JSTestEventTarget::toWrapped):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::jsTestExceptionName):
(WebCore::JSTestExceptionOwner::finalize):
(WebCore::JSTestException::toWrapped):
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::JSTestGenerateIsReachableOwner::isReachableFromOpaqueRoots):
(WebCore::JSTestGenerateIsReachableOwner::finalize):
(WebCore::JSTestGenerateIsReachable::toWrapped):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::jsTestInterfaceImplementsStr1):
(WebCore::jsTestInterfaceImplementsStr2):
(WebCore::jsTestInterfaceImplementsNode):
(WebCore::jsTestInterfaceSupplementalStr1):
(WebCore::jsTestInterfaceSupplementalStr2):
(WebCore::jsTestInterfaceSupplementalNode):
(WebCore::setJSTestInterfaceImplementsStr2):
(WebCore::setJSTestInterfaceImplementsNode):
(WebCore::setJSTestInterfaceSupplementalStr2):
(WebCore::setJSTestInterfaceSupplementalNode):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod1):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod1):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
(WebCore::JSTestInterfaceOwner::isReachableFromOpaqueRoots):
(WebCore::JSTestInterfaceOwner::finalize):
(WebCore::JSTestInterface::toWrapped):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
(WebCore::JSTestMediaQueryListListenerOwner::finalize):
(WebCore::JSTestMediaQueryListListener::toWrapped):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructorOwner::isReachableFromOpaqueRoots):
(WebCore::JSTestNamedConstructorOwner::finalize):
(WebCore::JSTestNamedConstructor::toWrapped):
* bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::jsTestNodeName):
(WebCore::setJSTestNodeName):
(WebCore::JSTestNode::visitChildren):
* bindings/scripts/test/JS/JSTestNode.h:
* bindings/scripts/test/JS/JSTestNondeterministic.cpp:
(WebCore::jsTestNondeterministicNondeterministicReadonlyAttr):
(WebCore::jsTestNondeterministicNondeterministicWriteableAttr):
(WebCore::jsTestNondeterministicNondeterministicExceptionAttr):
(WebCore::jsTestNondeterministicNondeterministicGetterExceptionAttr):
(WebCore::jsTestNondeterministicNondeterministicSetterExceptionAttr):
(WebCore::setJSTestNondeterministicNondeterministicWriteableAttr):
(WebCore::setJSTestNondeterministicNondeterministicExceptionAttr):
(WebCore::setJSTestNondeterministicNondeterministicGetterExceptionAttr):
(WebCore::setJSTestNondeterministicNondeterministicSetterExceptionAttr):
(WebCore::jsTestNondeterministicPrototypeFunctionNondeterministicZeroArgFunction):
(WebCore::JSTestNondeterministicOwner::finalize):
(WebCore::JSTestNondeterministic::toWrapped):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjReadOnlyLongAttr):
(WebCore::jsTestObjReadOnlyStringAttr):
(WebCore::jsTestObjReadOnlyTestObjAttr):
(WebCore::jsTestObjTestSubObjEnabledBySettingConstructor):
(WebCore::jsTestObjEnumAttr):
(WebCore::jsTestObjByteAttr):
(WebCore::jsTestObjOctetAttr):
(WebCore::jsTestObjShortAttr):
(WebCore::jsTestObjUnsignedShortAttr):
(WebCore::jsTestObjLongAttr):
(WebCore::jsTestObjLongLongAttr):
(WebCore::jsTestObjUnsignedLongLongAttr):
(WebCore::jsTestObjStringAttr):
(WebCore::jsTestObjTestObjAttr):
(WebCore::jsTestObjXMLObjAttr):
(WebCore::jsTestObjCreate):
(WebCore::jsTestObjReflectedStringAttr):
(WebCore::jsTestObjReflectedIntegralAttr):
(WebCore::jsTestObjReflectedUnsignedIntegralAttr):
(WebCore::jsTestObjReflectedBooleanAttr):
(WebCore::jsTestObjReflectedURLAttr):
(WebCore::jsTestObjReflectedCustomIntegralAttr):
(WebCore::jsTestObjReflectedCustomBooleanAttr):
(WebCore::jsTestObjReflectedCustomURLAttr):
(WebCore::jsTestObjTypedArrayAttr):
(WebCore::jsTestObjAttrWithGetterException):
(WebCore::jsTestObjAttrWithSetterException):
(WebCore::jsTestObjStringAttrWithGetterException):
(WebCore::jsTestObjStringAttrWithSetterException):
(WebCore::jsTestObjStrictTypeCheckingAttribute):
(WebCore::jsTestObjOnfoo):
(WebCore::jsTestObjWithScriptStateAttribute):
(WebCore::jsTestObjWithCallWithAndSetterCallWithAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAttribute):
(WebCore::jsTestObjWithScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::jsTestObjConditionalAttr1):
(WebCore::jsTestObjConditionalAttr2):
(WebCore::jsTestObjConditionalAttr3):
(WebCore::jsTestObjCachedAttribute1):
(WebCore::jsTestObjCachedAttribute2):
(WebCore::jsTestObjAnyAttribute):
(WebCore::jsTestObjContentDocument):
(WebCore::jsTestObjMutablePoint):
(WebCore::jsTestObjImmutablePoint):
(WebCore::jsTestObjStrawberry):
(WebCore::jsTestObjStrictFloat):
(WebCore::jsTestObjDescription):
(WebCore::jsTestObjId):
(WebCore::jsTestObjHash):
(WebCore::jsTestObjReplaceableAttribute):
(WebCore::jsTestObjNullableDoubleAttribute):
(WebCore::jsTestObjNullableLongAttribute):
(WebCore::jsTestObjNullableBooleanAttribute):
(WebCore::jsTestObjNullableStringAttribute):
(WebCore::jsTestObjNullableLongSettableAttribute):
(WebCore::jsTestObjNullableStringValue):
(WebCore::jsTestObjAttribute):
(WebCore::jsTestObjAttributeWithReservedEnumType):
(WebCore::jsTestObjPutForwardsAttribute):
(WebCore::jsTestObjPutForwardsNullableAttribute):
(WebCore::setJSTestObjEnumAttr):
(WebCore::setJSTestObjByteAttr):
(WebCore::setJSTestObjOctetAttr):
(WebCore::setJSTestObjShortAttr):
(WebCore::setJSTestObjUnsignedShortAttr):
(WebCore::setJSTestObjLongAttr):
(WebCore::setJSTestObjLongLongAttr):
(WebCore::setJSTestObjUnsignedLongLongAttr):
(WebCore::setJSTestObjStringAttr):
(WebCore::setJSTestObjTestObjAttr):
(WebCore::setJSTestObjXMLObjAttr):
(WebCore::setJSTestObjCreate):
(WebCore::setJSTestObjReflectedStringAttr):
(WebCore::setJSTestObjReflectedIntegralAttr):
(WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
(WebCore::setJSTestObjReflectedBooleanAttr):
(WebCore::setJSTestObjReflectedURLAttr):
(WebCore::setJSTestObjReflectedCustomIntegralAttr):
(WebCore::setJSTestObjReflectedCustomBooleanAttr):
(WebCore::setJSTestObjReflectedCustomURLAttr):
(WebCore::setJSTestObjTypedArrayAttr):
(WebCore::setJSTestObjAttrWithGetterException):
(WebCore::setJSTestObjAttrWithSetterException):
(WebCore::setJSTestObjStringAttrWithGetterException):
(WebCore::setJSTestObjStringAttrWithSetterException):
(WebCore::setJSTestObjStrictTypeCheckingAttribute):
(WebCore::setJSTestObjOnfoo):
(WebCore::setJSTestObjWithScriptStateAttribute):
(WebCore::setJSTestObjWithCallWithAndSetterCallWithAttribute):
(WebCore::setJSTestObjWithScriptExecutionContextAttribute):
(WebCore::setJSTestObjWithScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::setJSTestObjConditionalAttr1):
(WebCore::setJSTestObjConditionalAttr2):
(WebCore::setJSTestObjConditionalAttr3):
(WebCore::setJSTestObjAnyAttribute):
(WebCore::setJSTestObjMutablePoint):
(WebCore::setJSTestObjImmutablePoint):
(WebCore::setJSTestObjStrawberry):
(WebCore::setJSTestObjStrictFloat):
(WebCore::setJSTestObjId):
(WebCore::setJSTestObjNullableLongSettableAttribute):
(WebCore::setJSTestObjNullableStringValue):
(WebCore::setJSTestObjAttributeWithReservedEnumType):
(WebCore::setJSTestObjPutForwardsAttribute):
(WebCore::setJSTestObjPutForwardsNullableAttribute):
(WebCore::jsTestObjPrototypeFunctionVoidMethod):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionByteMethod):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionOctetMethod):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionLongMethod):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethod):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
(WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
(WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgAndDefaultValue):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionSerializedValue):
(WebCore::jsTestObjPrototypeFunctionOptionsObject):
(WebCore::jsTestObjPrototypeFunctionMethodWithException):
(WebCore::jsTestObjPrototypeFunctionPrivateMethod):
(WebCore::jsTestObjPrototypeFunctionAddEventListener):
(WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateVoid):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateVoidException):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContext):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptState):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces):
(WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgAndDefaultValue):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringAndDefaultValue):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackFunctionArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionAndOptionalArg):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod1):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod2):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod3):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod12):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
(WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
(WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
(WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequence):
(WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequence2):
(WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
(WebCore::jsTestObjPrototypeFunctionConvert1):
(WebCore::jsTestObjPrototypeFunctionConvert2):
(WebCore::jsTestObjPrototypeFunctionConvert4):
(WebCore::jsTestObjPrototypeFunctionConvert5):
(WebCore::jsTestObjPrototypeFunctionMutablePointFunction):
(WebCore::jsTestObjPrototypeFunctionImmutablePointFunction):
(WebCore::jsTestObjPrototypeFunctionOrange):
(WebCore::jsTestObjPrototypeFunctionStrictFunction):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
(WebCore::jsTestObjPrototypeFunctionAny):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithExceptionPromise):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentPromise):
(WebCore::JSTestObjOwner::finalize):
(WebCore::JSTestObj::toWrapped):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::JSTestOverloadedConstructorsOwner::finalize):
(WebCore::JSTestOverloadedConstructors::toWrapped):
* bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::JSTestOverrideBuiltins::getOwnPropertyNames):
(WebCore::jsTestOverrideBuiltinsPrototypeFunctionNamedItem):
(WebCore::JSTestOverrideBuiltinsOwner::finalize):
(WebCore::JSTestOverrideBuiltins::toWrapped):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::jsTestSerializedScriptValueInterfaceValue):
(WebCore::jsTestSerializedScriptValueInterfaceReadonlyValue):
(WebCore::jsTestSerializedScriptValueInterfaceCachedValue):
(WebCore::jsTestSerializedScriptValueInterfacePorts):
(WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValue):
(WebCore::setJSTestSerializedScriptValueInterfaceValue):
(WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
(WebCore::JSTestSerializedScriptValueInterfaceOwner::finalize):
(WebCore::JSTestSerializedScriptValueInterface::toWrapped):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsUnsignedLongLongAttr):
(WebCore::jsTestTypedefsImmutableSerializedScriptValue):
(WebCore::jsTestTypedefsAttrWithGetterException):
(WebCore::jsTestTypedefsAttrWithSetterException):
(WebCore::jsTestTypedefsStringAttrWithGetterException):
(WebCore::jsTestTypedefsStringAttrWithSetterException):
(WebCore::setJSTestTypedefsUnsignedLongLongAttr):
(WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
(WebCore::setJSTestTypedefsAttrWithGetterException):
(WebCore::setJSTestTypedefsAttrWithSetterException):
(WebCore::setJSTestTypedefsStringAttrWithGetterException):
(WebCore::setJSTestTypedefsStringAttrWithSetterException):
(WebCore::jsTestTypedefsPrototypeFunctionFunc):
(WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
(WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
(WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
(WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
(WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):
(WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithException):
(WebCore::JSTestTypedefsOwner::finalize):
(WebCore::JSTestTypedefs::toWrapped):
* bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::jsattributeReadonly):
(WebCore::JSattributeOwner::finalize):
(WebCore::JSattribute::toWrapped):
* bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::JSreadonlyOwner::finalize):
(WebCore::JSreadonly::toWrapped):
* bridge/runtime_method.cpp:
(JSC::callRuntimeMethod):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::canAccessInspectedScriptState):

Source/WebKit/mac:

* WebView/WebFrame.mm:
(-[WebFrame _stringByEvaluatingJavaScriptFromString:withGlobalObject:inScriptWorld:]):
* WebView/WebScriptDebugger.mm:
(toWebFrame):

Source/WebKit/win:

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

Source/WebKit2:

* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::frameForContext): Renaming impl() to wrapped().
(WebKit::WebFrame::counterValue): Ditto.

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

3 years ago[EFL] Bump harfbuzz versions to 0.9.35
ossy@webkit.org [Mon, 2 Nov 2015 11:02:13 +0000 (11:02 +0000)]
[EFL] Bump harfbuzz versions to 0.9.35
https://bugs.webkit.org/show_bug.cgi?id=150448

Reviewed by Gyuyoung Kim.

* efl/jhbuild.modules:

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

3 years agoIDL functions and attributes should be JSBuiltin by default if interface is marked...
youenn.fablet@crf.canon.fr [Mon, 2 Nov 2015 11:00:35 +0000 (11:00 +0000)]
IDL functions and attributes should be JSBuiltin by default if interface is marked as JSBuiltinConstructor
https://bugs.webkit.org/show_bug.cgi?id=150438

Reviewed by Darin Adler.

Binding generator is now deducing that function/attribute is JSBuiltin if the interface is marked as JSBuiltin.
One exception is custom setters, getters or functions which remain C++ handled.
Updated streams API IDLs accordingly.

Binding generator knows whether class needs a DOM class by checking whether the interface is marked as JSBuiltin.
Binding generator knows that class uses a JS built-in constructor if marked as JSBuiltin+Constructor.
In particular, JSBuiltIn+CustomConstructor means that a DOM class is not needed and constructor is not JS built-in.

Applied JSBuiltin+CustomConstructor to ReadableStreamReader and ReadableStreamController.
Removing ReadableStreamReader and ReadableStreamController classes.

Removed unneeded "Default" keyword for cancel function in WebIDL.

Added a binding test case.
No change in behavior.

* Modules/streams/ByteLengthQueuingStrategy.idl: Marking interface as JSBuiltin and Constructable.
* Modules/streams/CountQueuingStrategy.idl: Ditto.
* Modules/streams/ReadableStream.idl: Ditto.
* Modules/streams/ReadableStreamController.h: Removed.
* Modules/streams/ReadableStreamController.idl: Marking interface as JSBuiltin and Constructable.
* Modules/streams/ReadableStreamReader.h: Removed.
* Modules/streams/ReadableStreamReader.idl: Marking interface as JSBuiltin and Constructable.
* Modules/streams/WritableStream.idl: Ditto.
* bindings/js/JSReadableStreamPrivateConstructors.cpp:
(WebCore::JSBuiltinReadableStreamReaderPrivateConstructor::createJSObject): Updated according new constructor.
(WebCore::JSBuiltinReadableStreamControllerPrivateConstructor::createJSObject): Ditto.
* bindings/scripts/CodeGeneratorJS.pm:
(NeedsImplementationClass):
(GetAttributeGetterName):
(GetAttributeSetterName):
(GetFunctionName):
(InstanceNeedsVisitChildren):
(GenerateHeader):
(GenerateAttributesHashTable):
(GenerateImplementation):
(GetConstructorTemplateClassName):
(GenerateConstructorDefinition):
(GenerateConstructorHelperMethods):
(IsConstructable):
(ComputeFunctionSpecial):
(IsJSBuiltin):
(IsJSBuiltinConstructor):
(AddJSBuiltinIncludesIfNeeded):
(GetJSBuiltinFunctionName): Deleted.
(GetJSBuiltinFunctionNameFromString): Deleted.
(GetJSBuiltinScopeName): Deleted.
* bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.cpp:
(webkit_dom_test_js_builtin_constructor_set_property):
(webkit_dom_test_js_builtin_constructor_get_property):
(webkit_dom_test_js_builtin_constructor_class_init):
(webkit_dom_test_js_builtin_constructor_test_function):
(webkit_dom_test_js_builtin_constructor_get_test_attribute):
(webkit_dom_test_js_builtin_constructor_set_test_attribute):
* bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.h:
* bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
(WebCore::JSTestJSBuiltinConstructor::JSTestJSBuiltinConstructor):
(WebCore::JSTestJSBuiltinConstructor::getOwnPropertySlot):
(WebCore::jsTestJSBuiltinConstructorTestAttribute):
(WebCore::jsTestJSBuiltinConstructorTestAttributeCustom):
(WebCore::jsTestJSBuiltinConstructorTestAttributeRWCustom):
(WebCore::setJSTestJSBuiltinConstructorTestAttribute):
(WebCore::setJSTestJSBuiltinConstructorTestAttributeRWCustom):
(WebCore::jsTestJSBuiltinConstructorPrototypeFunctionTestFunction):
(WebCore::jsTestJSBuiltinConstructorPrototypeFunctionTestCustomFunction):
(WebCore::JSTestJSBuiltinConstructorOwner::isReachableFromOpaqueRoots):
(WebCore::JSTestJSBuiltinConstructorOwner::finalize):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestJSBuiltinConstructor::toWrapped):
(WebCore::JSTestJSBuiltinConstructorPrototype::createStructure): Deleted.
(WebCore::JSTestJSBuiltinConstructorConstructor::initializeProperties): Deleted.
(WebCore::JSTestJSBuiltinConstructor::createPrototype): Deleted.
(WebCore::JSTestJSBuiltinConstructor::getPrototype): Deleted.
* bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:
(WebCore::JSTestJSBuiltinConstructor::create):
(WebCore::JSTestJSBuiltinConstructor::finishCreation):
(WebCore::wrapperOwner):
(WebCore::toJS):
(WebCore::JSTestJSBuiltinConstructor::createStructure): Deleted.
* bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.h:
* bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.mm:
(-[DOMTestJSBuiltinConstructor testAttribute]):
(-[DOMTestJSBuiltinConstructor setTestAttribute:]):
(-[DOMTestJSBuiltinConstructor testAttributeCustom]):
(-[DOMTestJSBuiltinConstructor testAttributeRWCustom]):
(-[DOMTestJSBuiltinConstructor setTestAttributeRWCustom:]):
(-[DOMTestJSBuiltinConstructor testFunction]):
(-[DOMTestJSBuiltinConstructor testCustomFunction]):
* bindings/scripts/test/TestJSBuiltinConstructor.idl:

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

3 years agoUnreviewed. Bump GTK+ versions numbers.
carlosgc@webkit.org [Mon, 2 Nov 2015 10:33:44 +0000 (10:33 +0000)]
Unreviewed. Bump GTK+ versions numbers.

* Source/cmake/OptionsGTK.cmake:

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

3 years ago[EFL] gnutls-3.3.0 jhbuild module build fails on Ubuntu 15.10
ossy@webkit.org [Mon, 2 Nov 2015 10:26:10 +0000 (10:26 +0000)]
[EFL] gnutls-3.3.0 jhbuild module build fails on Ubuntu 15.10
https://bugs.webkit.org/show_bug.cgi?id=150622

Reviewed by Gyuyoung Kim.

* efl/install-dependencies:
* efl/jhbuild.modules:

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

3 years agoFix EFL jhbuild module build on Ubuntu 15.10
ossy@webkit.org [Mon, 2 Nov 2015 10:22:57 +0000 (10:22 +0000)]
Fix EFL jhbuild module build on Ubuntu 15.10
https://bugs.webkit.org/show_bug.cgi?id=150621

Reviewed by Gyuyoung Kim.

* efl/jhbuild.modules:
* efl/patches/efl-remove-XPrint.patch: Added.

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

3 years ago[GLIB] Remove support for GSocket main loop sources from GMainLoopSource
carlosgc@webkit.org [Mon, 2 Nov 2015 09:33:28 +0000 (09:33 +0000)]
[GLIB] Remove support for GSocket main loop sources from GMainLoopSource
https://bugs.webkit.org/show_bug.cgi?id=150772

Reviewed by Žan Doberšek.

Source/WebKit2:

Add GSocketMonitor class to be used by Connection to monitor the
availability of the socket file descriptor instead of using a
GMainLoopSource.

* Platform/IPC/Connection.h:
* Platform/IPC/glib/GSocketMonitor.cpp: Added.
(IPC::GSocketMonitor::~GSocketMonitor):
(IPC::GSocketMonitor::socketSourceCallback):
(IPC::GSocketMonitor::start):
(IPC::GSocketMonitor::stop):
* Platform/IPC/glib/GSocketMonitor.h: Added.
* Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::platformInvalidate):
(IPC::Connection::open):
* PlatformGTK.cmake:

Source/WTF:

It complicated the code just to make generic what is only used in
one place.

* wtf/glib/GMainLoopSource.cpp:
(WTF::GMainLoopSource::cancel): Deleted.
(WTF::GMainLoopSource::schedule): Deleted.
(WTF::GMainLoopSource::scheduleTimeoutSource): Deleted.
(WTF::GMainLoopSource::scheduleAfterDelay): Deleted.
(WTF::GMainLoopSource::finishVoidCallback): Deleted.
(WTF::GMainLoopSource::voidCallback): Deleted.
(WTF::GMainLoopSource::prepareBoolCallback): Deleted.
* wtf/glib/GMainLoopSource.h:
(WTF::GMainLoopSource::Context::operator=): Deleted.

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

3 years ago[GLIB] Remove delete on destroy GMainLoopSources
carlosgc@webkit.org [Mon, 2 Nov 2015 09:15:39 +0000 (09:15 +0000)]
[GLIB] Remove delete on destroy GMainLoopSources
https://bugs.webkit.org/show_bug.cgi?id=150771

Reviewed by Žan Doberšek.

Source/WTF:

Delete on destroy sources made the GMainLoopSource implementation
more complex and they are currently unused.

* wtf/glib/GMainLoopSource.cpp:
(WTF::GMainLoopSource::boolCallback):
(WTF::GMainLoopSource::create): Deleted.
(WTF::GMainLoopSource::GMainLoopSource): Deleted.
(WTF::GMainLoopSource::cancel): Deleted.
(WTF::GMainLoopSource::scheduleAndDeleteOnDestroy): Deleted.
(WTF::GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy): Deleted.
(WTF::GMainLoopSource::voidCallback): Deleted.
* wtf/glib/GMainLoopSource.h:

Tools:

* TestWebKitAPI/Tests/WTF/glib/GMainLoopSource.cpp:
(TestWebKitAPI::TEST): Remove DeleteOnDestroy unit tests.
* TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:
(WebViewTest::wait): Use g_timeout_add instead of GMainLoopSource.

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

3 years ago[CSS Grid Layout] min-content row does not always shrink
svillar@igalia.com [Mon, 2 Nov 2015 09:02:50 +0000 (09:02 +0000)]
[CSS Grid Layout] min-content row does not always shrink
https://bugs.webkit.org/show_bug.cgi?id=144581

Reviewed by Zalan Bujtas.

Source/WebCore:

Grid items height must be recomputed whenever the grid tracks
change if the items had been previously stretched. In those
cases we have to clear the override height and layout the item
with the new row size.

Tests: fast/css-grid-layout/min-content-row-must-shrink-when-column-grows.html
       fast/css-grid-layout/relayout-indefinite-heights.html

* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::logicalContentHeightForChild):

LayoutTests:

Based on Blink's r191001 by <jfernandez@igalia.com>.

* fast/css-grid-layout/min-content-row-must-shrink-when-column-grows-expected.txt: Added.
* fast/css-grid-layout/min-content-row-must-shrink-when-column-grows.html: Added.
* fast/css-grid-layout/relayout-indefinite-heights-expected.txt: Added.
* fast/css-grid-layout/relayout-indefinite-heights.html: Added.

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

3 years ago[GTK] Use RunLoop in WorkQueue implementation
carlosgc@webkit.org [Mon, 2 Nov 2015 08:41:02 +0000 (08:41 +0000)]
[GTK] Use RunLoop in WorkQueue implementation
https://bugs.webkit.org/show_bug.cgi?id=150770

Reviewed by Darin Adler.

Source/WebKit2:

* Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::open): Get the main context from the WorkQueue Runloop.

Source/WTF:

Instead of using GMainLoop directly. RunLoop already abstracts the
GMainLoop details and uses persistent sources making it more efficient.
For the dispatchAfter implementation we use a helper context class
and a GSource directly, since we are going to get rid of delete on
destroy GMainLoop soon and this is the only place where we still
use them.

* wtf/RunLoop.h:
(WTF::RunLoop::mainContext): Return the GMainContext.
* wtf/WorkQueue.h:
* wtf/glib/WorkQueueGLib.cpp:
(WTF::WorkQueue::platformInitialize): The RunLoop needs to be
created in the worker thread now, so we now use a mutex to wait
until the thread has started and the RunLoop has been created.
(WTF::WorkQueue::platformInvalidate): Stop the RunLoop and wait
until the thread finishes.
(WTF::WorkQueue::dispatch): Use RunLoop::dispatch().
(WTF::DispatchAfterContext::DispatchAfterContext):
(WTF::DispatchAfterContext::~DispatchAfterContext):
(WTF::DispatchAfterContext::dispatch):
(WTF::WorkQueue::dispatchAfter):

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

3 years agoModern IDB: IBDObjectStore.count() support.
beidson@apple.com [Mon, 2 Nov 2015 06:52:50 +0000 (06:52 +0000)]
Modern IDB: IBDObjectStore.count() support.
https://bugs.webkit.org/show_bug.cgi?id=150785

Reviewed by Darin Adler.

Source/WebCore:

Tests: storage/indexeddb/modern/idbobjectstore-count-1.html
       storage/indexeddb/modern/idbobjectstore-count-failures.html

* Modules/indexeddb/client/IDBConnectionToServer.cpp:
(WebCore::IDBClient::IDBConnectionToServer::getCount):
(WebCore::IDBClient::IDBConnectionToServer::didGetCount):
* Modules/indexeddb/client/IDBConnectionToServer.h:
* Modules/indexeddb/client/IDBConnectionToServerDelegate.h:

* Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
(WebCore::IDBClient::IDBObjectStore::count):
(WebCore::IDBClient::IDBObjectStore::doCount):
* Modules/indexeddb/client/IDBObjectStoreImpl.h:

* Modules/indexeddb/client/IDBRequestImpl.cpp:
(WebCore::IDBClient::IDBRequest::setResult):
* Modules/indexeddb/client/IDBRequestImpl.h:

* Modules/indexeddb/client/IDBTransactionImpl.cpp:
(WebCore::IDBClient::IDBTransaction::requestCount):
(WebCore::IDBClient::IDBTransaction::getCountOnServer):
(WebCore::IDBClient::IDBTransaction::didGetCountOnServer):
* Modules/indexeddb/client/IDBTransactionImpl.h:

* Modules/indexeddb/server/IDBBackingStore.h:

* Modules/indexeddb/server/IDBConnectionToClient.cpp:
(WebCore::IDBServer::IDBConnectionToClient::didGetCount):
* Modules/indexeddb/server/IDBConnectionToClient.h:
* Modules/indexeddb/server/IDBConnectionToClientDelegate.h:

* Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::getCount):
* Modules/indexeddb/server/IDBServer.h:

* Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
(WebCore::IDBServer::MemoryIDBBackingStore::getCount):
* Modules/indexeddb/server/MemoryIDBBackingStore.h:

* Modules/indexeddb/server/MemoryObjectStore.cpp:
(WebCore::IDBServer::MemoryObjectStore::countForKeyRange):
(WebCore::IDBServer::MemoryObjectStore::valueForKeyRange):
(WebCore::IDBServer::MemoryObjectStore::lowestKeyWithRecordInRange):
* Modules/indexeddb/server/MemoryObjectStore.h:

* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::storeCallback):
(WebCore::IDBServer::UniqueIDBDatabase::getCount):
(WebCore::IDBServer::UniqueIDBDatabase::performGetCount):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformGetCount):
(WebCore::IDBServer::UniqueIDBDatabase::performCountCallback):
* Modules/indexeddb/server/UniqueIDBDatabase.h:

* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getCount):
* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:

* Modules/indexeddb/shared/IDBResultData.cpp:
(WebCore::IDBResultData::IDBResultData):
(WebCore::IDBResultData::getCountSuccess):
* Modules/indexeddb/shared/IDBResultData.h:
(WebCore::IDBResultData::resultInteger):

* Modules/indexeddb/shared/InProcessIDBServer.cpp:
(WebCore::InProcessIDBServer::didGetCount):
(WebCore::InProcessIDBServer::getCount):
* Modules/indexeddb/shared/InProcessIDBServer.h:

LayoutTests:

* storage/indexeddb/modern/idbobjectstore-count-1-expected.txt: Added.
* storage/indexeddb/modern/idbobjectstore-count-1.html: Added.
* storage/indexeddb/modern/idbobjectstore-count-failures-expected.txt: Added.
* storage/indexeddb/modern/idbobjectstore-count-failures.html: Added.

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

3 years agoTidy handling of type=color in HTMLInputElement a bit
darin@apple.com [Mon, 2 Nov 2015 06:01:37 +0000 (06:01 +0000)]
Tidy handling of type=color in HTMLInputElement a bit
https://bugs.webkit.org/show_bug.cgi?id=150786

Reviewed by Andreas Kling.

* html/ColorInputType.cpp: Fix formatting.
(WebCore::ColorInputType::fallbackValue): Use ASCIILiteral for slightly
better performance.
(WebCore::ColorInputType::sanitizeValue): Use convertToASCIILowercase,
since there is no need for the general purpose Unicode lowercasing here;
those non-ASCII characters aren't allowed by isValidColorString.
(WebCore::ColorInputType::suggestions): Rewrote data list code to remove
peculiarities such as using a null check to terminate the loop instead of
the collection length, calling back to HTMLInputElement just to get the
isValidColorString function called. Also used reserveInitialCapacity and
uncheckedAppend for better memory use in the result vector.
(WebCore::ColorInputType::selectColor): Added.

* html/ColorInputType.h: Made derivation from ColorChooserClient private.
Made most functions private. Added overrides for valueAsColor and selectColor,
now both virtual functions in InputType.

* html/HTMLInputElement.cpp: Removed now-unneeded include of ColorInputType.h.
(WebCore::HTMLInputElement::valueAsColor): Added. Calls through to the InputType.
In a later patch, will be used by accessibility code to get the color so it
does not have to replicate the color parsing logic from this element.
(WebCore::HTMLInputElement::selectColor): Renamed from selectColorInColorChooser,
because the longer name is not clearer. Also made this non-conditional.

* html/HTMLInputElement.h: Added valueAsColor, renamed selectColorInColorChooser
to selectColor and made it available unconditionally.

* html/InputType.cpp:
(WebCore::InputType::valueAsColor): Added. Returns transparent color.
(WebCore::InputType::selectColor): Added. Does nothing by default.

* html/InputType.h: Added virtual valueAsColor and selectColor. Also tidied
up the header a bit and removed unneeded Noncopyable (since this class has
a reference for one of the data members and so is intrinsically not copyable).
Made isColorControl available unconditionally.

* testing/Internals.cpp:
(WebCore::Internals::selectColorInColorChooser): Removed conditionals and
made this call selectColor rather than selectColorInColorChooser.

* testing/Internals.h: Made selectColorInColorChooser unconditional.

* testing/Internals.idl: Made selectColorInColorChooser unconditionally
present. Not important to optimize the test internals class by leaving it
out when INPUT_TYPE_COLOR is not enabled.

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

3 years ago[ES6] Support Generator Syntax
utatane.tea@gmail.com [Mon, 2 Nov 2015 05:46:17 +0000 (05:46 +0000)]
[ES6] Support Generator Syntax
https://bugs.webkit.org/show_bug.cgi?id=150769

Reviewed by Geoffrey Garen.

.:

Added ENABLE_ES6_GENERATORS flag.

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

Source/JavaScriptCore:

This patch implements syntax part of ES6 Generators.

1. Add ENABLE_ES6_GENERATORS compile time flag. It is disabled by default, and will be enabled once ES6 generator functionality is implemented.
2. Add lexer support for YIELD. It changes "yield" from reserved-if-strict word to keyword. And it is correct under the ES6 spec.
3. Implement parsing functionality and YieldExprNode stub. YieldExprNode does not emit meaningful bytecodes yet. This should be implemented in the future patch.
4. Accept "yield" Identifier as an label etc. under sloppy mode && non-generator code. http://ecma-international.org/ecma-262/6.0/#sec-generator-function-definitions-static-semantics-early-errors

* Configurations/FeatureDefines.xcconfig:
* bytecompiler/NodesCodegen.cpp:
(JSC::YieldExprNode::emitBytecode):
* parser/ASTBuilder.h:
(JSC::ASTBuilder::createYield):
* parser/Keywords.table:
* parser/NodeConstructors.h:
(JSC::YieldExprNode::YieldExprNode):
* parser/Nodes.h:
* parser/Parser.cpp:
(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseStatementListItem):
(JSC::Parser<LexerType>::parseVariableDeclarationList):
(JSC::Parser<LexerType>::parseDestructuringPattern):
(JSC::Parser<LexerType>::parseBreakStatement):
(JSC::Parser<LexerType>::parseContinueStatement):
(JSC::Parser<LexerType>::parseTryStatement):
(JSC::Parser<LexerType>::parseStatement):
(JSC::stringForFunctionMode):
(JSC::Parser<LexerType>::parseFunctionParameters):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseExpressionOrLabelStatement):
(JSC::Parser<LexerType>::parseExportDeclaration):
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parseYieldExpression):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parsePropertyMethod):
(JSC::Parser<LexerType>::parseGetterSetter):
(JSC::Parser<LexerType>::parseFunctionExpression):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseArrowFunctionExpression):
* parser/Parser.h:
(JSC::Scope::Scope):
(JSC::Scope::setSourceParseMode):
(JSC::Scope::isGenerator):
(JSC::Scope::setIsFunction):
(JSC::Scope::setIsGenerator):
(JSC::Scope::setIsModule):
(JSC::Parser::pushScope):
(JSC::Parser::isYIELDMaskedAsIDENT):
(JSC::Parser::matchSpecIdentifier):
(JSC::Parser::saveState):
(JSC::Parser::restoreState):
* parser/ParserModes.h:
(JSC::isFunctionParseMode):
(JSC::isModuleParseMode):
(JSC::isProgramParseMode):
* parser/ParserTokens.h:
* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createYield):
* tests/stress/generator-methods.js: Added.
(Hello.prototype.gen):
(Hello.gen):
(Hello):
(Hello.prototype.set get string_appeared_here):
(Hello.string_appeared_here):
(Hello.prototype.20):
(Hello.20):
(Hello.prototype.42):
(Hello.42):
(let.object.gen):
(let.object.set get string_appeared_here):
(let.object.20):
(let.object.42):
* tests/stress/generator-syntax.js: Added.
(testSyntax):
(testSyntaxError):
(testSyntaxError.Hello.prototype.get gen):
(testSyntaxError.Hello):
(SyntaxError.Unexpected.token.string_appeared_here.Expected.an.opening.string_appeared_here.before.a.method.testSyntaxError.Hello.prototype.set gen):
(SyntaxError.Unexpected.token.string_appeared_here.Expected.an.opening.string_appeared_here.before.a.method.testSyntaxError.Hello):
(SyntaxError.Unexpected.token.string_appeared_here.Expected.an.opening.string_appeared_here.before.a.method.testSyntaxError.gen):
(testSyntaxError.value):
(testSyntaxError.gen.ng):
(testSyntaxError.gen):
(testSyntax.gen):
* tests/stress/yield-and-line-terminator.js: Added.
(testSyntax):
(testSyntaxError):
(testSyntax.gen):
(testSyntaxError.gen):
* tests/stress/yield-label-generator.js: Added.
(testSyntax):
(testSyntaxError):
(testSyntaxError.test):
(SyntaxError.Unexpected.keyword.string_appeared_here.Expected.an.identifier.as.the.target.a.continue.statement.testSyntax.test):
* tests/stress/yield-label.js: Added.
(yield):
(testSyntaxError):
(testSyntaxError.test):
* tests/stress/yield-named-accessors-generator.js: Added.
(t1.let.object.get yield):
(t1.let.object.set yield):
(t1):
(t2.let.object.get yield):
(t2.let.object.set yield):
(t2):
* tests/stress/yield-named-accessors.js: Added.
(t1.let.object.get yield):
(t1.let.object.set yield):
(t1):
(t2.let.object.get yield):
(t2.let.object.set yield):
(t2):
* tests/stress/yield-named-variable-generator.js: Added.
(testSyntax):
(testSyntaxError):
(testSyntaxError.t1):
(testSyntaxError.t1.yield):
(testSyntax.t1.yield):
(testSyntax.t1):
* tests/stress/yield-named-variable.js: Added.
(testSyntax):
(testSyntaxError):
(testSyntax.t1):
(testSyntaxError.t1):
(testSyntax.t1.yield):
(testSyntaxError.t1.yield):
* tests/stress/yield-out-of-generator.js: Added.
(testSyntax):
(testSyntaxError):
(testSyntaxError.hello):
(testSyntaxError.gen.hello):
(testSyntaxError.gen):
(testSyntax.gen):
(testSyntax.gen.ok):
(testSyntaxError.gen.ok):

Source/WebCore:

Added ENABLE_ES6_GENERATORS flag.

* Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

Added ENABLE_ES6_GENERATORS flag.

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

Added ENABLE_ES6_GENERATORS flag.

* Configurations/FeatureDefines.xcconfig:

Source/WTF:

Added ENABLE_ES6_GENERATORS flag.

* wtf/FeatureDefines.h:

Tools:

Added ENABLE_ES6_GENERATORS flag.

* Scripts/webkitperl/FeatureList.pm:

WebKitLibraries:

Added ENABLE_ES6_GENERATORS flag.

* win/tools/vsprops/FeatureDefines.props:
* win/tools/vsprops/FeatureDefinesCairo.props:

LayoutTests:

Change "yield" from reserved-if-strict word to keyword.
http://ecma-international.org/ecma-262/6.0/#sec-keywords

* js/dom/reserved-words-as-property-expected.txt:
* js/keywords-and-reserved_words-expected.txt:
* js/let-syntax-expected.txt:
* js/reserved-words-strict-expected.txt:
* js/script-tests/keywords-and-reserved_words.js:
* js/script-tests/reserved-words-strict.js:

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

3 years agoASCIICType refinements
darin@apple.com [Mon, 2 Nov 2015 02:47:59 +0000 (02:47 +0000)]
ASCIICType refinements
https://bugs.webkit.org/show_bug.cgi?id=150787

Reviewed by Geoffrey Garen.

Refined ASCIICType.h by using narrower types. The most valuable part of this
is the part where the result of toASCIIHexValue is uint8_t instead of int;
that's slightly better for RGB values that the compiler needs to know fit
into a byte (coming in some Color work I plan to do soon).

* wtf/ASCIICType.h: Used CharacterType instead of CharType throughout, and
also sorted the using declarations at the bottom of the header.
(WTF::isASCII): Use the name "character" instead of "c".
(WTF::isASCIIAlpha): Ditto. Also use isASCIILower and toASCIILowerUnchecked
instead of writing it out.
(WTF::isASCIIDigit): Ditto.
(WTF::isASCIIAlphanumeric): Ditto.
(WTF::isASCIIHexDigit): Ditto. Also use toASCIILowerUnchecked instead of
writing it out.
(WTF::isASCIILower): Ditto.
(WTF::isASCIIBinaryDigit): Ditto. Also removed unneeded parentheses to match
the style of the rest of the file.
(WTF::isASCIIOctalDigit): Ditto.
(WTF::isASCIIPrintable): Ditto.
(WTF::isASCIISpace): Ditto.
(WTF::isASCIIUpper): Ditto.
(WTF::toASCIILower): Ditto. Also use isASCIIUpper instead of writing it out.
(WTF::toASCIILowerUnchecked): Tweaked comment.
(WTF::toASCIIUpper): Ditto. Also use isASCIILower instead of writing it out.
(WTF::toASCIIHexValue): Ditto. Also change return type from int to uint8_t.
Also broke a single assertion with && into two separate assertions and got
rid of unnnecessary masking with 0xF0 after shifting left. Also renamed
arguments for the two argument value so they are more sensible.
(WTF::lowerNibbleToASCIIHexDigit): Changed argument type to uint8_t, since
this function does not take a character. Also called it "value" instead of "c".
Also slightly tweaked how the expression is written.
(WTF::upperNibbleToASCIIHexDigit): Ditto. Using the more specific type also
got rid of the need to explicitly mask in this function.
(WTF::isASCIIAlphaCaselessEqual): Renamed the arguments for greater clarity.
With the new clearer argument names, the comment was superfluous.

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

3 years agoAdd an option to make the graphics benchmark runs a specific test with fixed complexity
commit-queue@webkit.org [Mon, 2 Nov 2015 02:31:02 +0000 (02:31 +0000)]
Add an option to make the graphics benchmark runs a specific test with fixed complexity
https://bugs.webkit.org/show_bug.cgi?id=150529

Patch by Said Abou-Hallawa <sabouhallawa@apple,com> on 2015-11-01
Reviewed by Darin Adler.

Beside each test in the suites tree, we are going to show the complexity
arithmetic mean of the of the last run in an edit control. Based on a
new option these edit controls will all be visible or hidden. If they are
visible their values can be changed. The benchmark runner if it run in
the non-adaptive mode will set the complexity of the test to the passed
value and will not change it ever. The animator will animate the test and
frame rate will also be measured.

* Animometer/runner/animometer.html: Add a new option for the non-adaptive mode.

* Animometer/runner/resources/animometer.css:
(section#home input[type="number"]): Define the width of all the edit control in the <home> section.
(section#home > suites input[type="number"]): The edit controls in the <suites> box will be right aligned and hidden by default.
(section#home > suites input[type="number"].selected): When the class "selected" is added, the edit controls will be visible.
(section#home > options > label > input[type="number"]): Deleted.

* Animometer/runner/resources/animometer.js:
(window.benchmarkRunnerClient.didFinishLastIteration): Update the local storage with the results of each test.
(window.optionsManager._adaptiveTestElement): Returns the checkbox for setting the adaptive test option.
(window.suitesManager._editElement):  Returns the edit element associated with each test element in the suites tree.
(window.suitesManager._editsElements): Returns a list of all the elements in the <suites> box.
(window.suitesManager._localStorageNameForTest): Change this function to take strings.
(window.suitesManager._createTestElement): Adds an edit control beside each test.
(window.suitesManager.updateEditsElementsState): Adds/Removes the 'selected' class to/from all the tests edit elements.
(window.suitesManager.updateUIFromLocalStorage): Reads the edit control value from the local storage.
(window.suitesManager.updateLocalStorageFromUI): Saves the edit control value to the local storage.
(window.suitesManager.updateLocalStorageFromJSON): Saves the last run results to the local storage.
(window.benchmarkController.initialize): Shows/Hides the test edit controls based on the adaptive test option.
(window.benchmarkController.onChangeAdaptiveTestCheckbox): An onchange event handler for the adaptive test checkbox.

* Animometer/tests/resources/main.js:
(Benchmark.prototype.update): Fix the complexity of the test if the running mode is non-adaptive test and desired complexity is not zero.
(window.runBenchmark): Add the test complexity as a new benchmark option.

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

3 years agoUse convenience function in sandbox profile
bfulgham@apple.com [Mon, 2 Nov 2015 01:01:28 +0000 (01:01 +0000)]
Use convenience function in sandbox profile
https://bugs.webkit.org/show_bug.cgi?id=150732
<rdar://problem/23287894>

Reviewed by Alexey Proskuryakov.

* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: Switch to
the 'awd-log-directory' convenience function.

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

3 years agoClean up some CSS & Font code
mmaxfield@apple.com [Mon, 2 Nov 2015 00:52:46 +0000 (00:52 +0000)]
Clean up some CSS & Font code
https://bugs.webkit.org/show_bug.cgi?id=150767

Reviewed by Darin Adler.

This patch migrates some CSS code to use references instead of pointers.
It also migrates some Font code to use RefPtr instead of PassRefPtr.

No new tests because there is no behavior change.

* css/CSSDefaultStyleSheets.cpp:
(WebCore::CSSDefaultStyleSheets::loadFullDefaultStyle):
(WebCore::CSSDefaultStyleSheets::loadSimpleDefaultStyle):
(WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
* css/CSSFontSelector.cpp:
(WebCore::createFontFace):
(WebCore::CSSFontSelector::addFontFaceRule):
* css/CSSFontSelector.h:
* css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::initUserStyle):
(WebCore::DocumentRuleSets::collectRulesFromUserStyleSheets):
(WebCore::DocumentRuleSets::appendAuthorStyleSheets):
* css/RuleSet.cpp:
(WebCore::RuleSet::addChildRules):
(WebCore::RuleSet::addRulesFromSheet):
* css/RuleSet.h:
* css/StyleInvalidationAnalysis.cpp:
(WebCore::StyleInvalidationAnalysis::StyleInvalidationAnalysis):
* platform/graphics/Font.cpp:
(WebCore::Font::verticalRightOrientationFont):
(WebCore::Font::uprightOrientationFont):
(WebCore::Font::smallCapsFont):
(WebCore::Font::emphasisMarkFont):
(WebCore::Font::brokenIdeographFont):
(WebCore::Font::nonSyntheticItalicFont):
(WebCore::Font::createScaledFont):
* platform/graphics/Font.h:
(WebCore::Font::variantFont):
* platform/graphics/cocoa/FontCocoa.mm:
(WebCore::Font::platformCreateScaledFont):
* svg/SVGFontFaceElement.h:

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

3 years agoDominators should be factored out of the DFG
fpizlo@apple.com [Mon, 2 Nov 2015 00:48:03 +0000 (00:48 +0000)]
Dominators should be factored out of the DFG
https://bugs.webkit.org/show_bug.cgi?id=150764

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Factored DFGDominators.h/DFGDominators.cpp into WTF. To do this, I made two changes to the
DFG:

1) DFG now has a CFG abstraction called DFG::CFG. The cool thing about this is that in the
   future if we wanted to support inverted dominators, we could do it by just creating a
   DFG::BackwardCFG.

2) Got rid of DFG::Analysis. From now on, an Analysis being invalidated is expressed by the
   DFG::Graph having a null pointer for that analysis. When we "run" the analysis, we
   just instantiate it. This makes it much more natural to integrate WTF::Dominators into
   the DFG.

* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* dfg/DFGAnalysis.h: Removed.
* dfg/DFGCFG.h: Added.
(JSC::DFG::CFG::CFG):
(JSC::DFG::CFG::root):
(JSC::DFG::CFG::newMap<T>):
(JSC::DFG::CFG::successors):
(JSC::DFG::CFG::predecessors):
(JSC::DFG::CFG::index):
(JSC::DFG::CFG::node):
(JSC::DFG::CFG::numNodes):
(JSC::DFG::CFG::dump):
* dfg/DFGCSEPhase.cpp:
* dfg/DFGDisassembler.cpp:
(JSC::DFG::Disassembler::createDumpList):
* dfg/DFGDominators.cpp: Removed.
* dfg/DFGDominators.h:
(JSC::DFG::Dominators::Dominators):
(JSC::DFG::Dominators::strictlyDominates): Deleted.
(JSC::DFG::Dominators::dominates): Deleted.
(JSC::DFG::Dominators::immediateDominatorOf): Deleted.
(JSC::DFG::Dominators::forAllStrictDominatorsOf): Deleted.
(JSC::DFG::Dominators::forAllDominatorsOf): Deleted.
(JSC::DFG::Dominators::forAllBlocksStrictlyDominatedBy): Deleted.
(JSC::DFG::Dominators::forAllBlocksDominatedBy): Deleted.
(JSC::DFG::Dominators::forAllBlocksInDominanceFrontierOf): Deleted.
(JSC::DFG::Dominators::forAllBlocksInIteratedDominanceFrontierOf): Deleted.
(JSC::DFG::Dominators::forAllBlocksInPrunedIteratedDominanceFrontierOf): Deleted.
(JSC::DFG::Dominators::forAllBlocksInDominanceFrontierOfImpl): Deleted.
(JSC::DFG::Dominators::forAllBlocksInIteratedDominanceFrontierOfImpl): Deleted.
(JSC::DFG::Dominators::BlockData::BlockData): Deleted.
* dfg/DFGEdgeDominates.h:
(JSC::DFG::EdgeDominates::operator()):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::dumpBlockHeader):
(JSC::DFG::Graph::invalidateCFG):
(JSC::DFG::Graph::substituteGetLocal):
(JSC::DFG::Graph::handleAssertionFailure):
(JSC::DFG::Graph::ensureDominators):
(JSC::DFG::Graph::ensurePrePostNumbering):
(JSC::DFG::Graph::ensureNaturalLoops):
(JSC::DFG::Graph::valueProfileFor):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::hasDebuggerEnabled):
* dfg/DFGLICMPhase.cpp:
(JSC::DFG::LICMPhase::run):
(JSC::DFG::LICMPhase::attemptHoist):
* dfg/DFGLoopPreHeaderCreationPhase.cpp:
(JSC::DFG::createPreHeader):
(JSC::DFG::LoopPreHeaderCreationPhase::run):
* dfg/DFGNaturalLoops.cpp:
(JSC::DFG::NaturalLoop::dump):
(JSC::DFG::NaturalLoops::NaturalLoops):
(JSC::DFG::NaturalLoops::~NaturalLoops):
(JSC::DFG::NaturalLoops::loopsOf):
(JSC::DFG::NaturalLoops::computeDependencies): Deleted.
(JSC::DFG::NaturalLoops::compute): Deleted.
* dfg/DFGNaturalLoops.h:
(JSC::DFG::NaturalLoops::numLoops):
* dfg/DFGNode.h:
(JSC::DFG::Node::SuccessorsIterable::end):
(JSC::DFG::Node::SuccessorsIterable::size):
(JSC::DFG::Node::SuccessorsIterable::at):
(JSC::DFG::Node::SuccessorsIterable::operator[]):
* dfg/DFGOSREntrypointCreationPhase.cpp:
(JSC::DFG::OSREntrypointCreationPhase::run):
* dfg/DFGObjectAllocationSinkingPhase.cpp:
* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
* dfg/DFGPrePostNumbering.cpp:
(JSC::DFG::PrePostNumbering::PrePostNumbering):
(JSC::DFG::PrePostNumbering::~PrePostNumbering):
(JSC::DFG::PrePostNumbering::compute): Deleted.
* dfg/DFGPrePostNumbering.h:
(JSC::DFG::PrePostNumbering::preNumber):
(JSC::DFG::PrePostNumbering::postNumber):
* dfg/DFGPutStackSinkingPhase.cpp:
* dfg/DFGSSACalculator.cpp:
(JSC::DFG::SSACalculator::nonLocalReachingDef):
(JSC::DFG::SSACalculator::reachingDefAtTail):
* dfg/DFGSSACalculator.h:
(JSC::DFG::SSACalculator::computePhis):
* dfg/DFGSSAConversionPhase.cpp:
(JSC::DFG::SSAConversionPhase::run):
* ftl/FTLLink.cpp:
(JSC::FTL::link):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::LowerDFGToLLVM::lower):
(JSC::FTL::DFG::LowerDFGToLLVM::safelyInvalidateAfterTermination):
(JSC::FTL::DFG::LowerDFGToLLVM::isValid):

Source/WTF:

This takes what used to be DFGDominators.h/DFGDominators.cpp and turns it into a generic
algorithm that can take any abstract graph. The idea is that you create Dominators<CFG> and
pass it a CFG object, which defines the types of graph nodes and methods for getting
successors, predecessors, etc. The DFG now defines a class called CFG, which is a wrapper for
DFG::Graph that conforms to the thing that wtf/Dominators.h expects.

When doing things to graphs, it's common to refer to the things in the graph as "nodes".
Because I intend to reuse the CFG abstraction with many graph algorithms, that abstraction uses
the term "node" to refer to a DFG basic block. But in Dominators, the method and variable names
still use "block". This is because although Dominators are applicable to any kind of directed
graph, it's super unlikely that we will ever use them for anything but compilers. Indeed, the
only reason why I'm factoring them out of the DFG is so that I can use them with B3 and Air.

This has the nice side effect that a user of WTF::Dominators<JSC::DFG::CFG> will see familiar
terminology like "blocksStrictlyDominatedBy(...)" instead of "nodesStrictlyDominatedBy(...)",
which would be super confusing.

Overall, wtf/Dominators.h is a combination of what used to be in DFGDominators.h,
DFGDominators.cpp, DFGNaiveDominators.h, and DFGNaiveDominators.cpp. I only changed code when I
had to in order to make it generic.

* WTF.xcodeproj/project.pbxproj:
* wtf/CMakeLists.txt:
* wtf/Dominators.h: Added.
(WTF::Dominators::Dominators):
(WTF::Dominators::compute):
(WTF::Dominators::strictlyDominates):
(WTF::Dominators::dominates):
(WTF::Dominators::immediateDominatorOf):
(WTF::Dominators::forAllStrictDominatorsOf):
(WTF::Dominators::forAllDominatorsOf):
(WTF::Dominators::forAllBlocksStrictlyDominatedBy):
(WTF::Dominators::forAllBlocksDominatedBy):
(WTF::Dominators::strictDominatorsOf):
(WTF::Dominators::dominatorsOf):
(WTF::Dominators::blocksStrictlyDominatedBy):
(WTF::Dominators::blocksDominatedBy):
(WTF::Dominators::forAllBlocksInDominanceFrontierOf):
(WTF::Dominators::dominanceFrontierOf):
(WTF::Dominators::forAllBlocksInIteratedDominanceFrontierOf):
(WTF::Dominators::forAllBlocksInPrunedIteratedDominanceFrontierOf):
(WTF::Dominators::iteratedDominanceFrontierOf):
(WTF::Dominators::dump):
(WTF::Dominators::LengauerTarjan::LengauerTarjan):
(WTF::Dominators::LengauerTarjan::compute):
(WTF::Dominators::LengauerTarjan::immediateDominator):
(WTF::Dominators::LengauerTarjan::computeDepthFirstPreNumbering):
(WTF::Dominators::LengauerTarjan::computeSemiDominatorsAndImplicitImmediateDominators):
(WTF::Dominators::LengauerTarjan::computeExplicitImmediateDominators):
(WTF::Dominators::LengauerTarjan::link):
(WTF::Dominators::LengauerTarjan::eval):
(WTF::Dominators::LengauerTarjan::compress):
(WTF::Dominators::LengauerTarjan::BlockData::BlockData):
(WTF::Dominators::NaiveDominators::NaiveDominators):
(WTF::Dominators::NaiveDominators::dominates):
(WTF::Dominators::NaiveDominators::dump):
(WTF::Dominators::NaiveDominators::pruneDominators):
(WTF::Dominators::ValidationContext::ValidationContext):
(WTF::Dominators::ValidationContext::reportError):
(WTF::Dominators::ValidationContext::handleErrors):
(WTF::Dominators::naiveDominates):
(WTF::Dominators::forAllBlocksInDominanceFrontierOfImpl):
(WTF::Dominators::forAllBlocksInIteratedDominanceFrontierOfImpl):
(WTF::Dominators::BlockData::BlockData):

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

3 years ago Re-land a piece of the patch for:
darin@apple.com [Mon, 2 Nov 2015 00:25:32 +0000 (00:25 +0000)]
    Re-land a piece of the patch for:
        [ES6] Add support for toStringTag
        https://bugs.webkit.org/show_bug.cgi?id=150696

        * http/tests/history/cross-origin-replace-history-object-child-expected.txt:
        * http/tests/security/cross-frame-access-custom-expected.txt:
        * http/tests/security/cross-frame-access-history-get-expected.txt:
        * http/tests/security/cross-frame-access-object-setPrototypeOf-expected.txt:

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

3 years ago[EFL] Fix inappropriate move semantics use in parseAndRemoveEnvironments function
commit-queue@webkit.org [Mon, 2 Nov 2015 00:24:14 +0000 (00:24 +0000)]
[EFL] Fix inappropriate move semantics use in parseAndRemoveEnvironments function
https://bugs.webkit.org/show_bug.cgi?id=150544

Patch by Joonghun Park <jh718.park@samsung.com> on 2015-11-01
Reviewed by Darin Adler.

In parseAndRemoveEnvironments function, it declares its paramerter type as rvalue.
But in ProcessLauncher::launchProcess(), the argument of
parseAndRemoveEnvironments still be used after the call of the function.
Currently the rvalue is not assigned to any other variable in parseAndRemoveEnvironments,
so it doesn't lead to runtime error but use of move semantic
is not appropriate semantically in this case.

* UIProcess/Launcher/efl/ProcessLauncherEfl.cpp:
(WebKit::parseAndRemoveEnvironments):
(WebKit::ProcessLauncher::launchProcess):

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

3 years agoRemove some dead and unneeded code (ScrollbarThemeSafari, RenderThemeSafari, OPENCL...
darin@apple.com [Mon, 2 Nov 2015 00:16:36 +0000 (00:16 +0000)]
Remove some dead and unneeded code (ScrollbarThemeSafari, RenderThemeSafari, OPENCL, a little color space logic)
https://bugs.webkit.org/show_bug.cgi?id=150783

Reviewed by Tim Horton.

Source/WebCore:

* PlatformWinCairo.cmake: Removed ScrollbarThemeSafari.cpp, no reason to compile it.

* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setContentsToImage): Removed the code that set a color space
on an image if it's set to device color space. This has been dead code for many releases
of OS X and iOS at this point.

* platform/graphics/filters/FEColorMatrix.h: Removed some ENABLE(OPENCL)-only code.
* platform/graphics/filters/FEFlood.h: Ditto.
* platform/graphics/filters/FEMerge.h: Ditto.
* platform/graphics/filters/FETurbulence.h: Ditto.
* platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::applyAll): Removed.
(WebCore::FilterEffect::apply): Removed ENABLE(OPENCL)-only code.
(WebCore::FilterEffect::platformApplyOpenCL): Removed.
(WebCore::FilterEffect::clearResult): Removed ENABLE(OPENCL)-only code.
(WebCore::FilterEffect::asImageBuffer): Ditto.
(WebCore::FilterEffect::openCLImageToImageBuffer): Removed.
(WebCore::FilterEffect::createOpenCLImageResult): Removed.
(WebCore::FilterEffect::transformResultColorSpace): Removed ENABLE(OPENCL)-only code.

* platform/graphics/filters/FilterEffect.h: Removed ENABLE(OPENCL)-only code.
* platform/graphics/filters/SourceAlpha.h: Ditto.
* platform/graphics/filters/SourceGraphic.h: Ditto.

* platform/win/ScrollbarThemeSafari.cpp: Removed.
* platform/win/ScrollbarThemeSafari.h: Removed.

* rendering/RenderThemeMac.mm: Removed an obsolete comment.

* rendering/RenderThemeSafari.cpp: Removed.
* rendering/RenderThemeSafari.h: Removed.

* svg/graphics/filters/SVGFEImage.h: Removed ENABLE(OPENCL)-only code.

Source/WTF:

* wtf/FeatureDefines.h: Removed the OPENCL feature, no longer supported.

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

3 years agoSort EWS bots in popovers
ap@apple.com [Mon, 2 Nov 2015 00:10:21 +0000 (00:10 +0000)]
Sort EWS bots in popovers
https://bugs.webkit.org/show_bug.cgi?id=150782

Reviewed by Darin Adler.

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

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

3 years agoB3::reduceStrength's DCE should be more agro and less wrong
fpizlo@apple.com [Sun, 1 Nov 2015 23:37:03 +0000 (23:37 +0000)]
B3::reduceStrength's DCE should be more agro and less wrong
https://bugs.webkit.org/show_bug.cgi?id=150748

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

First of all, our DCE had a bug where it would keep Upsilons after it deleted the Phis that
they referenced. But our B3 DCE was also not aggressive enough. It would not eliminate
cycles. It was also probably slower than it needed to be, since it would eliminate all
never-referenced things on each fixpoint.

This adds a presume-everyone-is-dead-and-find-live-things style DCE. This is very natural to
write, except for Upsilons. For everything but Upsilons, it's just a worklist algorithm. For
Upsilons, it's a fixpoint. It works fine in the end.

I kept finding bugs in this algorithm when I tested it against my "Complex" test that I was
writing as a compile time benchmark. So, I include that test in this change. I also include
the small lowering extensions that it needed - shifting and zero extending.

This change also adds an LLVM version of the Complex test. Though the LLVM version feels
more natural to write because LLVM has traditional Phi's rather than our quirky Phi's, in
the end LLVM ends up performing very badly - 10x to 20x worse than B3. Some of that gap will
close once we give B3 a register allocator, but still, that's pretty good news for our B3
strategy.

* JavaScriptCore.xcodeproj/project.pbxproj:
* assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::lshift64):
(JSC::MacroAssemblerX86_64::rshift64):
* assembler/X86Assembler.h:
(JSC::X86Assembler::shlq_i8r):
(JSC::X86Assembler::shlq_CLr):
(JSC::X86Assembler::imull_rr):
* b3/B3BasicBlock.cpp:
(JSC::B3::BasicBlock::replacePredecessor):
(JSC::B3::BasicBlock::dump):
(JSC::B3::BasicBlock::removeNops): Deleted.
* b3/B3BasicBlock.h:
(JSC::B3::BasicBlock::frequency):
* b3/B3Common.cpp:
(JSC::B3::shouldSaveIRBeforePhase):
(JSC::B3::shouldMeasurePhaseTiming):
* b3/B3Common.h:
(JSC::B3::isRepresentableAsImpl):
* b3/B3Generate.cpp:
(JSC::B3::generate):
(JSC::B3::generateToAir):
* b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::tryAnd):
(JSC::B3::Air::LowerToAir::tryShl):
(JSC::B3::Air::LowerToAir::tryStoreAddLoad):
(JSC::B3::Air::LowerToAir::tryTrunc):
(JSC::B3::Air::LowerToAir::tryZExt32):
(JSC::B3::Air::LowerToAir::tryArgumentReg):
* b3/B3LoweringMatcher.patterns:
* b3/B3PhaseScope.cpp:
(JSC::B3::PhaseScope::PhaseScope):
* b3/B3PhaseScope.h:
* b3/B3ReduceStrength.cpp:
* b3/B3TimingScope.cpp: Added.
(JSC::B3::TimingScope::TimingScope):
(JSC::B3::TimingScope::~TimingScope):
* b3/B3TimingScope.h: Added.
* b3/B3Validate.cpp:
* b3/air/AirAllocateStack.cpp:
(JSC::B3::Air::allocateStack):
* b3/air/AirGenerate.cpp:
(JSC::B3::Air::generate):
* b3/air/AirInstInlines.h:
(JSC::B3::Air::ForEach<Arg>::forEach):
(JSC::B3::Air::Inst::forEach):
(JSC::B3::Air::isLshift32Valid):
(JSC::B3::Air::isLshift64Valid):
* b3/air/AirLiveness.h:
(JSC::B3::Air::Liveness::isAlive):
(JSC::B3::Air::Liveness::Liveness):
(JSC::B3::Air::Liveness::LocalCalc::execute):
* b3/air/AirOpcode.opcodes:
* b3/air/AirPhaseScope.cpp:
(JSC::B3::Air::PhaseScope::PhaseScope):
* b3/air/AirPhaseScope.h:
* b3/testb3.cpp:
(JSC::B3::testBranchEqualFoldPtr):
(JSC::B3::testComplex):
(JSC::B3::run):
* runtime/Options.h:

Source/WTF:

* wtf/GraphNodeWorklist.h:
(WTF::GraphNodeWorklist::saw): This method is super useful.

Tools:

Add an LLVM version of testb3's "testComplex".

* ReducedFTL/ComplexTest.cpp: Added.

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

3 years ago[ES6] Add support for toStringTag
ap@apple.com [Sun, 1 Nov 2015 23:12:27 +0000 (23:12 +0000)]
[ES6] Add support for toStringTag
https://bugs.webkit.org/show_bug.cgi?id=150696

Re-landing, as this wasn't the culprit.

Source/JavaScriptCore:

* runtime/ArrayIteratorPrototype.cpp:
(JSC::ArrayIteratorPrototype::finishCreation):
* runtime/CommonIdentifiers.h:
* runtime/JSArrayBufferPrototype.cpp:
(JSC::JSArrayBufferPrototype::finishCreation):
(JSC::JSArrayBufferPrototype::create):
* runtime/JSDataViewPrototype.cpp:
(JSC::JSDataViewPrototype::create):
(JSC::JSDataViewPrototype::finishCreation):
(JSC::JSDataViewPrototype::createStructure):
* runtime/JSDataViewPrototype.h:
* runtime/JSModuleNamespaceObject.cpp:
(JSC::JSModuleNamespaceObject::finishCreation):
* runtime/JSONObject.cpp:
(JSC::JSONObject::finishCreation):
* runtime/JSPromisePrototype.cpp:
(JSC::JSPromisePrototype::finishCreation):
(JSC::JSPromisePrototype::getOwnPropertySlot):
* runtime/JSTypedArrayViewPrototype.cpp:
(JSC::typedArrayViewProtoFuncValues):
(JSC::typedArrayViewProtoGetterFuncToStringTag):
(JSC::JSTypedArrayViewPrototype::JSTypedArrayViewPrototype):
(JSC::JSTypedArrayViewPrototype::finishCreation):
* runtime/MapIteratorPrototype.cpp:
(JSC::MapIteratorPrototype::finishCreation):
(JSC::MapIteratorPrototypeFuncNext):
* runtime/MapPrototype.cpp:
(JSC::MapPrototype::finishCreation):
* runtime/MathObject.cpp:
(JSC::MathObject::finishCreation):
* runtime/ObjectPrototype.cpp:
(JSC::objectProtoFuncToString):
* runtime/SetIteratorPrototype.cpp:
(JSC::SetIteratorPrototype::finishCreation):
(JSC::SetIteratorPrototypeFuncNext):
* runtime/SetPrototype.cpp:
(JSC::SetPrototype::finishCreation):
* runtime/SmallStrings.cpp:
(JSC::SmallStrings::SmallStrings):
(JSC::SmallStrings::initializeCommonStrings):
(JSC::SmallStrings::visitStrongReferences):
* runtime/SmallStrings.h:
(JSC::SmallStrings::typeString):
(JSC::SmallStrings::objectStringStart):
(JSC::SmallStrings::nullObjectString):
(JSC::SmallStrings::undefinedObjectString):
* runtime/StringIteratorPrototype.cpp:
(JSC::StringIteratorPrototype::finishCreation):
* runtime/SymbolPrototype.cpp:
(JSC::SymbolPrototype::finishCreation):
* runtime/WeakMapPrototype.cpp:
(JSC::WeakMapPrototype::finishCreation):
(JSC::getWeakMapData):
* runtime/WeakSetPrototype.cpp:
(JSC::WeakSetPrototype::finishCreation):
(JSC::getWeakMapData):
* tests/es6.yaml:
* tests/modules/namespace.js:
* tests/stress/symbol-tostringtag.js: Copied from Source/JavaScriptCore/tests/stress/symbol-tostringtag.js.

LayoutTests:

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

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

3 years agoUnreviewed, rolling out r191815 and r191821.
commit-queue@webkit.org [Sun, 1 Nov 2015 22:59:45 +0000 (22:59 +0000)]
Unreviewed, rolling out r191815 and r191821.
https://bugs.webkit.org/show_bug.cgi?id=150781

Seems to have broken JSC API tests on some platforms
(Requested by ap on #webkit).

Reverted changesets:

"[ES6] Add support for toStringTag"
https://bugs.webkit.org/show_bug.cgi?id=150696
http://trac.webkit.org/changeset/191815

"Unreviewed, forgot to mark tests as passing for new feature."
http://trac.webkit.org/changeset/191821

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

3 years agoUnreviewed, rolling out r191858.
commit-queue@webkit.org [Sun, 1 Nov 2015 22:44:33 +0000 (22:44 +0000)]
Unreviewed, rolling out r191858.
https://bugs.webkit.org/show_bug.cgi?id=150780

Broke the build (Requested by ap on #webkit).

Reverted changeset:

"Rename op_put_getter_setter to op_put_getter_setter_by_id"
https://bugs.webkit.org/show_bug.cgi?id=150773
http://trac.webkit.org/changeset/191858

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

3 years agoMove the ResourceUsageOverlay out of the way by default.
akling@apple.com [Sun, 1 Nov 2015 21:59:42 +0000 (21:59 +0000)]
Move the ResourceUsageOverlay out of the way by default.
<https://webkit.org/b/150776>

Reviewed by Darin Adler.

Have the ResourceUsageOverlay show up in the bottom center of the viewport
by default, instead of the top left. This way, you won't have to drag it
out of the way all the time.

* page/ResourceUsageOverlay.cpp:
(WebCore::ResourceUsageOverlay::ResourceUsageOverlay):
(WebCore::ResourceUsageOverlay::initialize):
* page/ResourceUsageOverlay.h:
* page/cocoa/ResourceUsageOverlayCocoa.mm:
(WebCore::ResourceUsageOverlay::platformInitialize):

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

3 years agoUnreviewed, add a FIXME referencing https://bugs.webkit.org/show_bug.cgi?id=150777.
fpizlo@apple.com [Sun, 1 Nov 2015 19:42:51 +0000 (19:42 +0000)]
Unreviewed, add a FIXME referencing https://bugs.webkit.org/show_bug.cgi?id=150777.

* b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::AddressSelector::acceptRoot):

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

3 years agoUnreviewed, add a FIXME referencing https://bugs.webkit.org/show_bug.cgi?id=150775.
fpizlo@apple.com [Sun, 1 Nov 2015 17:22:54 +0000 (17:22 +0000)]
Unreviewed, add a FIXME referencing https://bugs.webkit.org/show_bug.cgi?id=150775.

* b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::tryTrunc):

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

3 years agoRename op_put_getter_setter to op_put_getter_setter_by_id
utatane.tea@gmail.com [Sun, 1 Nov 2015 16:17:57 +0000 (16:17 +0000)]
Rename op_put_getter_setter to op_put_getter_setter_by_id
https://bugs.webkit.org/show_bug.cgi?id=150773

Reviewed by Mark Lam.

Renaming op_put_getter_setter to op_put_getter_setter_by_id makes this op name consistent with
the other ops' names like op_put_getter_by_id etc.

* bytecode/BytecodeList.json:
* bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitPutGetterSetter):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
* jit/JIT.h:
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_put_getter_setter_by_id):
(JSC::JIT::emit_op_put_getter_setter): Deleted.
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_put_getter_setter_by_id):
(JSC::JIT::emit_op_put_getter_setter): Deleted.
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* llint/LLIntSlowPaths.h:
* llint/LowLevelInterpreter.asm:

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

3 years agoUnreviewed, rolling out r191831.
commit-queue@webkit.org [Sun, 1 Nov 2015 16:01:42 +0000 (16:01 +0000)]
Unreviewed, rolling out r191831.
https://bugs.webkit.org/show_bug.cgi?id=150774

The new test fails (Requested by ap on #webkit).

Reverted changeset:

"Begin work on supporting reply blocks in
_WKRemoteObjectRegistry"
https://bugs.webkit.org/show_bug.cgi?id=150739
http://trac.webkit.org/changeset/191831

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

3 years ago[GTK] Fix combinations of PLATFORM(GTK) and OS(DARWIN)
commit-queue@webkit.org [Sun, 1 Nov 2015 14:23:21 +0000 (14:23 +0000)]
[GTK] Fix combinations of PLATFORM(GTK) and OS(DARWIN)
https://bugs.webkit.org/show_bug.cgi?id=144560

Patch by Philip Chimento <philip.chimento@gmail.com> on 2015-11-01
Reviewed by Darin Adler.

Source/bmalloc:

* PlatformGTK.cmake: Added. This adds Zone.cpp to the PlatformGTK
build, on Darwin only. Since there was previously nothing for the
build system to do that was specific to the GTK platform in
bmalloc, we need to create this file.

Source/WebCore:

* platform/graphics/PlatformDisplay.cpp: Only include the
X11-specific GDK header on PLATFORM(X11). In other cases the
normal gdk.h header is needed, which would otherwise be pulled in
by gdkx.h.
* platform/graphics/opentype/OpenTypeMathData.cpp: Change check
for FourCharCode type from OS(DARWIN) to PLATFORM(COCOA). We
can't remove it altogether because OT_MAKE_TAG doesn't work for
all platforms.

Source/WebKit2:

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
Change order of OS(DARWIN) and USE(UNIX_DOMAIN_SOCKETS) checks,
so that we can use Unix domain sockets even on Darwin for the GTK
platform.
* Platform/IPC/Attachment.cpp: Add USE(UNIX_DOMAIN_SOCKETS) check
to OS(DARWIN) check, in order to support GTK platform on OSX.
* Platform/IPC/Attachment.h: Change order of OS(DARWIN) and
USE(UNIX_DOMAIN_SOCKETS) checks throughout.
(IPC::Attachment::size):
(IPC::Attachment::releaseFileDescriptor):
(IPC::Attachment::fileDescriptor):
(IPC::Attachment::disposition):
(IPC::Attachment::port):
* Platform/IPC/Connection.h: Ditto.
(IPC::Connection::identifierIsNull):
(IPC::Connection::Identifier::Identifier):
(IPC::Connection::xpcConnection):
* Platform/IPC/unix/ConnectionUnix.cpp: Only use SOCK_SEQPACKET
if the platform is not GTK, because otherwise the PLATFORM(GTK)
check below is never reached.
* Platform/SharedMemory.h: Change order of OS(DARWIN) and
USE(UNIX_DOMAIN_SOCKETS) checks.
* PluginProcess/PluginProcess.cpp: Ditto.
(WebKit::PluginProcess::createWebProcessConnection):
* Shared/API/c/WKBase.h: Don't include WKBaseMac.h if building
GTK.
* UIProcess/API/C/WKNativeEvent.h: Don't use Apple API if
building GTK.
* UIProcess/Launcher/ProcessLauncher.cpp: Change to
OS(DARWIN) && !PLATFORM(GTK), in the absence of a better platform
macro such as USE(MACH).
(WebKit::ProcessLauncher::didFinishLaunchingProcess):
* UIProcess/Launcher/ProcessLauncher.h: Ditto.
* UIProcess/Network/NetworkProcessProxy.cpp: Change order of
OS(DARWIN) and PLATFORM(GTK) checks.
(WebKit::NetworkProcessProxy::networkProcessCrashedOrFailedToLaunch):
(WebKit::NetworkProcessProxy::didCreateNetworkConnectionToWebProcess):
* UIProcess/Plugins/PluginProcessProxy.cpp: Ditto.
(WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
(WebKit::PluginProcessProxy::didCreateWebProcessConnection):
* WebProcess/Plugins/PluginProcessConnectionManager.cpp: Ditto.
(WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
* WebProcess/WebPage/WebInspector.cpp: Ditto.
(WebKit::WebInspector::createInspectorPage):
* WebProcess/WebPage/WebInspectorUI.cpp: Ditto.
(WebKit::WebInspectorUI::establishConnection):
* WebProcess/WebProcess.cpp: Ditto.
(WebKit::WebProcess::ensureNetworkProcessConnection):

Source/WTF:

* wtf/Platform.h: Don't USE(ACCELERATE) on PLATFORM(GTK).
* wtf/WorkQueue.h: Change order of OS(DARWIN) and PLATFORM(GTK)
checks so that GTK facilities are used even when building the
GTK platform on Darwin.

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

3 years ago[GTK] Use RunLoop::Timer in PluginInfoCache
carlosgc@webkit.org [Sun, 1 Nov 2015 08:33:38 +0000 (08:33 +0000)]
[GTK] Use RunLoop::Timer in PluginInfoCache
https://bugs.webkit.org/show_bug.cgi?id=150757

Reviewed by Darin Adler.

Use RunLoop::Timer instead of GMainLoopSource to save the cache
contents in an idle. Also remove the mutex, since RunLoop::Timer
is thread safe and saveToFile() is private and only called by the
main thread loop. Also removed the code to save the file in the
destructor since PluginInfoCache is a singleton and never
destroyed. It's very unlikely that the program finished before the
cache is saved, but even if that happens it would be harmless, the
cache will be saved at some point the next time.

* UIProcess/Plugins/gtk/PluginInfoCache.cpp:
(WebKit::PluginInfoCache::PluginInfoCache):
(WebKit::PluginInfoCache::updatePluginInfo):
(WebKit::PluginInfoCache::~PluginInfoCache):
(WebKit::PluginInfoCache::saveToFile):
* UIProcess/Plugins/gtk/PluginInfoCache.h:

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

3 years ago[GTK] Use a RunLoop::Timer to schedule rendering frames in accelerated compositing...
carlosgc@webkit.org [Sun, 1 Nov 2015 08:31:16 +0000 (08:31 +0000)]
[GTK] Use a RunLoop::Timer to schedule rendering frames in accelerated compositing mode
https://bugs.webkit.org/show_bug.cgi?id=150756

Reviewed by Darin Adler.

Use a RunLoop::Timer instead of a GMainLoopSource for the
accelerated compositing render loop to improve the performance,
since RunLoop::Timer uses a persistent source.
All the logic to schedule rames has been moved to a helper
internal class RenderFrameScheduler.

* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::RenderFrameScheduler::RenderFrameScheduler):
(WebKit::LayerTreeHostGtk::RenderFrameScheduler::~RenderFrameScheduler):
(WebKit::LayerTreeHostGtk::RenderFrameScheduler::start):
(WebKit::LayerTreeHostGtk::RenderFrameScheduler::stop):
(WebKit::shouldSkipNextFrameBecauseOfContinousImmediateFlushes):
(WebKit::LayerTreeHostGtk::RenderFrameScheduler::nextFrame):
(WebKit::LayerTreeHostGtk::RenderFrameScheduler::renderFrame):
(WebKit::LayerTreeHostGtk::LayerTreeHostGtk):
(WebKit::LayerTreeHostGtk::renderFrame):
(WebKit::LayerTreeHostGtk::scheduleLayerFlush):
(WebKit::LayerTreeHostGtk::cancelPendingLayerFlush):
(WebKit::LayerTreeHostGtk::layerFlushTimerFired): Deleted.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:

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

3 years agoMake the size of the benchmark canvas adaptive to the screen size and screen resolution
commit-queue@webkit.org [Sun, 1 Nov 2015 08:26:46 +0000 (08:26 +0000)]
Make the size of the benchmark canvas adaptive to the screen size and screen resolution
https://bugs.webkit.org/show_bug.cgi?id=150530

Patch by Said Abou-Hallawa <sabouhallawa@apple,com> on 2015-11-01
Reviewed by Darin Adler.

We want to set the size of the benchmark stage dynamically such that it
depends on the screen resolution and the device scale factor. This patch
does more than that because the home page css was not done properly. To
use the flex box layout, the animometer.css has to be rewritten almost from
scratch. The suites tree has to be rewritten also because it was not collapsing
and with the flex box layout it was going outside of the window area. The
options handling and the local storage handling had to be rewritten to
allow more flexibility with this patch and the future patches. The code
in animometer.js was reorganized into objects to allow distributing the code
nicely among separate entities.

* Animometer/resources/extensions.js:
(Point.elementClientSize): Returns the client size of an HTMLElement as a Point object.
(Insets.prototype.get width): Follow the function opening brace style guidelines.
(Insets.prototype.get height):
(Insets.prototype.get size): Returns the size of an Insets as a Point object.

(window.DocumentExtension): Provides document helper functions. It should be assailable from the runner and the tests.
(window.DocumentExtension.createElement): Creates an HTMLElement given its name, attributes and parentElement.
(window.DocumentExtension.createSvgElement): Creates an SVGElement given its name, attributes and parentElement (moved from utilities.js).
(window.DocumentExtension.insertCssRuleAfter): Inserts a CSS rule after an exiting rule given its text.

(ResultsTable.prototype._showHeader): Use DocumentExtension functions.
(ResultsTable.prototype._showGraph): Use DocumentExtension functions and create a real button for "Graph..." option.
(ResultsTable.prototype._showJSON): Use DocumentExtension functions and create a real button for "JSON..." option.
(Options): Deleted.

* Animometer/runner/animometer.html: Restructure the page to use the flex box layout.

* Animometer/runner/resources/animometer.css:
(html,body):
(button):

(button.large-button):The large button appears in the animometer.html.
(button.large-button:active):
(button.large-button:disabled):

(button.small-button): The small button appears in the results table.
(button.small-button:active):

(.tree): The tree class is used to list the suites and their tests.
(.tree .expand-button): This button expands a tree element.
(.tree .expand-button ~ ul): Hide the children (<ul>...</ul>) of a parent node by default.
(.tree .expand-button:checked ~ ul): Show the children of a parent node only when checked.
(.tree ul): Hide the list bullets.
(.tree li): Indent every node in the tree relative to its parent.
(.tree ul li): Indent all the non top level nodes only (the tests nodes in our case).
(.tree > li:last-child): Do not indent the bottom of the last child node.
(.tree-label): Style for all the labels in the tree.
(label.tree-label): Style for the labels in the top level only (the suites nodes in our case).
(label.tree-label:before): Style the unchecked case of the expand-button.
(:checked ~ label.tree-label:before): Style the checked case of the expand-button.

(table.results-table): The results table appears while running the test and at the end.
(.results-table td):
(.results-table th):

(div.results-json): The JSON div appears per test or for the whole run.

(main): This is the flex box container.

(section): A section is displayed exclusively inside the <main>. It is hidden by default.
(section.selected): When it is selected, its layout is flex layout.
(section > footer): The header or the footer of a section should not take more than 15% of the container.

(section#home): The home section has <suites> and <options> parts to be laid out in the middle.
(section#home > options):
(section#home > suites): The <suites> should not take more than 40% of the width.
(section#home > options > label): The benchmark title.
(section#home > header > h2): The benchmark title.
(section#home > options > label > input[type="number"]): Sets the width of the option edit control.

(section#running): The running section contain the runner <iframe> which takes the whole area of the <main>.
(section#running > #running-test): This is the <iframe> container.
(section#running > #running-test > iframe): The <iframe> is created by the runner for each test.
(section#running > #progress): This is the progress bar.
(section#running > #progress > #progress-completed): This is another element which grows while the runner is progressing.
(section#running > #record): This the container of the record results table which is shown while running a test.

(section#results):
(section#json):
(section#test-json):
(section#test-graph): All these sections have the same layout. A <data> element is laid out between <header> and <footer>.

(section#results > data):
(section#json > data):
(section#test-json > data):
(section#test-graph > data): The <data> element should take 70% of the <section>.

(section#test-graph > data > svg):
(.axis line):
(.left-samples): These styles are for the d3 graph.

(section#test-json > data): This is the style of the JSON <data> element.

(iframe): Deleted.
(label, p): Deleted.
(section > p): Deleted.
(section#home > p): Deleted.
(section#home > p:first-child): Deleted.
(#testContainer): Deleted.
(section#running #progress-completed): Deleted.
(section#results > table): Deleted.
(section#results > table td, th): Deleted.
(section#results > table tr.alt, td): Deleted.
(section#results > table th): Deleted.
(section#json > textarea): Deleted.
(.options): Deleted.
(.options p): Deleted.
(#suites ul): Deleted.
(#suites ul ul): Deleted.
(#suites ul ul input, #suites ul ul label): Deleted.
(#suites.showTests ul ul): Deleted.
(.column): Deleted.
(input[type="number"]): Deleted.
(.buttons): Deleted.
(.small-button): Deleted.
(#graphContainer): Deleted.
(.right-samples): Deleted.
(.sample-time): Deleted.
(.left-mean): Deleted.
(.right-mean): Deleted.

* Animometer/runner/resources/animometer.js:
(window.benchmarkRunnerClient.initialize): Initialize the client object with the options and the suites.
(window.benchmarkRunnerClient.willStartFirstIteration): Use new css selectors for results and the record table.
(window.benchmarkRunnerClient.didFinishLastIteration): Move the code which sets the JSON text to sectionsManager.showJSON().

(window.sectionsManager): Responsible of managing the <section>s elements inside animometer.html.
(window.sectionsManager._sectionHeaderH1Element): Return the <h1> inside the <header> of a given section.
(window.sectionsManager._sectionDataDivElement): Return the <div> inside the <data> of a given section.
(window.sectionsManager.showScore): Show the score of the last benchmark run.
(window.sectionsManager.showTestName): Show the test name for detailed results <section>.
(window.sectionsManager.showJSON): Shows the JSON text of the last benchmark or for a specific test.
(window.sectionsManager.showSection): Shows a specific <section> in the <main> container.
(window.sectionsManager.setupSectionStyle): Sets css attributes for all the <section>s.
(window.sectionsManager.setupRunningSectionStyle): Sets the css attributes for the running <section> only.

(window.optionsManager): Responsible of managing the user options and streaming them to/form the localStorage.
(window.optionsManager._optionsElements): Returns the children <input> elements of the <options>.
(window.optionsManager.updateUIFromLocalStorage): Restore the values of the <options> UI elements from the local storage.
(window.optionsManager.updateLocalStorageFromUI): Saves the values of the <options> UI elements to the local storage.

(window.suitesManager): Responsible of managing the user suites and streaming them to/form the localStorage.
(window.suitesManager._treeElement): Returns the suites tree container element.
(window.suitesManager._suitesElements): Returns a list of the suites elements.
(window.suitesManager._checkboxElement): Returns the checkbox element of a given suite.
(window.suitesManager._localStorageNameForTest): Generates a string for the tuple <suite, test> to be saved in the localStorage.
(window.suitesManager._updateSuiteCheckboxState): Updates the state of a suite checkbox from the state of its tests' checkboxes.
(window.suitesManager._updateStartButtonState): Updates the state of the start button from the state of the suites' checkboxes.
(window.suitesManager._onChangeSuiteCheckbox): Called when a suite checkbox is clicked.
(window.suitesManager._onChangeTestCheckbox): Called when a test checkbox is clicked.
(window.suitesManager._createSuiteElement): Creates suite node in the suites tree.
(window.suitesManager._createTestElement): Creates test node in the suites tree.
(window.suitesManager.createElements): Creates the suites tree dynamically from the array Suites.
(window.suitesManager.updateUIFromLocalStorage): Restore the values of the <suites> UI elements from the local storage.
(window.suitesManager.updateLocalStorageFromUI): aves the values of the <suites> UI elements to the local storage.

(window.benchmarkController): This is the UI controller of the animometer.html page.
(window.benchmarkController.initialize): Called when the animometer.html page is loaded.
(window.benchmarkController._runBenchmark): Starts a benchmark run.
(window.benchmarkController.startTest): Called when the "Start Test" button is clicked.
(window.benchmarkController.showResults): Called at the end of the test to show the final results.
(window.benchmarkController.showJson): Called from the results page to show the JSON of the last benchmark run.
(window.benchmarkController.showTestGraph): Called from the results the table to show a graph for the samples of a specific test.
(window.benchmarkController.showTestJSON): Called from the results the table to show a JSON for the samples of a specific test.

(showSection): Deleted.
(startTest): Deleted.
(showResults): Deleted.
(showJson): Deleted.
(showTestGraph): Deleted.
(showTestJSON): Deleted.
(initialize.toggleTestsCheckbox.onchange): Deleted.
(initialize): Deleted.
(updateSuiteSelection): Deleted.
(updateTestSelection): Deleted.
(updateSuiteCheckbox): Deleted.
(localStorageNameForTest): Deleted.
(populateSettings.): Deleted.
(populateSettings): Deleted.

* Animometer/runner/resources/benchmark-runner.js:
(BenchmarkRunner): Pass the frameContainer element to the BenchmarkRunner.
(BenchmarkRunner.prototype._appendFrame): Remove unused parameter unwanted styling code.
(BenchmarkRunner.prototype.runMultipleIterations):  Use the this._client.iterationCount instead of passing it as a parameter also.

* Animometer/runner/resources/graph.js:
(graph): Calculate the size of the chart from the container element.

* Animometer/tests/bouncing-particles/resources/bouncing-svg-images.js:
(BouncingSvgImage):
* Animometer/tests/bouncing-particles/resources/bouncing-svg-particles.js:
(BouncingSvgParticlesStage.prototype._createDefs):
(BouncingSvgParticlesStage.prototype._createClipStar):
* Animometer/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
(BouncingSvgShape.prototype._createShape):
(BouncingSvgShapesStage.prototype.createGradient):
Call DocumentExtension.createSvgElement() instead of calling Utilities.createSvgElement().

* Animometer/tests/resources/main.js:
(Animator.prototype.animate):
(Benchmark):
(Benchmark.prototype.update):
* Animometer/tests/resources/stage.js:
(StageBenchmark.prototype.showResults):
Rename the options to match the <input> ids in animometer.html.

* Animometer/tests/resources/utilities.js:
(window.Utilities.createSvgElement): Deleted.

* Animometer/tests/text/layering-text.html:
* Animometer/tests/text/resources/layering-text.js:
(LayeringTextStage):
(LayeringTextStage.prototype._setFontSize): Sets the size of the text dynamically such that they all fit in one stage.

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

3 years ago[GTK] Use RunLoop::Timer in main thread shared timer GTK+ implementation
carlosgc@webkit.org [Sun, 1 Nov 2015 07:54:38 +0000 (07:54 +0000)]
[GTK] Use RunLoop::Timer in main thread shared timer GTK+ implementation
https://bugs.webkit.org/show_bug.cgi?id=150754

Reviewed by Darin Adler.

Source/WebCore:

It's more efficient because it uses a persistent source and it
simplifies the code even more.

* platform/MainThreadSharedTimer.cpp:
(WebCore::MainThreadSharedTimer::fired): Make it non-const to be
able to use it as function callback of a RunLoop::Timer.
* platform/MainThreadSharedTimer.h:
* platform/gtk/MainThreadSharedTimerGtk.cpp:
(WebCore::MainThreadSharedTimer::MainThreadSharedTimer):
Initialize the RunLoop::Timer and set the prioriry.
(WebCore::MainThreadSharedTimer::setFireInterval):
(WebCore::MainThreadSharedTimer::stop):

Source/WTF:

Add API to set the priority of a RunLoop::Timer for GLib.

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

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

3 years agoAdd a debug overlay with information about web process resource usage.
akling@apple.com [Sun, 1 Nov 2015 05:47:41 +0000 (05:47 +0000)]
Add a debug overlay with information about web process resource usage.
<https://webkit.org/b/150599>

Unreviewed follow-up to r191849.

Add missing call to uninstall the PageOverlay if the ResourceUsageOverlay is being
disabled through the setting. This way you don't end up with an unremovable overlay
in the MiniBrowser.

* page/ResourceUsageOverlay.cpp:
(WebCore::ResourceUsageOverlay::~ResourceUsageOverlay):

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

3 years agoIDB: Date objects don't work as keys or values.
beidson@apple.com [Sun, 1 Nov 2015 04:34:49 +0000 (04:34 +0000)]
IDB: Date objects don't work as keys or values.
https://bugs.webkit.org/show_bug.cgi?id=150743

Reviewed by Darin Adler.

Source/WebCore:

Test: storage/indexeddb/modern/date-basic.html

The combination of the autogenerated bindings with Deprecated::ScriptValue was
losing the fidelity of "Date" objects being Dates, and not just normal Objects.

This was breaking their usage as IDBKeys.

Custom binding + reworking the IDBObjectStore IDLs to use JSValue instead of ScriptValue
fixes this handily.

* Modules/indexeddb/IDBObjectStore.h:
* Modules/indexeddb/IDBObjectStore.idl:

* Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
(WebCore::IDBClient::IDBObjectStore::add):
(WebCore::IDBClient::IDBObjectStore::put):
(WebCore::IDBClient::IDBObjectStore::putOrAdd):
* Modules/indexeddb/client/IDBObjectStoreImpl.h:

* Modules/indexeddb/legacy/LegacyObjectStore.cpp:
(WebCore::LegacyObjectStore::add):
(WebCore::LegacyObjectStore::put):
* Modules/indexeddb/legacy/LegacyObjectStore.h:

* bindings/js/IDBBindingUtilities.cpp:
(WebCore::internalCreateIDBKeyFromScriptValueAndKeyPath):
(WebCore::maybeCreateIDBKeyFromScriptValueAndKeyPath):
(WebCore::canInjectIDBKeyIntoScriptValue):
(WebCore::scriptValueToIDBKey):
* bindings/js/IDBBindingUtilities.h:

* bindings/js/JSIDBObjectStoreCustom.cpp:
(WebCore::putOrAdd):
(WebCore::JSIDBObjectStore::putRecord):
(WebCore::JSIDBObjectStore::add):

LayoutTests:

* storage/indexeddb/modern/date-basic-expected.txt: Added.
* storage/indexeddb/modern/date-basic.html: Added.
* storage/indexeddb/modern/get-keyrange-expected.txt:
* storage/indexeddb/modern/get-keyrange.html:

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

3 years agoAdd a debug overlay with information about web process resource usage.
akling@apple.com [Sun, 1 Nov 2015 02:29:47 +0000 (02:29 +0000)]
Add a debug overlay with information about web process resource usage.
<https://webkit.org/b/150599>

Reviewed by Darin Adler.

Source/JavaScriptCore:

Have Heap track the exact number of bytes allocated in CopiedBlock, MarkedBlock and
WeakBlock objects, keeping them in a single location that can be sampled by the
resource usage overlay thread.

The bulk of these changes is threading a Heap& through from sites where blocks are
allocated or freed.

* heap/CopiedBlock.cpp:
(JSC::CopiedBlock::createNoZeroFill):
(JSC::CopiedBlock::destroy):
(JSC::CopiedBlock::create):
* heap/CopiedBlock.h:
* heap/CopiedSpace.cpp:
(JSC::CopiedSpace::~CopiedSpace):
(JSC::CopiedSpace::tryAllocateOversize):
(JSC::CopiedSpace::tryReallocateOversize):
* heap/CopiedSpaceInlines.h:
(JSC::CopiedSpace::recycleEvacuatedBlock):
(JSC::CopiedSpace::recycleBorrowedBlock):
(JSC::CopiedSpace::allocateBlockForCopyingPhase):
(JSC::CopiedSpace::allocateBlock):
(JSC::CopiedSpace::startedCopying):
* heap/Heap.cpp:
(JSC::Heap::~Heap):
(JSC::Heap::sweepNextLogicallyEmptyWeakBlock):
* heap/Heap.h:
(JSC::Heap::blockBytesAllocated):
* heap/HeapInlines.h:
(JSC::Heap::didAllocateBlock):
(JSC::Heap::didFreeBlock):
* heap/MarkedAllocator.cpp:
(JSC::MarkedAllocator::allocateBlock):
* heap/MarkedBlock.cpp:
(JSC::MarkedBlock::create):
(JSC::MarkedBlock::destroy):
* heap/MarkedBlock.h:
* heap/MarkedSpace.cpp:
(JSC::MarkedSpace::freeBlock):
* heap/WeakBlock.cpp:
(JSC::WeakBlock::create):
(JSC::WeakBlock::destroy):
* heap/WeakBlock.h:
* heap/WeakSet.cpp:
(JSC::WeakSet::~WeakSet):
(JSC::WeakSet::addAllocator):
(JSC::WeakSet::removeAllocator):

Source/WebCore:

A new kind of PageOverlay is added behind the ENABLE(RESOURCE_USAGE_OVERLAY) flag.
It's owned by Page, but not instantiated unless the Settings::resourceUsageOverlayVisible flag is set.

All ResourceUsageOverlay objects share a single sampler thread. The thread currently runs every 500ms
and samples CPU usage, dirty memory regions, and GC heap size/capacity.

Most things in here are currently quite Mac-specific, but I will be iterating on this towards a more
cross-platform friendly solution.

There are two small changes to PageOverlay in order to support dragging the resource usage overlay:

    - A "should ignore mouse events outside bounds" state flag. This is on by default
      but turned off during a drag.
    - PageOverlay::bounds() will now return the override frame verbatim if one is set,
      instead of returning it relocated to 0,0.

Note that this is intended as a tool for WebKit engine developers to better understand memory usage.
It's not a goal to expose this information to end users.

* WebCore.xcodeproj/project.pbxproj:
* page/Page.cpp:
(WebCore::Page::setResourceUsageOverlayVisible):
* page/Page.h:
* page/PageOverlay.cpp:
(WebCore::PageOverlay::bounds):
(WebCore::PageOverlay::mouseEvent):
* page/PageOverlay.h:
* page/ResourceUsageOverlay.cpp: Added.
(WebCore::ResourceUsageOverlay::ResourceUsageOverlay):
(WebCore::ResourceUsageOverlay::~ResourceUsageOverlay):
(WebCore::ResourceUsageOverlay::mouseEvent):
* page/ResourceUsageOverlay.h: Added.
* page/Settings.cpp:
(WebCore::Settings::setResourceUsageOverlayVisible):
* page/Settings.h:
(WebCore::Settings::resourceUsageOverlayVisible):
* page/cocoa/ResourceUsageOverlayCocoa.mm: Added.
(-[WebOverlayLayer initWithResourceUsageOverlay:]):
(-[WebOverlayLayer drawInContext:]):
(WebCore::RingBuffer::RingBuffer):
(WebCore::RingBuffer::append):
(WebCore::RingBuffer::last):
(WebCore::RingBuffer::forEach):
(WebCore::RingBuffer::incrementIndex):
(WebCore::RingBuffer::decrementIndex):
(WebCore::sharedData):
(WebCore::ResourceUsageOverlay::platformInitialize):
(WebCore::ResourceUsageOverlay::platformDestroy):
(WebCore::drawCpuHistory):
(WebCore::drawGCHistory):
(WebCore::drawSlice):
(WebCore::drawPlate):
(WebCore::drawMemoryPie):
(WebCore::formatByteNumber):
(WebCore::showText):
(WebCore::ResourceUsageOverlay::draw):
(WebCore::dirtyPagesPerVMTag):
(WebCore::cpuUsage):
(WebCore::runSamplerThread):
* platform/spi/cocoa/MachVMSPI.h:

Source/WebKit2:

Add WK2 preferences SPI for showing/hiding the resource usage overlay.

* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetResourceUsageOverlayVisible):
(WKPreferencesGetResourceUsageOverlayVisible):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _resourceUsageOverlayVisible]):
(-[WKPreferences _setResourceUsageOverlayVisible:]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

Source/WTF:

Add ENABLE(RESOURCE_USAGE_OVERLAY) flag, enabled on Mac by default.

* wtf/Platform.h:

Tools:

Add a menu item to the MiniBrowser so we can toggle the resource usage overlay on/off.

* MiniBrowser/mac/SettingsController.h:
* MiniBrowser/mac/SettingsController.m:
(-[SettingsController _populateMenu]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController toggleShowResourceUsageOverlay:]):
(-[SettingsController resourceUsageOverlayVisible]):
* MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController didChangeSettings]):

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

3 years agoShare more code between NETWORK_SESSION and non-NETWORK_SESSION NetworkResourceLoaders
achristensen@apple.com [Sun, 1 Nov 2015 00:14:49 +0000 (00:14 +0000)]
Share more code between NETWORK_SESSION and non-NETWORK_SESSION NetworkResourceLoaders
https://bugs.webkit.org/show_bug.cgi?id=150742

Reviewed by Darin Adler.

r191457 added enough code to NetworkResourceLoader to load most resources successfully if there are no errors.
It passed about 80% of LayoutTests/http and crashed sometimes.
This passes about 95% of LayoutTests/http and does not crash on any of the LayoutTests/http.
It should not change behavior of the non-NETWORK_SESSION code which is currently the default in trunk.

* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::abort):
(WebKit::NetworkResourceLoader::sharedDidReceiveResponse):
(WebKit::NetworkResourceLoader::sharedDidReceiveBuffer):
(WebKit::NetworkResourceLoader::sharedDidFinishLoading):
(WebKit::NetworkResourceLoader::sharedDidFail):
(WebKit::NetworkResourceLoader::sharedWillSendRedirectedRequest):
(WebKit::NetworkResourceLoader::willPerformHTTPRedirection):
(WebKit::NetworkResourceLoader::didReceiveChallenge):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didReceiveData):
(WebKit::NetworkResourceLoader::didCompleteWithError):
(WebKit::NetworkResourceLoader::didReceiveResponseAsync):
(WebKit::NetworkResourceLoader::didReceiveBuffer):
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::didFail):
(WebKit::NetworkResourceLoader::willSendRequestAsync):
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/NetworkSession.h:
(WebKit::NetworkSessionTaskClient::~NetworkSessionTaskClient):

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

3 years agostorage/indexeddb/modern/idbdatabase-deleteobjectstore-failures.html is flaky.
beidson@apple.com [Sat, 31 Oct 2015 23:17:43 +0000 (23:17 +0000)]
storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=150735

Reviewed by Darin Adler.

Source/WebCore:

No new tests (Covered by existing tests).

Transactions were liable to commit too early because IDBRequests could be waiting
to dispatch their error/success events but their operations would no longer be
registered with the transaction.

Having outstanding requests should also keep a transaction from committing, just
like having outstanding operations should.

* Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:
(WebCore::IDBClient::IDBOpenDBRequest::onUpgradeNeeded):

* Modules/indexeddb/client/IDBRequestImpl.cpp:
(WebCore::IDBClient::IDBRequest::dispatchEvent):

* Modules/indexeddb/client/IDBTransactionImpl.cpp:
(WebCore::IDBClient::IDBTransaction::addRequest):
(WebCore::IDBClient::IDBTransaction::removeRequest):
(WebCore::IDBClient::IDBTransaction::operationTimerFired):
(WebCore::IDBClient::IDBTransaction::requestGetRecord):
(WebCore::IDBClient::IDBTransaction::requestClearObjectStore):
(WebCore::IDBClient::IDBTransaction::requestPutOrAdd):
(WebCore::IDBClient::IDBTransaction::operationDidComplete):
* Modules/indexeddb/client/IDBTransactionImpl.h:

* Modules/indexeddb/client/TransactionOperation.h:
(WebCore::IDBClient::TransactionOperation::completed):

LayoutTests:

* platform/mac-wk1/TestExpectations: Reenable the test.

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

3 years agoAir should eliminate dead code
fpizlo@apple.com [Sat, 31 Oct 2015 23:12:53 +0000 (23:12 +0000)]
Air should eliminate dead code
https://bugs.webkit.org/show_bug.cgi?id=150746

Reviewed by Geoffrey Garen.

This adds a very simple dead code elimination to Air. It simply looks at whether a Tmp or
StackSlot has ever been used by a live instruction. An instruction is live if it has non-arg
effects (branching, returning, calling, etc) or if it stores to a live Arg. An Arg is live if
it references a live Tmp or StackSlot, or if it is neither a Tmp nor a StackSlot. The phase
runs these rules to fixpoint, and then removes the dead instructions.

This also changes the AirOpcodes parser to handle multiple attributes per opcode, so that we
could conceivably say things like "FooBar /branch /effects". It also adds the /effects
attribute, which we currently use for Breakpoint and nothing else. C calls, patchpoints, and
checks are all Specials, and the Special base class by default always claims that the
instruction has effects. In the future, we could have B3 use a Patch in Air to implement
exotic math constructs; then the Special associated with that thing would claim that there
are no effects.

* JavaScriptCore.xcodeproj/project.pbxproj:
* b3/air/AirBasicBlock.h:
(JSC::B3::Air::BasicBlock::begin):
(JSC::B3::Air::BasicBlock::end):
(JSC::B3::Air::BasicBlock::at):
(JSC::B3::Air::BasicBlock::last):
(JSC::B3::Air::BasicBlock::resize):
(JSC::B3::Air::BasicBlock::appendInst):
* b3/air/AirEliminateDeadCode.cpp: Added.
(JSC::B3::Air::eliminateDeadCode):
* b3/air/AirEliminateDeadCode.h: Added.
* b3/air/AirGenerate.cpp:
(JSC::B3::Air::generate):
* b3/air/AirInst.h:
* b3/air/AirOpcode.opcodes:
* b3/air/AirSpecial.cpp:
(JSC::B3::Air::Special::name):
(JSC::B3::Air::Special::hasNonArgNonControlEffects):
(JSC::B3::Air::Special::dump):
* b3/air/AirSpecial.h:
* b3/air/opcode_generator.rb:

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

3 years agoAir needs a late register liveness phase that calls Special::reportUsedRegisters()
fpizlo@apple.com [Sat, 31 Oct 2015 23:01:30 +0000 (23:01 +0000)]
Air needs a late register liveness phase that calls Special::reportUsedRegisters()
https://bugs.webkit.org/show_bug.cgi?id=150511

Reviewed by Saam Barati.

This change adds such a phase. In the process of writing it, I was reminded about the
glaring efficiency bugs in Air::Liveness and so I filed a bug and added FIXMEs.

* JavaScriptCore.xcodeproj/project.pbxproj:
* b3/air/AirAllocateStack.cpp:
(JSC::B3::Air::allocateStack):
* b3/air/AirGenerate.cpp:
(JSC::B3::Air::generate):
* b3/air/AirReportUsedRegisters.cpp: Added.
(JSC::B3::Air::reportUsedRegisters):
* b3/air/AirReportUsedRegisters.h: Added.

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

3 years ago[GStreamer][Mac] Fix WebAudio build
commit-queue@webkit.org [Sat, 31 Oct 2015 17:48:47 +0000 (17:48 +0000)]
[GStreamer][Mac] Fix WebAudio build
https://bugs.webkit.org/show_bug.cgi?id=150030

Patch by Philippe Normand <pnormand@igalia.com> on 2015-10-31
Reviewed by Darin Adler.

Wrap Accelerate.framework API calls around USE(ACCELERATE) ifdefs.

* platform/audio/Biquad.cpp:
(WebCore::Biquad::Biquad):
(WebCore::Biquad::process):
(WebCore::Biquad::reset):
* platform/audio/Biquad.h:
* platform/audio/DirectConvolver.cpp:
(WebCore::DirectConvolver::process):
* platform/audio/FFTFrame.h:
* platform/audio/VectorMath.cpp:

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

3 years agoTeach the CompileWebKit step to look for additional arguments.
lforschler@apple.com [Sat, 31 Oct 2015 17:35:51 +0000 (17:35 +0000)]
Teach the CompileWebKit step to look for additional arguments.

Unreviewed config change.

* BuildSlaveSupport/build.webkit.org-config/master.cfg:
(CompileWebKit.start):

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

3 years agoBuiltins generator should put WebCore-only wrappers in the per-builtin header
bburg@apple.com [Sat, 31 Oct 2015 16:52:39 +0000 (16:52 +0000)]
Builtins generator should put WebCore-only wrappers in the per-builtin header
https://bugs.webkit.org/show_bug.cgi?id=150539

Reviewed by Youenn Fablet.

Source/JavaScriptCore:

If generating for WebCore, put the XXXWrapper and related boilerplate
in the per-builtin header instead of making a separate XXXWrapper.h.

Rebaseline the tests.

* CMakeLists.txt:
* DerivedSources.make:
* Scripts/builtins/builtins.py:
* Scripts/builtins/builtins_generate_separate_header.py:
(BuiltinsSeparateHeaderGenerator.generate_output):
(generate_header_includes):
* Scripts/builtins/builtins_generate_separate_wrapper.py: Deleted.
* Scripts/builtins/builtins_templates.py: Be consistent with variables.
* Scripts/generate-js-builtins.py:
* Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
* Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
* Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
* Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:

Source/WebCore:

Fix includes of removed XXXWrapper.h headers.

* CMakeLists.txt:
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreJSBuiltinInternals.h:
* bindings/js/WebCoreJSBuiltins.h:

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

3 years agoAdd the support for Symbol attributes on IDL
utatane.tea@gmail.com [Sat, 31 Oct 2015 15:37:03 +0000 (15:37 +0000)]
Add the support for Symbol attributes on IDL
https://bugs.webkit.org/show_bug.cgi?id=150586

Reviewed by Ryosuke Niwa.

This patch addes readonly attribute support for Symbols.
It involves the IDL generator functionality converting Native type (PrivateName) to Symbol.

* bindings/scripts/CodeGeneratorGObject.pm:
(SkipAttribute):
(SkipFunction):
* bindings/scripts/CodeGeneratorJS.pm:
(NativeToJSValue):
* bindings/scripts/CodeGeneratorObjC.pm:
(SkipFunction):
(SkipAttribute):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjReadOnlySymbolAttr):
(WebCore::jsTestObjConstructorStaticReadOnlySymbolAttr):
* bindings/scripts/test/TestObj.idl:

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

3 years agoJSC should have a forceGCSlowPaths option
sbarati@apple.com [Sat, 31 Oct 2015 09:15:35 +0000 (09:15 +0000)]
JSC should have a forceGCSlowPaths option
https://bugs.webkit.org/show_bug.cgi?id=150744

Reviewed by Filip Pizlo.

This patch implements the forceGCSlowPaths option.
It defaults to false, but when it is set to true,
the JITs will always allocate objects along the slow
path. This will be helpful for writing a certain class
of tests. This may also come in handy for debugging
later.

This patch also adds the "forceGCSlowPaths" function
in jsc.cpp which sets the option to true. If you
use this function in a jsc stress test, it's best
to call it as the first thing in the program before
we JIT anything.

* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::emitAllocateJSCell):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::LowerDFGToLLVM::allocateCell):
* jit/JITInlines.h:
(JSC::JIT::emitAllocateJSObject):
* jsc.cpp:
(GlobalObject::finishCreation):
(functionEdenGC):
(functionForceGCSlowPaths):
(functionHeapSize):
* runtime/Options.h:

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

3 years agoWeb Inspector: Test Debugger.scriptParsed events received after opening inspector...
commit-queue@webkit.org [Sat, 31 Oct 2015 04:58:28 +0000 (04:58 +0000)]
Web Inspector: Test Debugger.scriptParsed events received after opening inspector frontend
https://bugs.webkit.org/show_bug.cgi?id=150753

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-10-30
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

* parser/Parser.h:
(JSC::Parser<LexerType>::parse):
Only set the directives on the SourceProvider if we were parsing the
entire file (Program or Module), not if we are in function parsing mode.
This was inadvertently clearing the directives stored on the
SourceProvider when the function parse didn't see directives and reset
the values on the source provider.

LayoutTests:

Explicit test for the scriptParsed events we expect to see
when first opening the inspector on an already open page.
We do not expect to see some scripts (built-ins) but do expect
to see all user scripts evaluated on the page.

* inspector/debugger/scriptParsed-expected.txt: Added.
* inspector/debugger/scriptParsed.html: Added.

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

3 years ago[JSC] Add lowering for B3's Sub operation with integers
benjamin@webkit.org [Sat, 31 Oct 2015 04:03:58 +0000 (04:03 +0000)]
[JSC] Add lowering for B3's Sub operation with integers
https://bugs.webkit.org/show_bug.cgi?id=150749

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-10-30
Reviewed by Filip Pizlo.

* b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::trySub):
(JSC::B3::Air::LowerToAir::tryStoreSubLoad):
* b3/B3LoweringMatcher.patterns:
Identical to Add but obviously NotCommutative.

* b3/B3ReduceStrength.cpp:
Turn Add/Sub with zero into an identity. I only added for
Add since Sub with a constant is always turned into an Add.

Also switched the Sub optimizations to put the strongest first.

* b3/air/AirOpcode.opcodes:
* b3/testb3.cpp:
(JSC::B3::testAddArgImm):
(JSC::B3::testAddImmArg):
(JSC::B3::testSubArgs):
(JSC::B3::testSubArgImm):
(JSC::B3::testSubImmArg):
(JSC::B3::testSubArgs32):
(JSC::B3::testSubArgImm32):
(JSC::B3::testSubImmArg32):
(JSC::B3::testStoreSubLoad):
(JSC::B3::run):

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

3 years ago[JSC] Add the Air Opcode definitions to the Xcode project file
benjamin@webkit.org [Sat, 31 Oct 2015 04:02:19 +0000 (04:02 +0000)]
[JSC] Add the Air Opcode definitions to the Xcode project file
https://bugs.webkit.org/show_bug.cgi?id=150701

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-10-30
Reviewed by Geoffrey Garen.

* JavaScriptCore.xcodeproj/project.pbxproj:
Easier for those who use Xcode :)

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

3 years agoUnreviewed, removing FIXME referencing https://bugs.webkit.org/show_bug.cgi?id=150540.
fpizlo@apple.com [Sat, 31 Oct 2015 02:20:51 +0000 (02:20 +0000)]
Unreviewed, removing FIXME referencing https://bugs.webkit.org/show_bug.cgi?id=150540.

* b3/B3ValueRep.h:

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

3 years agoWindows X86-64 change for Crash making a tail call from a getter to a host function
msaboff@apple.com [Sat, 31 Oct 2015 02:11:01 +0000 (02:11 +0000)]
Windows X86-64 change for Crash making a tail call from a getter to a host function
https://bugs.webkit.org/show_bug.cgi?id=150737

Reviewed by Geoffrey Garen.

Need to make the same change for Windows X86-64 as was made in change set
http://trac.webkit.org/changeset/191765.

* jit/JITStubsMSVC64.asm:

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

3 years agoInner height behavior when the keyboard is shown should match on WKWebView and Mobile...
wenson_hsieh@apple.com [Sat, 31 Oct 2015 01:09:10 +0000 (01:09 +0000)]
Inner height behavior when the keyboard is shown should match on WKWebView and MobileSafari
https://bugs.webkit.org/show_bug.cgi?id=150634
<rdar://problem/23202254>

Reviewed by Benjamin Poulain.

Source/WebKit2:

Make WKWebView match behavior in Safari by not firing resize events and changing the inner height when showing
or hiding the keyboard. Previously, the WKWebView would do both of the above because we use the scroll view's
contentInset property when no unobscured insets are explicitly set for the WKWebView. To fix this, when updating
the visible content rect of a WKWebView for computing the inner height, we readjust the computed bottom inset
to not take the keyboard height into account. To know how much we need to readjust the inset by, we store the
total amount by which the scroll view's bottom inset has been adjusted due to the keyboard.

We perform this readjustment in _updateVisibleContentRects rather than in _computedContentInset since some users
of _computedContentInset may still expect the bottom inset to account for the keyboard height. However, when
updating visible content rects, we should not account for the keyboard height since we don't want the inner height
to change when showing or hiding the keyboard.

Lastly, while calling _adjustForAutomaticKeyboardInfo, we may end up calling _updateVisibleContentRects. This call
is unnecessary since we call it again immediately after _adjustForAutomaticKeyboardInfo, and it also complicates
the readjustment logic, so it makes sense to prevent the update from happening altogether while we are adjusting
the scroll view's insets due to keyboard changes. Altogether, these changes mean that the computed inner height
will no longer be adjusted for the keyboard height on WKWebViews, matching the behavior observed on mobile Safari.

Test: LayoutTests/fast/events/ios/keyboard-should-not-trigger-resize.html

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _updateVisibleContentRects]):
(-[WKWebView _keyboardChangedWithInfo:adjustScrollView:]):

LayoutTests:

Tests that WKWebViews do not fire resize events or change window.innerHeight when showing or
hiding the keyboard. This behavior is consistent with mobile Safari.

* fast/events/ios/keyboard-should-not-trigger-resize-expected.txt: Added.
* fast/events/ios/keyboard-should-not-trigger-resize.html: Added.

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

3 years agoModern IDB: Support IDBObjectStore.get() for IDBKeyRanges.
beidson@apple.com [Sat, 31 Oct 2015 00:17:49 +0000 (00:17 +0000)]
Modern IDB: Support IDBObjectStore.get() for IDBKeyRanges.
https://bugs.webkit.org/show_bug.cgi?id=150718

Reviewed by Alex Christensen.

Source/WebCore:

Test: storage/indexeddb/modern/get-keyrange.html

* Modules/indexeddb/IDBKeyRangeData.cpp:
(WebCore::IDBKeyRangeData::IDBKeyRangeData):
* Modules/indexeddb/IDBKeyRangeData.h:

* Modules/indexeddb/client/IDBConnectionToServer.cpp:
(WebCore::IDBClient::IDBConnectionToServer::getRecord):
* Modules/indexeddb/client/IDBConnectionToServer.h:
* Modules/indexeddb/client/IDBConnectionToServerDelegate.h:

* Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
(WebCore::IDBClient::IDBObjectStore::get):

* Modules/indexeddb/client/IDBTransactionImpl.cpp:
(WebCore::IDBClient::IDBTransaction::requestGetRecord):
(WebCore::IDBClient::IDBTransaction::getRecordOnServer):
* Modules/indexeddb/client/IDBTransactionImpl.h:

* Modules/indexeddb/server/IDBBackingStore.h:

* Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::getRecord):
* Modules/indexeddb/server/IDBServer.h:

* Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
(WebCore::IDBServer::MemoryBackingStoreTransaction::recordValueChanged):

* Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
(WebCore::IDBServer::MemoryIDBBackingStore::getRecord):
* Modules/indexeddb/server/MemoryIDBBackingStore.h:

* Modules/indexeddb/server/MemoryObjectStore.cpp:
(WebCore::IDBServer::MemoryObjectStore::deleteRecord):
(WebCore::IDBServer::MemoryObjectStore::setKeyValue):
(WebCore::IDBServer::MemoryObjectStore::valueForKeyRange): Using a std::set, find the appropriate
  key in the range, and return the value if one exists.
(WebCore::IDBServer::MemoryObjectStore::valueForKey): Deleted.
* Modules/indexeddb/server/MemoryObjectStore.h:

* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::getRecord):
(WebCore::IDBServer::UniqueIDBDatabase::performGetRecord):
* Modules/indexeddb/server/UniqueIDBDatabase.h:

* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getRecord):
* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:

* Modules/indexeddb/shared/InProcessIDBServer.cpp:
(WebCore::InProcessIDBServer::getRecord):
* Modules/indexeddb/shared/InProcessIDBServer.h:

LayoutTests:

* storage/indexeddb/modern/get-keyrange.html: Added.
* storage/indexeddb/modern/get-keyrange-expected.txt: Added.

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

3 years agoBegin work on supporting reply blocks in _WKRemoteObjectRegistry
andersca@apple.com [Sat, 31 Oct 2015 00:12:28 +0000 (00:12 +0000)]
Begin work on supporting reply blocks in _WKRemoteObjectRegistry
https://bugs.webkit.org/show_bug.cgi?id=150739

Reviewed by Tim Horton.

Source/WebKit2:

* Platform/spi/Cocoa/BlockSPI.h:
Add SPI header.

* Shared/API/Cocoa/RemoteObjectInvocation.h:
(WebKit::RemoteObjectInvocation::ReplyInfo::ReplyInfo):
(WebKit::RemoteObjectInvocation::replyInfo):
* Shared/API/Cocoa/RemoteObjectInvocation.mm:
(WebKit::RemoteObjectInvocation::RemoteObjectInvocation):
(WebKit::RemoteObjectInvocation::encode):
(WebKit::RemoteObjectInvocation::decode):
Add an optional ReplyInfo struct to RemoteObjectInvocation.

* Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:
(generateReplyIdentifier):
Helper function to generate a reply identifier.

(-[_WKRemoteObjectRegistry _sendInvocation:interface:]):
Do some block parameter validation.

* WebKit2.xcodeproj/project.pbxproj:

Tools:

Add a test. We only test the encoding right now.

* TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.h:
* TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.mm:
(TEST):
* TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistryPlugIn.mm:
(-[RemoteObjectRegistryPlugIn sayHello:completionHandler:]):

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

3 years agoLink preview doesn't work on XHTML pages with Content-Type header as
bdakin@apple.com [Fri, 30 Oct 2015 23:59:28 +0000 (23:59 +0000)]
Link preview doesn't work on XHTML pages with Content-Type header as
‘application/xhtml+xml’
https://bugs.webkit.org/show_bug.cgi?id=150740
-and corresponding-
rdar://problem/23063585

Reviewed by Tim Horton.

For XHTML pages, the element names are lowercase. This patch uses
equalIgnoringCase to fix the bug.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _actionForLongPress]):
(-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]):
(-[WKContentView _dataForPreviewItemController:atPosition:type:]):

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

3 years agoAdd CMAke builder to build.webkit.org
lforschler@apple.com [Fri, 30 Oct 2015 23:35:25 +0000 (23:35 +0000)]
Add CMAke builder to build.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=150738

Reviewed by Alex Christensen.

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

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

3 years agoModern IDB: IDBObjectStore.clear() support.
beidson@apple.com [Fri, 30 Oct 2015 23:20:02 +0000 (23:20 +0000)]
Modern IDB: IDBObjectStore.clear() support.
https://bugs.webkit.org/show_bug.cgi?id=150733

Reviewed by Alex Christensen.

Source/WebCore:

Tests: storage/indexeddb/modern/idbobjectstore-clear-1.html
       storage/indexeddb/modern/idbobjectstore-clear-2.html

* Modules/indexeddb/client/IDBConnectionToServer.cpp:
(WebCore::IDBClient::IDBConnectionToServer::clearObjectStore):
(WebCore::IDBClient::IDBConnectionToServer::didClearObjectStore):
* Modules/indexeddb/client/IDBConnectionToServer.h:
* Modules/indexeddb/client/IDBConnectionToServerDelegate.h:

* Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
(WebCore::IDBClient::IDBObjectStore::clear):

* Modules/indexeddb/client/IDBRequestImpl.cpp:
(WebCore::IDBClient::IDBRequest::setResultToUndefined):
* Modules/indexeddb/client/IDBRequestImpl.h:

* Modules/indexeddb/client/IDBTransactionImpl.cpp:
(WebCore::IDBClient::IDBTransaction::requestClearObjectStore):
(WebCore::IDBClient::IDBTransaction::clearObjectStoreOnServer):
(WebCore::IDBClient::IDBTransaction::didClearObjectStoreOnServer):
* Modules/indexeddb/client/IDBTransactionImpl.h:

* Modules/indexeddb/server/IDBBackingStore.h:

* Modules/indexeddb/server/IDBConnectionToClient.cpp:
(WebCore::IDBServer::IDBConnectionToClient::didClearObjectStore):
* Modules/indexeddb/server/IDBConnectionToClient.h:
* Modules/indexeddb/server/IDBConnectionToClientDelegate.h:

* Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::clearObjectStore):
* Modules/indexeddb/server/IDBServer.h:

* Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
(WebCore::IDBServer::MemoryBackingStoreTransaction::objectStoreCleared):
(WebCore::IDBServer::MemoryBackingStoreTransaction::recordValueChanged):
(WebCore::IDBServer::MemoryBackingStoreTransaction::abort):
* Modules/indexeddb/server/MemoryBackingStoreTransaction.h:
(WebCore::IDBServer::MemoryBackingStoreTransaction::isAborting):

* Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
(WebCore::IDBServer::MemoryIDBBackingStore::clearObjectStore):
* Modules/indexeddb/server/MemoryIDBBackingStore.h:

* Modules/indexeddb/server/MemoryObjectStore.cpp:
(WebCore::IDBServer::MemoryObjectStore::clear):
(WebCore::IDBServer::MemoryObjectStore::replaceKeyValueStore):
* Modules/indexeddb/server/MemoryObjectStore.h:

* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::clearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performClearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformClearObjectStore):
* Modules/indexeddb/server/UniqueIDBDatabase.h:

* Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didClearObjectStore):
* Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:

* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::clearObjectStore):
* Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:

* Modules/indexeddb/shared/IDBResultData.cpp:
(WebCore::IDBResultData::clearObjectStoreSuccess):
* Modules/indexeddb/shared/IDBResultData.h:

* Modules/indexeddb/shared/InProcessIDBServer.cpp:
(WebCore::InProcessIDBServer::didClearObjectStore):
(WebCore::InProcessIDBServer::clearObjectStore):
* Modules/indexeddb/shared/InProcessIDBServer.h:

LayoutTests:

* storage/indexeddb/modern/idbobjectstore-clear-1-expected.txt: Added.
* storage/indexeddb/modern/idbobjectstore-clear-1.html: Added.
* storage/indexeddb/modern/idbobjectstore-clear-2-expected.txt: Added.
* storage/indexeddb/modern/idbobjectstore-clear-2.html: Added.
* storage/indexeddb/modern/idbobjectstore-put-and-clear-failures-expected.txt: Added.
* storage/indexeddb/modern/idbobjectstore-put-and-clear-failures.html: Added.

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

3 years agoCSSParserVariable leaks seen on leaks bots
commit-queue@webkit.org [Fri, 30 Oct 2015 23:18:27 +0000 (23:18 +0000)]
CSSParserVariable leaks seen on leaks bots
https://bugs.webkit.org/show_bug.cgi?id=150724

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-10-30
Reviewed by Darin Adler.

* css/CSSParserValues.cpp:
(WebCore::destroy):
Cleanup variable CSSParserValues.

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

3 years agoWKView being inside WKWebView leads to weird API issues
timothy_horton@apple.com [Fri, 30 Oct 2015 22:48:32 +0000 (22:48 +0000)]
WKView being inside WKWebView leads to weird API issues
https://bugs.webkit.org/show_bug.cgi?id=150174

Reviewed by Anders Carlsson.

* UIProcess/API/mac/WKView.mm:
(-[WKView initWithFrame:processGroup:browsingContextGroup:relatedToView:]):
(-[WKView prepareContentInRect:]):
(-[WKView initWithFrame:processPool:configuration:webView:]):
(-[WKView pageRef]):
(-[WKView _web_immediateActionAnimationControllerForHitTestResultInternal:withType:userData:]):
(-[WKView dealloc]): Deleted.
* UIProcess/Cocoa/WebViewImpl.h:
(WebKit::WebViewImpl::page):
* UIProcess/Cocoa/WebViewImpl.mm:
(-[WKWindowVisibilityObserver initWithView:impl:]):
(-[WKWindowVisibilityObserver dealloc]):
(-[WKWindowVisibilityObserver _activeSpaceDidChange:]):
(WebKit::WebViewImpl::WebViewImpl):
(WebKit::WebViewImpl::~WebViewImpl):
(WebKit::WebViewImpl::setDrawsBackground):
(WebKit::WebViewImpl::drawsBackground):
(WebKit::WebViewImpl::setDrawsTransparentBackground):
(WebKit::WebViewImpl::drawsTransparentBackground):
(WebKit::WebViewImpl::isOpaque):
(WebKit::WebViewImpl::acceptsFirstMouse):
(WebKit::WebViewImpl::becomeFirstResponder):
(WebKit::WebViewImpl::resignFirstResponder):
(WebKit::WebViewImpl::viewWillStartLiveResize):
(WebKit::WebViewImpl::viewDidEndLiveResize):
(WebKit::WebViewImpl::updateWindowAndViewFrames):
(WebKit::WebViewImpl::setFixedLayoutSize):
(WebKit::WebViewImpl::fixedLayoutSize):
(WebKit::WebViewImpl::isUsingUISideCompositing):
(WebKit::WebViewImpl::setDrawingAreaSize):
(WebKit::WebViewImpl::forceAsyncDrawingAreaSizeUpdate):
(WebKit::WebViewImpl::waitForAsyncDrawingAreaSizeUpdate):
(WebKit::WebViewImpl::updateLayer):
(WebKit::WebViewImpl::drawRect):
(WebKit::WebViewImpl::dispatchSetTopContentInset):
(WebKit::WebViewImpl::prepareContentInRect):
(WebKit::WebViewImpl::updateViewExposedRect):
(WebKit::WebViewImpl::setMinimumSizeForAutoLayout):
(WebKit::WebViewImpl::minimumSizeForAutoLayout):
(WebKit::WebViewImpl::setShouldExpandToViewHeightForAutoLayout):
(WebKit::WebViewImpl::shouldExpandToViewHeightForAutoLayout):
(WebKit::WebViewImpl::setIntrinsicContentSize):
(WebKit::WebViewImpl::setViewScale):
(WebKit::WebViewImpl::viewScale):
(WebKit::WebViewImpl::supportsArbitraryLayoutModes):
(WebKit::WebViewImpl::setOverrideDeviceScaleFactor):
(WebKit::WebViewImpl::windowDidOrderOffScreen):
(WebKit::WebViewImpl::windowDidOrderOnScreen):
(WebKit::WebViewImpl::windowDidBecomeKey):
(WebKit::WebViewImpl::windowDidResignKey):
(WebKit::WebViewImpl::windowDidMiniaturize):
(WebKit::WebViewImpl::windowDidDeminiaturize):
(WebKit::WebViewImpl::windowDidChangeBackingProperties):
(WebKit::WebViewImpl::windowDidChangeScreen):
(WebKit::WebViewImpl::windowDidChangeLayerHosting):
(WebKit::WebViewImpl::windowDidChangeOcclusionState):
(WebKit::WebViewImpl::shouldDelayWindowOrderingForEvent):
(WebKit::WebViewImpl::windowResizeMouseLocationIsInVisibleScrollerThumb):
(WebKit::WebViewImpl::viewDidMoveToWindow):
(WebKit::WebViewImpl::viewDidChangeBackingProperties):
(WebKit::WebViewImpl::viewDidHide):
(WebKit::WebViewImpl::viewDidUnhide):
(WebKit::WebViewImpl::activeSpaceDidChange):
(WebKit::WebViewImpl::postFakeMouseMovedEventForFlagsChangedEvent):
(WebKit::WebViewImpl::setUnderlayColor):
(WebKit::WebViewImpl::underlayColor):
(WebKit::WebViewImpl::pageExtendedBackgroundColor):
(WebKit::WebViewImpl::setOverlayScrollbarStyle):
(WebKit::WebViewImpl::overlayScrollbarStyle):
(WebKit::WebViewImpl::endDeferringViewInWindowChanges):
(WebKit::WebViewImpl::endDeferringViewInWindowChangesSync):
(WebKit::WebViewImpl::prepareForMoveToWindow):
(WebKit::WebViewImpl::updateSecureInputState):
(WebKit::WebViewImpl::setPluginComplexTextInputState):
(WebKit::WebViewImpl::handlePluginComplexTextInputKeyDown):
(WebKit::WebViewImpl::handleAcceptedAlternativeText):
(WebKit::WebViewImpl::pressureChangeWithEvent):
(WebKit::WebViewImpl::isEditable):
(WebKit::WebViewImpl::executeEditCommandForSelector):
(WebKit::WebViewImpl::writeSelectionToPasteboard):
(WebKit::WebViewImpl::readSelectionFromPasteboard):
(WebKit::WebViewImpl::validRequestorForSendAndReturnTypes):
(WebKit::WebViewImpl::centerSelectionInVisibleArea):
(WebKit::WebViewImpl::updateFontPanelIfNeeded):
(WebKit::WebViewImpl::changeFontFromFontPanel):
(WebKit::WebViewImpl::validateUserInterfaceItem):
(WebKit::WebViewImpl::startSpeaking):
(WebKit::WebViewImpl::showGuessPanel):
(WebKit::WebViewImpl::checkSpelling):
(WebKit::WebViewImpl::changeSpelling):
(WebKit::WebViewImpl::toggleContinuousSpellChecking):
(WebKit::WebViewImpl::setGrammarCheckingEnabled):
(WebKit::WebViewImpl::toggleGrammarChecking):
(WebKit::WebViewImpl::toggleAutomaticSpellingCorrection):
(WebKit::WebViewImpl::toggleSmartInsertDelete):
(WebKit::WebViewImpl::setAutomaticQuoteSubstitutionEnabled):
(WebKit::WebViewImpl::toggleAutomaticQuoteSubstitution):
(WebKit::WebViewImpl::setAutomaticDashSubstitutionEnabled):
(WebKit::WebViewImpl::toggleAutomaticDashSubstitution):
(WebKit::WebViewImpl::setAutomaticLinkDetectionEnabled):
(WebKit::WebViewImpl::toggleAutomaticLinkDetection):
(WebKit::WebViewImpl::setAutomaticTextReplacementEnabled):
(WebKit::WebViewImpl::toggleAutomaticTextReplacement):
(WebKit::WebViewImpl::uppercaseWord):
(WebKit::WebViewImpl::lowercaseWord):
(WebKit::WebViewImpl::capitalizeWord):
(WebKit::WebViewImpl::preferencesDidChange):
(WebKit::WebViewImpl::dismissContentRelativeChildWindowsFromViewOnly):
(WebKit::WebViewImpl::quickLookWithEvent):
(WebKit::WebViewImpl::immediateActionAnimationControllerForHitTestResult):
(WebKit::WebViewImpl::didChangeContentSize):
(WebKit::WebViewImpl::setIgnoresNonWheelEvents):
(WebKit::WebViewImpl::updateRemoteAccessibilityRegistration):
(WebKit::WebViewImpl::accessibilityRegisterUIProcessTokens):
(WebKit::WebViewImpl::stringForToolTip):
(WebKit::WebViewImpl::setInspectorAttachmentView):
(WebKit::WebViewImpl::remoteObjectRegistry):
(WebKit::WebViewImpl::browsingContextController):
(WebKit::WebViewImpl::draggedImage):
(WebKit::WebViewImpl::draggingEntered):
(WebKit::WebViewImpl::draggingUpdated):
(WebKit::WebViewImpl::draggingExited):
(WebKit::WebViewImpl::performDragOperation):
(WebKit::WebViewImpl::takeViewSnapshot):
(WebKit::WebViewImpl::saveBackForwardSnapshotForCurrentItem):
(WebKit::WebViewImpl::saveBackForwardSnapshotForItem):
(WebKit::WebViewImpl::setAllowsBackForwardNavigationGestures):
(WebKit::WebViewImpl::setMagnification):
(WebKit::WebViewImpl::magnification):
(WebKit::WebViewImpl::scrollWheel):
(WebKit::WebViewImpl::swipeWithEvent):
(WebKit::WebViewImpl::magnifyWithEvent):
(WebKit::WebViewImpl::rotateWithEvent):
(WebKit::WebViewImpl::doCommandBySelector):
(WebKit::WebViewImpl::insertText):
(WebKit::WebViewImpl::selectedRangeWithCompletionHandler):
(WebKit::WebViewImpl::markedRangeWithCompletionHandler):
(WebKit::WebViewImpl::hasMarkedTextWithCompletionHandler):
(WebKit::WebViewImpl::attributedSubstringForProposedRange):
(WebKit::WebViewImpl::firstRectForCharacterRange):
(WebKit::WebViewImpl::characterIndexForPoint):
(WebKit::WebViewImpl::inputContext):
(WebKit::WebViewImpl::unmarkText):
(WebKit::WebViewImpl::setMarkedText):
(WebKit::WebViewImpl::performKeyEquivalent):
(WebKit::WebViewImpl::keyUp):
(WebKit::WebViewImpl::keyDown):
(WebKit::WebViewImpl::flagsChanged):
(WebKit::WebViewImpl::executeSavedKeypressCommands):
(WebKit::WebViewImpl::selectedRange):
(WebKit::WebViewImpl::hasMarkedText):
(WebKit::WebViewImpl::markedRange):
(WebKit::WebViewImpl::setContentPreparationRect): Deleted.
(WebKit::WebViewImpl::immediateActionAnimationControllerForHitTestResultFromViewOnly): Deleted.
(WebKit::WebViewImpl::destroyRemoteObjectRegistry): Deleted.
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::scrollPinningBehavior):
(WebKit::WebPageProxy::overlayScrollbarStyle):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createWebPage):
* UIProcess/WebProcessPool.h:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::PageClientImpl):
(WebKit::PageClientImpl::createDrawingAreaProxy):
(WebKit::PageClientImpl::viewSize):
(WebKit::PageClientImpl::activeView):
(WebKit::PageClientImpl::activeWindow):
(WebKit::PageClientImpl::isViewFocused):
(WebKit::PageClientImpl::makeFirstResponder):
(WebKit::PageClientImpl::isViewVisible):
(WebKit::PageClientImpl::colorSpace):
(WebKit::PageClientImpl::processDidExit):
(WebKit::PageClientImpl::pageClosed):
(WebKit::PageClientImpl::didRelaunchProcess):
(WebKit::PageClientImpl::preferencesDidChange):
(WebKit::PageClientImpl::toolTipChanged):
(WebKit::PageClientImpl::didCommitLoadForMainFrame):
(WebKit::PageClientImpl::didChangeContentSize):
(WebKit::PageClientImpl::setCursor):
(WebKit::PageClientImpl::registerEditCommand):
(WebKit::PageClientImpl::registerInsertionUndoGrouping):
(WebKit::PageClientImpl::clearAllEditCommands):
(WebKit::PageClientImpl::canUndoRedo):
(WebKit::PageClientImpl::executeUndoRedo):
(WebKit::PageClientImpl::setDragImage):
(WebKit::PageClientImpl::setPromisedDataForImage):
(WebKit::PageClientImpl::setPromisedDataForAttachment):
(WebKit::PageClientImpl::updateSecureInputState):
(WebKit::PageClientImpl::resetSecureInputState):
(WebKit::PageClientImpl::notifyInputContextAboutDiscardedComposition):
(WebKit::PageClientImpl::convertToDeviceSpace):
(WebKit::PageClientImpl::convertToUserSpace):
(WebKit::PageClientImpl::screenToRootView):
(WebKit::PageClientImpl::rootViewToScreen):
(WebKit::PageClientImpl::doneWithKeyEvent):
(WebKit::PageClientImpl::createPopupMenuProxy):
(WebKit::PageClientImpl::createContextMenuProxy):
(WebKit::PageClientImpl::createColorPicker):
(WebKit::PageClientImpl::setTextIndicator):
(WebKit::PageClientImpl::clearTextIndicator):
(WebKit::PageClientImpl::setTextIndicatorAnimationProgress):
(WebKit::PageClientImpl::accessibilityWebProcessTokenReceived):
(WebKit::PageClientImpl::enterAcceleratedCompositingMode):
(WebKit::PageClientImpl::exitAcceleratedCompositingMode):
(WebKit::PageClientImpl::updateAcceleratedCompositingMode):
(WebKit::PageClientImpl::setAcceleratedCompositingRootLayer):
(WebKit::PageClientImpl::acceleratedCompositingRootLayer):
(WebKit::PageClientImpl::takeViewSnapshot):
(WebKit::PageClientImpl::selectionDidChange):
(WebKit::PageClientImpl::wheelEventWasNotHandledByWebCore):
(WebKit::PageClientImpl::gestureEventWasNotHandledByWebCore):
(WebKit::PageClientImpl::pluginFocusOrWindowFocusChanged):
(WebKit::PageClientImpl::setPluginComplexTextInputState):
(WebKit::PageClientImpl::didPerformDictionaryLookup):
(WebKit::PageClientImpl::dismissContentRelativeChildWindows):
(WebKit::PageClientImpl::showCorrectionPanel):
(WebKit::PageClientImpl::recordAutocorrectionResponse):
(WebKit::PageClientImpl::recommendedScrollbarStyleDidChange):
(WebKit::PageClientImpl::intrinsicContentSizeDidChange):
(WebKit::PageClientImpl::executeSavedCommandBySelector):
(WebKit::PageClientImpl::showDictationAlternativeUI):
(WebKit::PageClientImpl::closeFullScreenManager):
(WebKit::PageClientImpl::isFullScreen):
(WebKit::PageClientImpl::enterFullScreen):
(WebKit::PageClientImpl::exitFullScreen):
(WebKit::PageClientImpl::beganEnterFullScreen):
(WebKit::PageClientImpl::beganExitFullScreen):
(WebKit::PageClientImpl::didFirstVisuallyNonEmptyLayoutForMainFrame):
(WebKit::PageClientImpl::didFinishLoadForMainFrame):
(WebKit::PageClientImpl::didFailLoadForMainFrame):
(WebKit::PageClientImpl::didSameDocumentNavigationForMainFrame):
(WebKit::PageClientImpl::removeNavigationGestureSnapshot):
(WebKit::PageClientImpl::boundsOfLayerInLayerBackedWindowCoordinates):
(WebKit::PageClientImpl::didPerformImmediateActionHitTest):
(WebKit::PageClientImpl::immediateActionAnimationControllerForHitTestResult):
(WebKit::PageClientImpl::showPlatformContextMenu):
(WebKit::PageClientImpl::refView):
(WebKit::PageClientImpl::derefView):
(WebKit::PageClientImpl::startWindowDrag):
(WebKit::PageClientImpl::platformWindow):
(WebKit::PageClientImpl::inspectorAttachmentView):
(WebKit::PageClientImpl::remoteObjectRegistry):
* UIProcess/mac/WebColorPickerMac.h:
* UIProcess/mac/WebColorPickerMac.mm:
(WebKit::WebColorPickerMac::create):
(WebKit::WebColorPickerMac::WebColorPickerMac):
(-[WKColorPopoverMac initWithFrame:inView:]):
* UIProcess/mac/WebContextMenuProxyMac.h:
* UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::WebContextMenuProxyMac):
* UIProcess/mac/WebPopupMenuProxyMac.h:
(WebKit::WebPopupMenuProxyMac::create):
* UIProcess/mac/WebPopupMenuProxyMac.mm:
(WebKit::WebPopupMenuProxyMac::WebPopupMenuProxyMac):
Move ownership of WebPageProxy and PageClientImpl to WebViewImpl.

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

3 years agoUnreviewed, forgot to mark tests as passing for new feature.
keith_miller@apple.com [Fri, 30 Oct 2015 22:31:49 +0000 (22:31 +0000)]
Unreviewed, forgot to mark tests as passing for new feature.

* tests/es6.yaml:

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

3 years agoMarking imported/w3c/web-platform-tests/XMLHttpRequest/send-timeout-events.htm as...
ryanhaddad@apple.com [Fri, 30 Oct 2015 22:07:11 +0000 (22:07 +0000)]
Marking imported/w3c/web-platform-tests/XMLHttpRequest/send-timeout-events.htm as flaky on win
https://bugs.webkit.org/show_bug.cgi?id=150594

Unreviewed test gardening.

* platform/win/TestExpectations:

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

3 years agoWeb Inspector: Unexpected background color behind the Continue button in the Debugger...
timothy@apple.com [Fri, 30 Oct 2015 21:57:31 +0000 (21:57 +0000)]
Web Inspector: Unexpected background color behind the Continue button in the DebuggerDashboardView
https://bugs.webkit.org/show_bug.cgi?id=150734

Reviewed by Brian Burg.

* UserInterface/Views/DebuggerDashboardView.css:
(.dashboard.debugger .navigation-bar .item.button):
(.dashboard.debugger .navigation-bar .item.button > .glyph):

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

3 years agoB3 should be able to compile a control flow diamond
fpizlo@apple.com [Fri, 30 Oct 2015 21:49:23 +0000 (21:49 +0000)]
B3 should be able to compile a control flow diamond
https://bugs.webkit.org/show_bug.cgi?id=150720

Reviewed by Benjamin Poulain.

Adds support for Branch, Jump, Upsilon, and Phi. Adds some basic strength reduction for
comparisons and boolean-like operations.

* assembler/MacroAssembler.cpp:
(WTF::printInternal):
* assembler/MacroAssembler.h:
* b3/B3BasicBlockUtils.h:
(JSC::B3::replacePredecessor):
(JSC::B3::resetReachability):
* b3/B3CheckValue.h:
* b3/B3Common.h:
(JSC::B3::isRepresentableAsImpl):
(JSC::B3::isRepresentableAs):
* b3/B3Const32Value.cpp:
(JSC::B3::Const32Value::subConstant):
(JSC::B3::Const32Value::equalConstant):
(JSC::B3::Const32Value::notEqualConstant):
(JSC::B3::Const32Value::dumpMeta):
* b3/B3Const32Value.h:
* b3/B3Const64Value.cpp:
(JSC::B3::Const64Value::subConstant):
(JSC::B3::Const64Value::equalConstant):
(JSC::B3::Const64Value::notEqualConstant):
(JSC::B3::Const64Value::dumpMeta):
* b3/B3Const64Value.h:
* b3/B3ConstDoubleValue.cpp:
(JSC::B3::ConstDoubleValue::subConstant):
(JSC::B3::ConstDoubleValue::equalConstant):
(JSC::B3::ConstDoubleValue::notEqualConstant):
(JSC::B3::ConstDoubleValue::dumpMeta):
* b3/B3ConstDoubleValue.h:
* b3/B3ControlValue.cpp:
(JSC::B3::ControlValue::~ControlValue):
(JSC::B3::ControlValue::convertToJump):
(JSC::B3::ControlValue::dumpMeta):
* b3/B3ControlValue.h:
* b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::imm):
(JSC::B3::Air::LowerToAir::tryStackSlot):
(JSC::B3::Air::LowerToAir::tryUpsilon):
(JSC::B3::Air::LowerToAir::tryPhi):
(JSC::B3::Air::LowerToAir::tryBranch):
(JSC::B3::Air::LowerToAir::tryJump):
(JSC::B3::Air::LowerToAir::tryIdentity):
* b3/B3LoweringMatcher.patterns:
* b3/B3Opcode.h:
* b3/B3Procedure.cpp:
(JSC::B3::Procedure::resetReachability):
(JSC::B3::Procedure::dump):
* b3/B3ReduceStrength.cpp:
* b3/B3UpsilonValue.cpp:
(JSC::B3::UpsilonValue::dumpMeta):
* b3/B3UpsilonValue.h:
(JSC::B3::UpsilonValue::accepts): Deleted.
(JSC::B3::UpsilonValue::phi): Deleted.
(JSC::B3::UpsilonValue::UpsilonValue): Deleted.
* b3/B3Validate.cpp:
* b3/B3Value.cpp:
(JSC::B3::Value::subConstant):
(JSC::B3::Value::equalConstant):
(JSC::B3::Value::notEqualConstant):
(JSC::B3::Value::returnsBool):
(JSC::B3::Value::asTriState):
(JSC::B3::Value::effects):
* b3/B3Value.h:
* b3/B3ValueInlines.h:
(JSC::B3::Value::asInt32):
(JSC::B3::Value::isInt32):
(JSC::B3::Value::hasInt64):
(JSC::B3::Value::asInt64):
(JSC::B3::Value::isInt64):
(JSC::B3::Value::hasInt):
(JSC::B3::Value::asIntPtr):
(JSC::B3::Value::isIntPtr):
(JSC::B3::Value::hasDouble):
(JSC::B3::Value::asDouble):
(JSC::B3::Value::isEqualToDouble):
(JSC::B3::Value::hasNumber):
(JSC::B3::Value::representableAs):
(JSC::B3::Value::asNumber):
(JSC::B3::Value::stackmap):
* b3/air/AirArg.cpp:
(JSC::B3::Air::Arg::dump):
* b3/air/AirArg.h:
(JSC::B3::Air::Arg::resCond):
(JSC::B3::Air::Arg::doubleCond):
(JSC::B3::Air::Arg::special):
(JSC::B3::Air::Arg::isResCond):
(JSC::B3::Air::Arg::isDoubleCond):
(JSC::B3::Air::Arg::isSpecial):
(JSC::B3::Air::Arg::isGP):
(JSC::B3::Air::Arg::isFP):
(JSC::B3::Air::Arg::asResultCondition):
(JSC::B3::Air::Arg::asDoubleCondition):
(JSC::B3::Air::Arg::Arg):
* b3/air/AirCode.cpp:
(JSC::B3::Air::Code::resetReachability):
(JSC::B3::Air::Code::dump):
* b3/air/AirOpcode.opcodes:
* b3/air/opcode_generator.rb:
* b3/testb3.cpp:
(hiddenTruthBecauseNoReturnIsStupid):
(usage):
(JSC::B3::compile):
(JSC::B3::invoke):
(JSC::B3::compileAndRun):
(JSC::B3::test42):
(JSC::B3::testStoreLoadStackSlot):
(JSC::B3::testBranch):
(JSC::B3::testDiamond):
(JSC::B3::testBranchNotEqual):
(JSC::B3::testBranchFold):
(JSC::B3::testDiamondFold):
(JSC::B3::run):
(run):
(main):

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

3 years ago[ES6] Add support for toStringTag
keith_miller@apple.com [Fri, 30 Oct 2015 21:37:25 +0000 (21:37 +0000)]
[ES6] Add support for toStringTag
https://bugs.webkit.org/show_bug.cgi?id=150696

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

This patch adds support for Symbol.toStringTag. This is a simple
feature, if an object passed to Object.prototype.toString() has a
toStringTag we use the tag in the string rather than the class info.
Added a test that checks this works for all the default supported classes
along with the corresponding prototype and custom cases.

* runtime/ArrayIteratorPrototype.cpp:
(JSC::ArrayIteratorPrototype::finishCreation):
* runtime/CommonIdentifiers.h:
* runtime/JSArrayBufferPrototype.cpp:
(JSC::JSArrayBufferPrototype::finishCreation):
* runtime/JSDataViewPrototype.cpp:
(JSC::JSDataViewPrototype::finishCreation):
* runtime/JSDataViewPrototype.h:
* runtime/JSModuleNamespaceObject.cpp:
(JSC::JSModuleNamespaceObject::finishCreation):
* runtime/JSONObject.cpp:
(JSC::JSONObject::finishCreation):
* runtime/JSPromisePrototype.cpp:
(JSC::JSPromisePrototype::finishCreation):
* runtime/JSTypedArrayViewPrototype.cpp:
(JSC::typedArrayViewProtoGetterFuncToStringTag):
(JSC::JSTypedArrayViewPrototype::finishCreation):
* runtime/MapIteratorPrototype.cpp:
(JSC::MapIteratorPrototype::finishCreation):
* runtime/MapPrototype.cpp:
(JSC::MapPrototype::finishCreation):
* runtime/MathObject.cpp:
(JSC::MathObject::finishCreation):
* runtime/ObjectPrototype.cpp:
(JSC::objectProtoFuncToString):
* runtime/SetIteratorPrototype.cpp:
(JSC::SetIteratorPrototype::finishCreation):
* runtime/SetPrototype.cpp:
(JSC::SetPrototype::finishCreation):
* runtime/SmallStrings.cpp:
(JSC::SmallStrings::SmallStrings):
(JSC::SmallStrings::initializeCommonStrings):
(JSC::SmallStrings::visitStrongReferences):
* runtime/SmallStrings.h:
(JSC::SmallStrings::objectStringStart):
* runtime/StringIteratorPrototype.cpp:
(JSC::StringIteratorPrototype::finishCreation):
* runtime/SymbolPrototype.cpp:
(JSC::SymbolPrototype::finishCreation):
* runtime/WeakMapPrototype.cpp:
(JSC::WeakMapPrototype::finishCreation):
* runtime/WeakSetPrototype.cpp:
(JSC::WeakSetPrototype::finishCreation):
* tests/modules/namespace.js:
* tests/stress/symbol-tostringtag.js: Added.
(toStr):
(strName):
(classes.string_appeared_here):

LayoutTests:

Symbol now has toStringTag as a member. Since Object.prototype.toString()
now does a [[Get]] on the object being stringed there are new console
error messages when accessing another window's properties.

* http/tests/history/cross-origin-replace-history-object-child-expected.txt:
* http/tests/security/cross-frame-access-custom-expected.txt:
* http/tests/security/cross-frame-access-history-get-expected.txt:
* http/tests/security/cross-frame-access-object-setPrototypeOf-expected.txt:
* js/Object-getOwnPropertyNames-expected.txt:
* js/script-tests/Object-getOwnPropertyNames.js:

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

3 years agohttp/tests/notifications/legacy/events.html flakily asserts on mac-wk2, updating...
ryanhaddad@apple.com [Fri, 30 Oct 2015 21:34:42 +0000 (21:34 +0000)]
http/tests/notifications/legacy/events.html flakily asserts on mac-wk2, updating expectations
https://bugs.webkit.org/show_bug.cgi?id=150736

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

3 years agoMarking storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures.html as flaky...
ryanhaddad@apple.com [Fri, 30 Oct 2015 21:21:51 +0000 (21:21 +0000)]
Marking storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures.html as flaky on mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=150735

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

3 years agoFix Mac CMake build after rr191810.
achristensen@apple.com [Fri, 30 Oct 2015 21:13:07 +0000 (21:13 +0000)]
Fix Mac CMake build after rr191810.

* PlatformMac.cmake:
Add RemoteObjectInvocation.mm.

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

3 years agoFix Windows build.
achristensen@apple.com [Fri, 30 Oct 2015 21:02:50 +0000 (21:02 +0000)]
Fix Windows build.

* PlatformWin.cmake:
Add missing files.

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

3 years agoAdd a separate object that represents a remote object invocation
andersca@apple.com [Fri, 30 Oct 2015 20:38:12 +0000 (20:38 +0000)]
Add a separate object that represents a remote object invocation
https://bugs.webkit.org/show_bug.cgi?id=150639

Reviewed by Tim Horton.

* Shared/API/Cocoa/RemoteObjectInvocation.h: Copied from Source/WebKit2/Shared/API/Cocoa/RemoteObjectRegistry.h.
(WebKit::RemoteObjectInvocation::interfaceIdentifier):
(WebKit::RemoteObjectInvocation::encodedInvocation):
* Shared/API/Cocoa/RemoteObjectInvocation.mm: Copied from Source/WebKit2/Shared/API/Cocoa/RemoteObjectRegistry.mm.
(WebKit::RemoteObjectInvocation::RemoteObjectInvocation):
(WebKit::RemoteObjectInvocation::encode):
(WebKit::RemoteObjectInvocation::decode):
* Shared/API/Cocoa/RemoteObjectRegistry.h:
* Shared/API/Cocoa/RemoteObjectRegistry.messages.in:
* Shared/API/Cocoa/RemoteObjectRegistry.mm:
(WebKit::RemoteObjectRegistry::sendInvocation):
(WebKit::RemoteObjectRegistry::invokeMethod):
* Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:
(-[_WKRemoteObjectRegistry _sendInvocation:interface:]):
(-[_WKRemoteObjectRegistry _invokeMethod:]):
* Shared/API/Cocoa/_WKRemoteObjectRegistryInternal.h:
* WebKit2.xcodeproj/project.pbxproj:

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

3 years agoAnother speculative build fix.
bdakin@apple.com [Fri, 30 Oct 2015 20:16:39 +0000 (20:16 +0000)]
Another speculative build fix.

* UIProcess/API/Cocoa/_WKElementAction.h:

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

3 years agoMarking js/regress/ftl-object-sub.html as a flaky timeout
ryanhaddad@apple.com [Fri, 30 Oct 2015 20:13:36 +0000 (20:13 +0000)]
Marking js/regress/ftl-object-sub.html as a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=150730

Unreviewed test gardening.

* TestExpectations:

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

3 years agoSpeculative build fix.
bdakin@apple.com [Fri, 30 Oct 2015 20:12:25 +0000 (20:12 +0000)]
Speculative build fix.

* Platform/spi/ios/UIKitSPI.h:
* UIProcess/ios/WKContentViewInteraction.mm:

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

3 years agoWKView being inside WKWebView leads to weird API issues
timothy_horton@apple.com [Fri, 30 Oct 2015 20:05:05 +0000 (20:05 +0000)]
WKView being inside WKWebView leads to weird API issues
https://bugs.webkit.org/show_bug.cgi?id=150174

Reviewed by Anders Carlsson.

* UIProcess/API/mac/WKView.mm:
(-[WKView mouseMoved:]):
(-[WKView mouseDown:]):
(-[WKView mouseUp:]):
(-[WKView mouseDragged:]):
(-[WKView mouseEntered:]):
(-[WKView mouseExited:]):
(-[WKView otherMouseDown:]):
(-[WKView otherMouseDragged:]):
(-[WKView otherMouseUp:]):
(-[WKView rightMouseDown:]):
(-[WKView rightMouseDragged:]):
(-[WKView rightMouseUp:]):
(-[WKView _updateViewExposedRect]): Deleted.
* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::mouseMoved):
(WebKit::WebViewImpl::mouseDown):
(WebKit::WebViewImpl::mouseUp):
(WebKit::WebViewImpl::mouseDragged):
Move mouse event handling.

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

3 years agoTapping and holding a link should have a share option
bdakin@apple.com [Fri, 30 Oct 2015 19:38:40 +0000 (19:38 +0000)]
Tapping and holding a link should have a share option
https://bugs.webkit.org/show_bug.cgi?id=150693
-and corresponding-
rdar://problem/21319702

Reviewed by Tim Horton.

Source/WebCore:

* English.lproj/Localizable.strings:

Source/WebKit2:

New _WKElementActionType called _WKElementActionTypeShare.
* UIProcess/API/Cocoa/_WKElementAction.h:
* UIProcess/API/Cocoa/_WKElementAction.mm:
(+[_WKElementAction _elementActionWithType:customTitle:assistant:]):

_WKElementActionTypeShare is part of the default actions for links.
* UIProcess/ios/WKActionSheetAssistant.h:
* UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):

Handle the sharing part!
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView actionSheetAssistant:shareElementWithURL:rect:]):

To support this in PDF, PDF need to create a _webSelectionAssistant.
* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView web_initWithFrame:webView:]):
(-[WKPDFView actionSheetAssistant:openElementAtLocation:]):
(-[WKPDFView actionSheetAssistant:shareElementWithURL:rect:]):
(-[WKPDFView actionSheetAssistant:shouldIncludeAppLinkActionsForElement:]):

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

3 years agoMinor CGColor leaks seen on bots allocated in WebSystemBackdropLayer.mm
commit-queue@webkit.org [Fri, 30 Oct 2015 19:09:13 +0000 (19:09 +0000)]
Minor CGColor leaks seen on bots allocated in WebSystemBackdropLayer.mm
https://bugs.webkit.org/show_bug.cgi?id=150722

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-10-30
Reviewed by Andreas Kling.

* platform/graphics/ca/cocoa/WebSystemBackdropLayer.mm:
(-[WebLightSystemBackdropLayer init]):
(-[WebDarkSystemBackdropLayer init]):

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

3 years agoRegression(r191673): Crash in RunLoopTimer::schedule()
cdumez@apple.com [Fri, 30 Oct 2015 18:55:36 +0000 (18:55 +0000)]
Regression(r191673): Crash in RunLoopTimer::schedule()
https://bugs.webkit.org/show_bug.cgi?id=150723

Reviewed by Anders Carlsson.

We were crashing in RunLoopTimer::schedule() when iterating over the
SchedulePairHashSet. The reason is that we were passing this
SchedulePairHashSet from the main thread to a background thread, which
was not safe because the SchedulePair objects inside the HashSet were
not ThreadSafeRefCounted. This patch makes them ThreadSafeRefCounted.

* wtf/SchedulePair.h:

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

3 years agoWKView being inside WKWebView leads to weird API issues
timothy_horton@apple.com [Fri, 30 Oct 2015 18:52:08 +0000 (18:52 +0000)]
WKView being inside WKWebView leads to weird API issues
https://bugs.webkit.org/show_bug.cgi?id=150174

Reviewed by Anders Carlsson.

* UIProcess/API/mac/WKView.mm:
(-[WKView _wantsKeyDownForEvent:]):
(-[WKView acceptsFirstMouse:]):
(-[WKView shouldDelayWindowOrderingForEvent:]):
(-[WKView validAttributesForMarkedText]):
(-[WKView _windowResizeMouseLocationIsInVisibleScrollerThumb:]):
(-[WKView drawRect:]):
(-[WKView isOpaque]):
(-[WKView mouseDownCanMoveWindow]):
(-[WKView viewDidHide]):
(-[WKView viewDidUnhide]):
(-[WKView _activeSpaceDidChange:]):
(-[WKView hitTest:]):
(-[WKView wantsUpdateLayer]):
(-[WKView canChangeFrameLayout:]):
(-[WKView printOperationWithPrintInfo:forFrame:]):
(+[WKView hideWordDefinitionWindow]):
* UIProcess/Cocoa/WebViewImpl.h:
(WebKit::WebViewImpl::wantsUpdateLayer):
(WebKit::WebViewImpl::mouseDownCanMoveWindow):
(WebKit::WebViewImpl::wantsKeyDownForEvent):
(WebKit::WebViewImpl::layerHostingView): Deleted.
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::isOpaque):
(WebKit::WebViewImpl::acceptsFirstMouse):
(WebKit::WebViewImpl::drawRect):
(WebKit::WebViewImpl::canChangeFrameLayout):
(WebKit::WebViewImpl::printOperationWithPrintInfo):
(WebKit::WebViewImpl::shouldDelayWindowOrderingForEvent):
(WebKit::WebViewImpl::windowResizeMouseLocationIsInVisibleScrollerThumb):
(WebKit::WebViewImpl::viewDidHide):
(WebKit::WebViewImpl::viewDidUnhide):
(WebKit::WebViewImpl::activeSpaceDidChange):
(WebKit::WebViewImpl::hitTest):
(WebKit::WebViewImpl::hideWordDefinitionWindow):
(WebKit::WebViewImpl::validAttributesForMarkedText):
Printing and random bits.

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

3 years agoFixed the build.
mitz@apple.com [Fri, 30 Oct 2015 18:42:39 +0000 (18:42 +0000)]
Fixed the build.

* Plugins/WebPluginController.mm:
(WebKit_TSUpdateCheck_alertDidEnd_returnCode_contextInfo_):
(WebKit_NSAlert_beginSheetModalForWindow_modalDelegate_didEndSelector_contextInfo_):

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

3 years ago[EFL] Fix the debug build after r191758
ossy@webkit.org [Fri, 30 Oct 2015 18:21:28 +0000 (18:21 +0000)]
[EFL] Fix the debug build after r191758
https://bugs.webkit.org/show_bug.cgi?id=150719

Reviewed by Alex Christensen.

* Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
(WebCore::IDBServer::MemoryIDBBackingStore::createObjectStore):

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

3 years agoFixed the build.
mitz@apple.com [Fri, 30 Oct 2015 18:07:24 +0000 (18:07 +0000)]
Fixed the build.

* platform/graphics/Image.cpp:
(WebCore::Image::draw): Deleted an infinitely-recursive implementation that caused the
  compiler to emit an error.
* platform/graphics/Image.h:
(WebCore::Image::draw): Made this pure virtual.

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

3 years agoREGRESSION (r191691): Unexpected "Share" context menu when right clicking around...
andersca@apple.com [Fri, 30 Oct 2015 17:58:49 +0000 (17:58 +0000)]
REGRESSION (r191691): Unexpected "Share" context menu when right clicking around inspector
https://bugs.webkit.org/show_bug.cgi?id=150699
rdar://problem/23324522

Reviewed by Tim Horton.

Don't create a share menu item if we have nothing to share.

* UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::createShareMenuItem):

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

3 years agoInitialize some new WebViewImpl members
timothy_horton@apple.com [Fri, 30 Oct 2015 17:56:56 +0000 (17:56 +0000)]
Initialize some new WebViewImpl members

* UIProcess/Cocoa/WebViewImpl.h:
Oh well.

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