- 23 Aug, 2013 4 commits
-
-
bfulgham@apple.com authored
* WTF.vcxproj/WTF.vcxproj.filters: Adjust files so they show up in the proper folders. * WTF.vcxproj/WTFCommon.props: Add search path for zlib header and include link directive. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154507 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
oliver@apple.com authored
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154501 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
oliver@apple.com authored
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154499 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
oliver@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=120143 Reviewed by Gavin Barraclough. Source/JavaScriptCore: Include zlib in LD_FLAGS and make UnlinkedCodeBlock make use of CompressibleVector. This saves ~200k on google maps. * Configurations/JavaScriptCore.xcconfig: * bytecode/UnlinkedCodeBlock.cpp: (JSC::UnlinkedCodeBlock::expressionRangeForBytecodeOffset): (JSC::UnlinkedCodeBlock::addExpressionInfo): * bytecode/UnlinkedCodeBlock.h: Source/WTF: Adds a set of utility functions to wrap the use of zlib over a generic type or a Vector<> as well as adding CompressibleVector that wraps either a Vector<> or compressed data. * GNUmakefile.list.am: * WTF.pro: * WTF.vcxproj/WTF.vcxproj: * WTF.xcodeproj/project.pbxproj: * wtf/CMakeLists.txt: * wtf/CheckedArithmetic.h: * wtf/Compression.cpp: Added. (WTF::zAlloc): (WTF::zFree): (WTF::GenericCompressedData::create): (WTF::GenericCompressedData::decompress): * wtf/Compression.h: Added. (WTF::GenericCompressedData::compressedSize): (WTF::GenericCompressedData::originalSize): (WTF::GenericCompressedData::GenericCompressedData): (WTF::CompressedVector::create): (WTF::CompressedVector::decompress): (WTF::CompressedVector::size): (WTF::CompressibleVector::CompressibleVector): (WTF::CompressibleVector::shrinkToFit): (WTF::CompressibleVector::size): (WTF::CompressibleVector::operator[]): (WTF::CompressibleVector::at): (WTF::CompressibleVector::begin): (WTF::CompressibleVector::end): (WTF::CompressibleVector::data): (WTF::CompressibleVector::decompressIfNecessary): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154498 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 21 Aug, 2013 3 commits
-
-
commit-queue@webkit.org authored
http://trac.webkit.org/changeset/154416 https://bugs.webkit.org/show_bug.cgi?id=120147 Broke Windows builds (Requested by rniwa on #webkit). Source/JavaScriptCore: * JavaScriptCore.vcxproj/JavaScriptCoreGenerated.make: * JavaScriptCore.vcxproj/LLInt/LLIntAssembly/LLIntAssembly.make: * JavaScriptCore.vcxproj/LLInt/LLIntAssembly/build-LLIntAssembly.sh: * JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/LLIntDesiredOffsets.make: * JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/build-LLIntDesiredOffsets.sh: * JavaScriptCore.vcxproj/build-generated-files.sh: Source/WebCore: * WebCore.vcxproj/WebCoreGenerated.make: * WebCore.vcxproj/WebCoreGeneratedWinCairo.make: * WebCore.vcxproj/WebCoreGeneratedWinCairoCommon.props: * WebCore.vcxproj/build-generated-files.sh: * WebCore.vcxproj/copyForwardingHeaders.cmd: * WebCore.vcxproj/copyWebCoreResourceFiles.cmd: Source/WebKit: * WebKit.vcxproj/WebKit/WebKitPostBuild.cmd: * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorBuildCmd.cmd: * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPostBuild.cmd: * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPreBuild.cmd: Source/WTF: * WTF.vcxproj/WTFGenerated.make: * WTF.vcxproj/build-generated-files.sh: WebKitLibraries: * win/tools/vsprops/common.props: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154436 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
https://webkit.org/b/120137achristensen@apple.com authored
Reviewed by Brent Fulgham. Source/JavaScriptCore: * JavaScriptCore.vcxproj/JavaScriptCoreGenerated.make: * JavaScriptCore.vcxproj/LLInt/LLIntAssembly/LLIntAssembly.make: * JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/LLIntDesiredOffsets.make: Pass PlatformArchitecture as a command line parameter to bash scripts. * JavaScriptCore.vcxproj/LLInt/LLIntAssembly/build-LLIntAssembly.sh: * JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/build-LLIntDesiredOffsets.sh: * JavaScriptCore.vcxproj/build-generated-files.sh: Use PlatformArchitecture from command line to determine which object directory to use (obj32 or obj64). Source/WebCore: * WebCore.vcxproj/WebCoreGenerated.make: * WebCore.vcxproj/WebCoreGeneratedWinCairo.make: Pass PlatformArchitecture as a command line parameter to bash scripts and use PlatformArchitecture to determine which directory to delete while cleaning (obj32 or obj64). * WebCore.vcxproj/WebCoreGeneratedWinCairoCommon.props: Export PlatformArchitecture to be used by make and cmd scripts. * WebCore.vcxproj/build-generated-files.sh: Use PlatformArchitecture from command line to determine which object directory to use (obj32 or obj64). * WebCore.vcxproj/copyForwardingHeaders.cmd: * WebCore.vcxproj/copyWebCoreResourceFiles.cmd: Use PlatformArchitecture to determine which directory to copy to (obj32 or obj64). Source/WebKit: * WebKit.vcxproj/WebKit/WebKitPostBuild.cmd: * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorBuildCmd.cmd: * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPostBuild.cmd: * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGeneratorPreBuild.cmd: Use PlatformArchitecture to determine correct object directory (obj32 or obj64). Source/WTF: * WTF.vcxproj/WTFGenerated.make: Pass PlatformArchitecture as a command line parameter to bash scripts. * WTF.vcxproj/build-generated-files.sh: Use PlatformArchitecture from command line to determine which object directory to use (obj32 or obj64). WebKitLibraries: * win/tools/vsprops/common.props: Export PlatformArchitecture to be used by make and cmd scripts. Use PlatformArchitecture to determine correct build directory (lib32/bin32/obj32 or lib64/bin64/obj64). git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154416 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
allan.jensen@digia.com authored
https://bugs.webkit.org/show_bug.cgi?id=119835 Reviewed by Anders Carlsson. Disable the maybe-uninitialized warning. * wtf/Compiler.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154381 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 20 Aug, 2013 3 commits
-
-
achristensen@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=119512 Reviewed by Brent Fulgham. Source/JavaScriptCore: * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj: * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters: * JavaScriptCore.vcxproj/JavaScriptCoreCommon.props: * JavaScriptCore.vcxproj/LLInt/LLIntAssembly/LLIntAssembly.vcxproj: * JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/LLIntDesiredOffsets.vcxproj: * JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor/LLIntOffsetsExtractor.vcxproj: * JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor/LLIntOffsetsExtractorCommon.props: Replaced obj32, bin32, and lib32 with macros for 64-bit build. Source/ThirdParty: * gtest/msvc/gtest-md.vcxproj: Replaced obj32, bin32, and lib32 with macros for 64-bit build. Source/WebCore: * WebCore.vcxproj/WebCore.vcxproj: * WebCore.vcxproj/WebCore.vcxproj.filters: * WebCore.vcxproj/WebCoreCommon.props: * WebCore.vcxproj/WebCoreGeneratedCommon.props: * WebCore.vcxproj/WebCoreTestSupport.vcxproj: * WebCore.vcxproj/WebCoreTestSupport.vcxproj.filters: Replaced obj32, bin32, and lib32 with macros for 64-bit build. Source/WebKit: * WebKit.vcxproj/Interfaces/InterfacesCommon.props: * WebKit.vcxproj/WebKit/WebKit.vcxproj: * WebKit.vcxproj/WebKit/WebKit.vcxproj.filters: * WebKit.vcxproj/WebKit/WebKitCommon.props: * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj: * WebKit.vcxproj/WebKitExportGenerator/WebKitExportGenerator.vcxproj.filters: * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj: * WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj.filters: * WebKit.vcxproj/WebKitGUID/WebKitGUIDCommon.props: Replaced obj32, bin32, and lib32 with macros for 64-bit build. Source/WTF: * WTF.vcxproj/WTFGeneratedCommon.props: Replaced obj32, bin32, and lib32 with macros for 64-bit build. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154333 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
https://webkit.org/b/120056commit-queue@webkit.org authored
Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2013-08-20 Reviewed by Martin Robinson. Enable DFG_JIT in GTK+ platform for ARM/Thumb architecture * wtf/Platform.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154325 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
https://webkit.org/b/120049rniwa@webkit.org authored
Reviewed by Benjamin Poulain. Source/WebCore: Delete all the code for Mac OS 10.6. Nobody builds on Snow Leopard at this point. * WebCore.exp.in: * WebCore.xcodeproj/project.pbxproj: * editing/mac/EditorMac.mm: (WebCore::Editor::pasteWithPasteboard): * page/ContextMenuController.cpp: (WebCore::ContextMenuController::populate): * platform/LocalizedStrings.cpp: (WebCore::truncatedStringForLookupMenuItem): (WebCore::contextMenuItemTagSearchWeb): (WebCore::contextMenuItemTagLookUpInDictionary): * platform/MemoryPressureHandler.cpp: * platform/audio/mac/AudioBusMac.mm: (WebCore::AudioBus::loadPlatformResource): * platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes): * platform/graphics/ca/PlatformCALayer.h: * platform/graphics/ca/mac/PlatformCALayerMac.mm: (PlatformCALayer::acceleratesDrawing): (PlatformCALayer::setAcceleratesDrawing): (PlatformCALayer::contentsScale): (PlatformCALayer::setContentsScale): (PlatformCALayer::synchronouslyDisplayTilesInRect): * platform/graphics/ca/mac/TileController.mm: (WebCore::TileController::setScale): (WebCore::TileController::setAcceleratesDrawing): (WebCore::TileController::createTileLayer): * platform/graphics/cg/ImageBufferDataCG.cpp: (WebCore::ImageBufferData::getData): (WebCore::ImageBufferData::putData): * platform/graphics/cg/ImageBufferDataCG.h: * platform/graphics/cg/PathCG.cpp: (WebCore::Path::platformAddPathForRoundedRect): * platform/graphics/cocoa/FontPlatformDataCocoa.mm: (WebCore::FontPlatformData::FontPlatformData): (WebCore::FontPlatformData::setFont): * platform/graphics/mac/FontMac.mm: (WebCore::showGlyphsWithAdvances): * platform/graphics/mac/GraphicsContextMac.mm: (WebCore::GraphicsContext::drawLineForDocumentMarker): * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivateQTKit::createQTMovie): (WebCore::MediaPlayerPrivateQTKit::layerHostChanged): * platform/graphics/mac/WebLayer.mm: (drawLayerContents): * platform/mac/CursorMac.mm: (WebCore::Cursor::ensurePlatformCursor): * platform/mac/EmptyProtocolDefinitions.h: Removed. * platform/mac/MemoryPressureHandlerMac.mm: (WebCore::MemoryPressureHandler::releaseMemory): * platform/mac/NSScrollerImpDetails.h: * platform/mac/PlatformEventFactoryMac.mm: (WebCore::momentumPhaseForEvent): (WebCore::phaseForEvent): * platform/mac/ScrollAnimatorMac.mm: * platform/mac/SharedTimerMac.mm: * platform/mac/WebCoreSystemInterface.h: * platform/mac/WebCoreSystemInterface.mm: * platform/network/mac/ResourceHandleMac.mm: * platform/network/mac/ResourceRequestMac.mm: (WebCore::ResourceRequest::doUpdateResourceRequest): (WebCore::ResourceRequest::doUpdatePlatformRequest): * platform/text/cf/HyphenationCF.cpp: * platform/text/mac/HyphenationMac.mm: Removed. * rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::containsPaintedContent): * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::shouldShowPlaceholderWhenFocused): Source/WebKit/mac: * DefaultDelegates/WebDefaultContextMenuDelegate.mm: (-[WebDefaultUIDelegate menuItemWithTag:target:representedObject:]): (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]): * Misc/WebNSControlExtras.m: (-[NSControl sizeToFitAndAdjustWindowHeight]): * Misc/WebNSFileManagerExtras.mm: * WebCoreSupport/WebEditorClient.mm: (WebEditorClient::shouldEraseMarkersAfterChangeSelection): (WebEditorClient::getGuessesForWord): * WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::dispatchDidLayout): (WebFrameLoaderClient::provisionalLoadStarted): * WebCoreSupport/WebSystemInterface.mm: (InitWebCoreSystemInterface): * WebKitPrefix.h: * WebView/WebDynamicScrollBarsView.mm: (-[WebDynamicScrollBarsView scrollWheel:]): * WebView/WebFullScreenController.mm: (convertRectToScreen): (-[WebFullScreenController finishedEnterFullScreenAnimation:]): (-[WebFullScreenController exitFullScreen]): * WebView/WebHTMLView.mm: (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]): (-[WebHTMLView removeMouseMovedObserver]): (-[WebHTMLView windowDidBecomeKey:]): (-[WebHTMLView windowDidResignKey:]): * WebView/WebView.mm: (-[WebView _deviceScaleFactor]): Source/WebKit2: * NetworkProcess/mac/NetworkProcessMac.mm: (WebKit::overrideSystemProxies): (WebKit::NetworkProcess::platformInitializeNetworkProcess): * WebKit2Prefix.h: Source/WTF: * wtf/FastMalloc.cpp: (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary): * wtf/FeatureDefines.h: * wtf/Platform.h: Tools: * DumpRenderTree/mac/CheckedMalloc.cpp: (protectionOfRegion): (makeLargeMallocFailSilently): * DumpRenderTree/mac/DumpRenderTree.mm: (resetDefaultsToConsistentValues): * DumpRenderTree/mac/DumpRenderTreeDraggingInfo.mm: (-[DumpRenderTreeDraggingInfo enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:]): * DumpRenderTree/mac/FrameLoadDelegate.mm: (testPathFromURL): (-[FrameLoadDelegate webView:didStartProvisionalLoadForFrame:]): * DumpRenderTree/mac/LayoutTestHelper.m: * DumpRenderTree/mac/TestRunnerMac.mm: * WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm: (WTR::InjectedBundle::platformInitialize): * WebKitTestRunner/InjectedBundle/mac/InjectedBundlePageMac.mm: (WTR::testPathFromURL): (WTR::InjectedBundlePage::platformDidStartProvisionalLoadForFrame): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154314 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 19 Aug, 2013 2 commits
-
-
https://webkit.org/b/120036joepeck@webkit.org authored
Reviewed by David Kilzer. Include iOS only WebCoreThread.* files in an ios group, and clean up the included files a bit. * WTF.xcodeproj/project.pbxproj: * wtf/ios/WebCoreThread.cpp: * wtf/ios/WebCoreThread.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154307 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
https://webkit.org/b/119905joepeck@webkit.org authored
Reviewed by Benjamin Poulain. Upstream iOS WebKit Source/WTF. * Configurations/Base.xcconfig: JavaScriptCore.framework is a public framework. * wtf/Assertions.h: Define an export macro for iOS projects just including <wtf/Assertions.h>. * wtf/Platform.h: * wtf/FeatureDefines.h: iOS ENABLE and USE defines. * wtf/MainThread.h: * wtf/mac/MainThreadMac.mm: (WTF::initializeApplicationUIThreadIdentifier): (WTF::initializeWebThreadIdentifier): (WTF::canAccessThreadLocalDataForThread): * wtf/WeakPtr.h: (WTF::WeakReference::get): (WTF::WeakReference::clear): Shared WebThread and MainThread access to thread local data. * wtf/WTFThreadData.cpp: (WTF::WTFThreadData::WTFThreadData): Shared WebThread and MainThread identifier tables. * wtf/ThreadSpecific.h: (WTF::::replace): Used later on so that WebThread can share the MainThread's thread global data. * wtf/text/StringStatics.cpp: (WTF::AtomicString::init): When USE(WEB_THREAD) assert AtomicString::init is initialized on the realMainThread. * wtf/unicode/CharacterNames.h: * wtf/unicode/icu/UnicodeIcu.h: (WTF::Unicode::hasLineBreakingPropertyComplexContextOrIdeographic): Minor iOS constants and functions used later by WebCore. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154294 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 16 Aug, 2013 1 commit
-
-
https://webkit.org/b/119785commit-queue@webkit.org authored
Patch by Arunprasad Rajkumar <arurajku@cisco.com> on 2013-08-16 Reviewed by Alexey Proskuryakov. Source/WebCore: WTF::currentTime() is prone to DST changes and NTP adjustments, so use WTF::monotonicallyIncreasingTime() to measure elapsed time. * Modules/filesystem/FileWriter.cpp: (WebCore::FileWriter::didWrite): * dom/Document.cpp: (WebCore::Document::Document): (WebCore::Document::elapsedTime): (WebCore::Document::resetLastHandledUserGestureTimestamp): * dom/Element.cpp: (WebCore::Element::setActive): * fileapi/FileReader.cpp: (WebCore::FileReader::didReceiveData): * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::HTMLMediaElement): (WebCore::HTMLMediaElement::startProgressEventTimer): (WebCore::HTMLMediaElement::progressEventTimerFired): (WebCore::HTMLMediaElement::refreshCachedTime): (WebCore::HTMLMediaElement::invalidateCachedTime): (WebCore::HTMLMediaElement::currentTime): (WebCore::HTMLMediaElement::startPlaybackProgressTimer): (WebCore::HTMLMediaElement::scheduleTimeupdateEvent): * html/HTMLMediaElement.h: * html/HTMLPlugInImageElement.cpp: (WebCore::documentHadRecentUserGesture): * html/MediaController.cpp: (MediaController::scheduleTimeupdateEvent): * html/parser/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::pumpPendingSpeculations): * html/parser/HTMLParserScheduler.h: (WebCore::HTMLParserScheduler::checkForYieldBeforeToken): * inspector/InspectorCSSAgent.cpp: (WebCore::SelectorProfile::SelectorProfile): (WebCore::SelectorProfile::totalMatchingTimeMs): (WebCore::SelectorProfile::startSelector): (WebCore::SelectorProfile::commitSelector): (WebCore::SelectorProfile::commitSelectorTime): * inspector/InspectorProfilerAgent.cpp: (WebCore::InspectorProfilerAgent::willProcessTask): (WebCore::InspectorProfilerAgent::didProcessTask): * inspector/InspectorTimelineAgent.cpp: (WebCore::InspectorTimelineAgent::timestamp): * inspector/TimelineTraceEventProcessor.cpp: (WebCore::TimelineTraceEventProcessor::processEventOnAnyThread): * page/FrameView.cpp: (WebCore::FrameView::adjustedDeferredRepaintDelay): (WebCore::FrameView::paintContents): * platform/ClockGeneric.cpp: (ClockGeneric::now): * platform/ScrollAnimatorNone.cpp: (WebCore::ScrollAnimatorNone::scroll): (WebCore::ScrollAnimatorNone::animationTimerFired): * platform/graphics/cg/ImageBufferCG.cpp: (WebCore::ImageBuffer::ImageBuffer): (WebCore::ImageBuffer::flushContextIfNecessary): (WebCore::ImageBuffer::flushContext): (WebCore::ImageBuffer::copyNativeImage): Source/WTF: WTF::currentTime() is prone to DST changes and NTP adjustments, so use WTF::monotonicallyIncreasingTime() to measure elapsed time. * wtf/CurrentTime.h: (WTF::monotonicallyIncreasingTimeMS): Added mille second version of monotonic time API. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154201 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 15 Aug, 2013 2 commits
-
-
fpizlo@apple.com authored
refCount() of a StringImpl could be zero if it's static; in that case we shouldn't report extra memory cost https://bugs.webkit.org/show_bug.cgi?id=119870 Reviewed by Mark Hahnenberg. * wtf/text/StringImpl.h: (WTF::StringImpl::costDuringGC): (WTF::StringImpl::isStatic): (WTF::StringImpl::bufferOwnership): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154145 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
fpizlo@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=119064 .: Reviewed by Oliver Hunt. Automake work courtesy of Zan Dobersek <zdobersek@igalia.com>. * Source/autotools/symbols.filter: Source/JavaScriptCore: Reviewed by Oliver Hunt. Typed arrays were previously deficient in several major ways: - They were defined separately in WebCore and in the jsc shell. The two implementations were different, and the jsc shell one was basically wrong. The WebCore one was quite awful, also. - Typed arrays were not visible to the JIT except through some weird hooks. For example, the JIT could not ask "what is the Structure that this typed array would have if I just allocated it from this global object". Also, it was difficult to wire any of the typed array intrinsics, because most of the functionality wasn't visible anywhere in JSC. - Typed array allocation was brain-dead. Allocating a typed array involved two JS objects, two GC weak handles, and three malloc allocations. - Neutering. It involved keeping tabs on all native views but not the view wrappers, even though the native views can autoneuter just by asking the buffer if it was neutered anytime you touch them; while the JS view wrappers are the ones that you really want to reach out to. - Common case-ing. Most typed arrays have one buffer and one view, and usually nobody touches the buffer. Yet we created all of that stuff anyway, using data structures optimized for the case where you had a lot of views. - Semantic goofs. Typed arrays should, in the future, behave like ES features rather than DOM features, for example when it comes to exceptions. Firefox already does this and I agree with them. This patch cleanses our codebase of these sins: - Typed arrays are almost entirely defined in JSC. Only the lifecycle management of native references to buffers is left to WebCore. - Allocating a typed array requires either two GC allocations (a cell and a copied storage vector) or one GC allocation, a malloc allocation, and a weak handle (a cell and a malloc'd storage vector, plus a finalizer for the latter). The latter is only used for oversize arrays. Remember that before it was 7 allocations no matter what. - Typed arrays require just 4 words of overhead: Structure*, Butterfly*, mode/length, void* vector. Before it was a lot more than that - remember, there were five additional objects that did absolutely nothing for anybody. - Native views aren't tracked by the buffer, or by the wrappers. They are transient. In the future we'll probably switch to not even having them be malloc'd. - Native array buffers have an efficient way of tracking all of their JS view wrappers, both for neutering, and for lifecycle management. The GC special-cases native array buffers. This saves a bunch of grief; for example it means that a JS view wrapper can refer to its buffer via the butterfly, which would be dead by the time we went to finalize. - Typed array semantics now match Firefox, which also happens to be where the standards are going. The discussion on webkit-dev seemed to confirm that Chrome is also heading in this direction. This includes making Uint8ClampedArray not a subtype of Uint8Array, and getting rid of ArrayBufferView as a JS-visible construct. This is up to a 10x speed-up on programs that allocate a lot of typed arrays. It's a 1% speed-up on Octane. It also opens up a bunch of possibilities for further typed array optimizations in the JSC JITs, including inlining typed array allocation, inlining more of the accessors, reducing the cost of type checks, etc. An additional property of this patch is that typed arrays are mostly implemented using templates. This deduplicates a bunch of code, but does mean that we need some hacks for exporting s_info's of template classes. See JSGenericTypedArrayView.h and JSTypedArrays.cpp. Those hacks are fairly low-impact compared to code duplication. Automake work courtesy of Zan Dobersek <zdobersek@igalia.com>. * CMakeLists.txt: * DerivedSources.make: * GNUmakefile.list.am: * JSCTypedArrayStubs.h: Removed. * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj: * JavaScriptCore.xcodeproj/project.pbxproj: * Target.pri: * bytecode/ByValInfo.h: (JSC::hasOptimizableIndexingForClassInfo): (JSC::jitArrayModeForClassInfo): (JSC::typedArrayTypeForJITArrayMode): * bytecode/SpeculatedType.cpp: (JSC::speculationFromClassInfo): * dfg/DFGArrayMode.cpp: (JSC::DFG::toTypedArrayType): * dfg/DFGArrayMode.h: (JSC::DFG::ArrayMode::typedArrayType): * dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::checkArray): (JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray): (JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray): (JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray): (JSC::DFG::SpeculativeJIT::compilePutByValForFloatTypedArray): (JSC::DFG::SpeculativeJIT::compileGetIndexedPropertyStorage): (JSC::DFG::SpeculativeJIT::compileGetArrayLength): * dfg/DFGSpeculativeJIT.h: * dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile): * dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile): * heap/CopyToken.h: * heap/DeferGC.h: (JSC::DeferGCForAWhile::DeferGCForAWhile): (JSC::DeferGCForAWhile::~DeferGCForAWhile): * heap/GCIncomingRefCounted.h: Added. (JSC::GCIncomingRefCounted::GCIncomingRefCounted): (JSC::GCIncomingRefCounted::~GCIncomingRefCounted): (JSC::GCIncomingRefCounted::numberOfIncomingReferences): (JSC::GCIncomingRefCounted::incomingReferenceAt): (JSC::GCIncomingRefCounted::singletonFlag): (JSC::GCIncomingRefCounted::hasVectorOfCells): (JSC::GCIncomingRefCounted::hasAnyIncoming): (JSC::GCIncomingRefCounted::hasSingleton): (JSC::GCIncomingRefCounted::singleton): (JSC::GCIncomingRefCounted::vectorOfCells): * heap/GCIncomingRefCountedInlines.h: Added. (JSC::::addIncomingReference): (JSC::::filterIncomingReferences): * heap/GCIncomingRefCountedSet.h: Added. (JSC::GCIncomingRefCountedSet::size): * heap/GCIncomingRefCountedSetInlines.h: Added. (JSC::::GCIncomingRefCountedSet): (JSC::::~GCIncomingRefCountedSet): (JSC::::addReference): (JSC::::sweep): (JSC::::removeAll): (JSC::::removeDead): * heap/Heap.cpp: (JSC::Heap::addReference): (JSC::Heap::extraSize): (JSC::Heap::size): (JSC::Heap::capacity): (JSC::Heap::collect): (JSC::Heap::decrementDeferralDepth): (JSC::Heap::decrementDeferralDepthAndGCIfNeeded): * heap/Heap.h: * interpreter/CallFrame.h: (JSC::ExecState::dataViewTable): * jit/JIT.h: * jit/JITPropertyAccess.cpp: (JSC::JIT::privateCompileGetByVal): (JSC::JIT::privateCompilePutByVal): (JSC::JIT::emitIntTypedArrayGetByVal): (JSC::JIT::emitFloatTypedArrayGetByVal): (JSC::JIT::emitIntTypedArrayPutByVal): (JSC::JIT::emitFloatTypedArrayPutByVal): * jsc.cpp: (GlobalObject::finishCreation): * runtime/ArrayBuffer.cpp: (JSC::ArrayBuffer::transfer): * runtime/ArrayBuffer.h: (JSC::ArrayBuffer::createAdopted): (JSC::ArrayBuffer::ArrayBuffer): (JSC::ArrayBuffer::gcSizeEstimateInBytes): (JSC::ArrayBuffer::pin): (JSC::ArrayBuffer::unpin): (JSC::ArrayBufferContents::tryAllocate): * runtime/ArrayBufferView.cpp: (JSC::ArrayBufferView::ArrayBufferView): (JSC::ArrayBufferView::~ArrayBufferView): (JSC::ArrayBufferView::setNeuterable): * runtime/ArrayBufferView.h: (JSC::ArrayBufferView::isNeutered): (JSC::ArrayBufferView::buffer): (JSC::ArrayBufferView::baseAddress): (JSC::ArrayBufferView::byteOffset): (JSC::ArrayBufferView::verifySubRange): (JSC::ArrayBufferView::clampOffsetAndNumElements): (JSC::ArrayBufferView::calculateOffsetAndLength): * runtime/ClassInfo.h: * runtime/CommonIdentifiers.h: * runtime/DataView.cpp: Added. (JSC::DataView::DataView): (JSC::DataView::create): (JSC::DataView::wrap): * runtime/DataView.h: Added. (JSC::DataView::byteLength): (JSC::DataView::getType): (JSC::DataView::get): (JSC::DataView::set): * runtime/Float32Array.h: * runtime/Float64Array.h: * runtime/GenericTypedArrayView.h: Added. (JSC::GenericTypedArrayView::data): (JSC::GenericTypedArrayView::set): (JSC::GenericTypedArrayView::setRange): (JSC::GenericTypedArrayView::zeroRange): (JSC::GenericTypedArrayView::zeroFill): (JSC::GenericTypedArrayView::length): (JSC::GenericTypedArrayView::byteLength): (JSC::GenericTypedArrayView::item): (JSC::GenericTypedArrayView::checkInboundData): (JSC::GenericTypedArrayView::getType): * runtime/GenericTypedArrayViewInlines.h: Added. (JSC::::GenericTypedArrayView): (JSC::::create): (JSC::::createUninitialized): (JSC::::subarray): (JSC::::wrap): * runtime/IndexingHeader.h: (JSC::IndexingHeader::arrayBuffer): (JSC::IndexingHeader::setArrayBuffer): * runtime/Int16Array.h: * runtime/Int32Array.h: * runtime/Int8Array.h: * runtime/JSArrayBuffer.cpp: Added. (JSC::JSArrayBuffer::JSArrayBuffer): (JSC::JSArrayBuffer::finishCreation): (JSC::JSArrayBuffer::create): (JSC::JSArrayBuffer::createStructure): (JSC::JSArrayBuffer::getOwnPropertySlot): (JSC::JSArrayBuffer::getOwnPropertyDescriptor): (JSC::JSArrayBuffer::put): (JSC::JSArrayBuffer::defineOwnProperty): (JSC::JSArrayBuffer::deleteProperty): (JSC::JSArrayBuffer::getOwnNonIndexPropertyNames): * runtime/JSArrayBuffer.h: Added. (JSC::JSArrayBuffer::impl): (JSC::toArrayBuffer): * runtime/JSArrayBufferConstructor.cpp: Added. (JSC::JSArrayBufferConstructor::JSArrayBufferConstructor): (JSC::JSArrayBufferConstructor::finishCreation): (JSC::JSArrayBufferConstructor::create): (JSC::JSArrayBufferConstructor::createStructure): (JSC::constructArrayBuffer): (JSC::JSArrayBufferConstructor::getConstructData): (JSC::JSArrayBufferConstructor::getCallData): * runtime/JSArrayBufferConstructor.h: Added. * runtime/JSArrayBufferPrototype.cpp: Added. (JSC::arrayBufferProtoFuncSlice): (JSC::JSArrayBufferPrototype::JSArrayBufferPrototype): (JSC::JSArrayBufferPrototype::finishCreation): (JSC::JSArrayBufferPrototype::create): (JSC::JSArrayBufferPrototype::createStructure): * runtime/JSArrayBufferPrototype.h: Added. * runtime/JSArrayBufferView.cpp: Added. (JSC::JSArrayBufferView::ConstructionContext::ConstructionContext): (JSC::JSArrayBufferView::JSArrayBufferView): (JSC::JSArrayBufferView::finishCreation): (JSC::JSArrayBufferView::getOwnPropertySlot): (JSC::JSArrayBufferView::getOwnPropertyDescriptor): (JSC::JSArrayBufferView::put): (JSC::JSArrayBufferView::defineOwnProperty): (JSC::JSArrayBufferView::deleteProperty): (JSC::JSArrayBufferView::getOwnNonIndexPropertyNames): (JSC::JSArrayBufferView::finalize): * runtime/JSArrayBufferView.h: Added. (JSC::JSArrayBufferView::sizeOf): (JSC::JSArrayBufferView::ConstructionContext::operator!): (JSC::JSArrayBufferView::ConstructionContext::structure): (JSC::JSArrayBufferView::ConstructionContext::vector): (JSC::JSArrayBufferView::ConstructionContext::length): (JSC::JSArrayBufferView::ConstructionContext::mode): (JSC::JSArrayBufferView::ConstructionContext::butterfly): (JSC::JSArrayBufferView::mode): (JSC::JSArrayBufferView::vector): (JSC::JSArrayBufferView::length): (JSC::JSArrayBufferView::offsetOfVector): (JSC::JSArrayBufferView::offsetOfLength): (JSC::JSArrayBufferView::offsetOfMode): * runtime/JSArrayBufferViewInlines.h: Added. (JSC::JSArrayBufferView::slowDownAndWasteMemoryIfNecessary): (JSC::JSArrayBufferView::buffer): (JSC::JSArrayBufferView::impl): (JSC::JSArrayBufferView::neuter): (JSC::JSArrayBufferView::byteOffset): * runtime/JSCell.cpp: (JSC::JSCell::slowDownAndWasteMemory): (JSC::JSCell::getTypedArrayImpl): * runtime/JSCell.h: * runtime/JSDataView.cpp: Added. (JSC::JSDataView::JSDataView): (JSC::JSDataView::create): (JSC::JSDataView::createUninitialized): (JSC::JSDataView::set): (JSC::JSDataView::typedImpl): (JSC::JSDataView::getOwnPropertySlot): (JSC::JSDataView::getOwnPropertyDescriptor): (JSC::JSDataView::slowDownAndWasteMemory): (JSC::JSDataView::getTypedArrayImpl): (JSC::JSDataView::createStructure): * runtime/JSDataView.h: Added. * runtime/JSDataViewPrototype.cpp: Added. (JSC::JSDataViewPrototype::JSDataViewPrototype): (JSC::JSDataViewPrototype::create): (JSC::JSDataViewPrototype::createStructure): (JSC::JSDataViewPrototype::getOwnPropertySlot): (JSC::JSDataViewPrototype::getOwnPropertyDescriptor): (JSC::getData): (JSC::setData): (JSC::dataViewProtoFuncGetInt8): (JSC::dataViewProtoFuncGetInt16): (JSC::dataViewProtoFuncGetInt32): (JSC::dataViewProtoFuncGetUint8): (JSC::dataViewProtoFuncGetUint16): (JSC::dataViewProtoFuncGetUint32): (JSC::dataViewProtoFuncGetFloat32): (JSC::dataViewProtoFuncGetFloat64): (JSC::dataViewProtoFuncSetInt8): (JSC::dataViewProtoFuncSetInt16): (JSC::dataViewProtoFuncSetInt32): (JSC::dataViewProtoFuncSetUint8): (JSC::dataViewProtoFuncSetUint16): (JSC::dataViewProtoFuncSetUint32): (JSC::dataViewProtoFuncSetFloat32): (JSC::dataViewProtoFuncSetFloat64): * runtime/JSDataViewPrototype.h: Added. * runtime/JSFloat32Array.h: Added. * runtime/JSFloat64Array.h: Added. * runtime/JSGenericTypedArrayView.h: Added. (JSC::JSGenericTypedArrayView::byteLength): (JSC::JSGenericTypedArrayView::byteSize): (JSC::JSGenericTypedArrayView::typedVector): (JSC::JSGenericTypedArrayView::canGetIndexQuickly): (JSC::JSGenericTypedArrayView::canSetIndexQuickly): (JSC::JSGenericTypedArrayView::getIndexQuicklyAsNativeValue): (JSC::JSGenericTypedArrayView::getIndexQuicklyAsDouble): (JSC::JSGenericTypedArrayView::getIndexQuickly): (JSC::JSGenericTypedArrayView::setIndexQuicklyToNativeValue): (JSC::JSGenericTypedArrayView::setIndexQuicklyToDouble): (JSC::JSGenericTypedArrayView::setIndexQuickly): (JSC::JSGenericTypedArrayView::canAccessRangeQuickly): (JSC::JSGenericTypedArrayView::typedImpl): (JSC::JSGenericTypedArrayView::createStructure): (JSC::JSGenericTypedArrayView::info): (JSC::toNativeTypedView): * runtime/JSGenericTypedArrayViewConstructor.h: Added. * runtime/JSGenericTypedArrayViewConstructorInlines.h: Added. (JSC::::JSGenericTypedArrayViewConstructor): (JSC::::finishCreation): (JSC::::create): (JSC::::createStructure): (JSC::constructGenericTypedArrayView): (JSC::::getConstructData): (JSC::::getCallData): * runtime/JSGenericTypedArrayViewInlines.h: Added. (JSC::::JSGenericTypedArrayView): (JSC::::create): (JSC::::createUninitialized): (JSC::::validateRange): (JSC::::setWithSpecificType): (JSC::::set): (JSC::::getOwnPropertySlot): (JSC::::getOwnPropertyDescriptor): (JSC::::put): (JSC::::defineOwnProperty): (JSC::::deleteProperty): (JSC::::getOwnPropertySlotByIndex): (JSC::::putByIndex): (JSC::::deletePropertyByIndex): (JSC::::getOwnNonIndexPropertyNames): (JSC::::getOwnPropertyNames): (JSC::::visitChildren): (JSC::::copyBackingStore): (JSC::::slowDownAndWasteMemory): (JSC::::getTypedArrayImpl): * runtime/JSGenericTypedArrayViewPrototype.h: Added. * runtime/JSGenericTypedArrayViewPrototypeInlines.h: Added. (JSC::genericTypedArrayViewProtoFuncSet): (JSC::genericTypedArrayViewProtoFuncSubarray): (JSC::::JSGenericTypedArrayViewPrototype): (JSC::::finishCreation): (JSC::::create): (JSC::::createStructure): * runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::reset): (JSC::JSGlobalObject::visitChildren): * runtime/JSGlobalObject.h: (JSC::JSGlobalObject::arrayBufferPrototype): (JSC::JSGlobalObject::arrayBufferStructure): (JSC::JSGlobalObject::typedArrayStructure): * runtime/JSInt16Array.h: Added. * runtime/JSInt32Array.h: Added. * runtime/JSInt8Array.h: Added. * runtime/JSTypedArrayConstructors.cpp: Added. * runtime/JSTypedArrayConstructors.h: Added. * runtime/JSTypedArrayPrototypes.cpp: Added. * runtime/JSTypedArrayPrototypes.h: Added. * runtime/JSTypedArrays.cpp: Added. * runtime/JSTypedArrays.h: Added. * runtime/JSUint16Array.h: Added. * runtime/JSUint32Array.h: Added. * runtime/JSUint8Array.h: Added. * runtime/JSUint8ClampedArray.h: Added. * runtime/Operations.h: * runtime/Options.h: * runtime/SimpleTypedArrayController.cpp: Added. (JSC::SimpleTypedArrayController::SimpleTypedArrayController): (JSC::SimpleTypedArrayController::~SimpleTypedArrayController): (JSC::SimpleTypedArrayController::toJS): * runtime/SimpleTypedArrayController.h: Added. * runtime/Structure.h: (JSC::Structure::couldHaveIndexingHeader): * runtime/StructureInlines.h: (JSC::Structure::hasIndexingHeader): * runtime/TypedArrayAdaptors.h: Added. (JSC::IntegralTypedArrayAdaptor::toNative): (JSC::IntegralTypedArrayAdaptor::toJSValue): (JSC::IntegralTypedArrayAdaptor::toDouble): (JSC::FloatTypedArrayAdaptor::toNative): (JSC::FloatTypedArrayAdaptor::toJSValue): (JSC::FloatTypedArrayAdaptor::toDouble): (JSC::Uint8ClampedAdaptor::toNative): (JSC::Uint8ClampedAdaptor::toJSValue): (JSC::Uint8ClampedAdaptor::toDouble): (JSC::Uint8ClampedAdaptor::clamp): * runtime/TypedArrayController.cpp: Added. (JSC::TypedArrayController::TypedArrayController): (JSC::TypedArrayController::~TypedArrayController): * runtime/TypedArrayController.h: Added. * runtime/TypedArrayDescriptor.h: Removed. * runtime/TypedArrayInlines.h: Added. * runtime/TypedArrayType.cpp: Added. (JSC::classInfoForType): (WTF::printInternal): * runtime/TypedArrayType.h: Added. (JSC::toIndex): (JSC::isTypedView): (JSC::elementSize): (JSC::isInt): (JSC::isFloat): (JSC::isSigned): (JSC::isClamped): * runtime/TypedArrays.h: Added. * runtime/Uint16Array.h: * runtime/Uint32Array.h: * runtime/Uint8Array.h: * runtime/Uint8ClampedArray.h: * runtime/VM.cpp: (JSC::VM::VM): (JSC::VM::~VM): * runtime/VM.h: Source/WebCore: Reviewed by Oliver Hunt. Typed arrays are now implemented in JavaScriptCore, and WebCore is merely a client of them. There is only one layering violation: WebCore installs a WebCoreTypedArrayController on VM, which makes the ArrayBuffer<->JSArrayBuffer relationship resemble DOM wrappers. By default, JSC makes the ownership go one way; the JSArrayBuffer keeps the ArrayBuffer alive but if ArrayBuffer is kept alive from native code then the JSArrayByffer may die. WebCoreTypedArrayController will keep the JSArrayBuffer alive if the ArrayBuffer is in the opaque root set. To make non-JSDOMWrappers behave like DOM wrappers, a bunch of code is changed to make most references to wrappers refer to JSObject* rather than JSDOMWrapper*. Array buffer views are now transient; the JS array buffer view wrappers don't own them or keep them alive. This required a bunch of changes to make bindings code use RefPtr<ArrayBufferView> to hold onto their views. Also there is a bunch of new code to make JSC-provided array buffers and views obey the toJS/to<ClassName> idiom for wrapping and unwrapping. Finally, the DataView API is now completely different: the JSDataView provides the same user-visible JS API but using its own internal magic; the C++ code that uses DataView now uses a rather different API that is not aware of usual DOM semantics, since it's in JSC and not WebCore. It's equally useful for all of WebCore's purposes, but some code had to change to adapt the new conventions. Some tests have been changed or rebased due to changes in behavior, that bring us into conformance with where the standards are going and allow us to match Firefox behavior. Automake work and some additional GTK changes courtesy of Zan Dobersek <zdobersek@igalia.com>. Additional Qt changes courtesy of Arunprasad Rajkumar <arurajku@cisco.com>. * CMakeLists.txt: * DerivedSources.make: * ForwardingHeaders/runtime/DataView.h: Added. * ForwardingHeaders/runtime/JSArrayBuffer.h: Added. * ForwardingHeaders/runtime/JSArrayBufferView.h: Added. * ForwardingHeaders/runtime/JSDataView.h: Added. * ForwardingHeaders/runtime/JSTypedArrays.h: Added. * ForwardingHeaders/runtime/TypedArrayController.h: Added. * ForwardingHeaders/runtime/TypedArrayInlines.h: Added. * ForwardingHeaders/runtime/TypedArrays.h: Added. * GNUmakefile.list.am: * Modules/webaudio/RealtimeAnalyser.h: * Target.pri: * UseJSC.cmake: * WebCore.exp.in: * WebCore.vcxproj/WebCore.vcxproj: * WebCore.xcodeproj/project.pbxproj: * bindings/js/DOMWrapperWorld.h: * bindings/js/JSArrayBufferCustom.cpp: Removed. * bindings/js/JSArrayBufferViewHelper.h: Removed. * bindings/js/JSAudioContextCustom.cpp: * bindings/js/JSBindingsAllInOne.cpp: * bindings/js/JSBlobCustom.cpp: * bindings/js/JSCSSRuleCustom.cpp: (WebCore::toJS): * bindings/js/JSCSSValueCustom.cpp: (WebCore::toJS): * bindings/js/JSCryptoCustom.cpp: (WebCore::JSCrypto::getRandomValues): * bindings/js/JSDOMBinding.h: (WebCore::wrapperOwner): (WebCore::wrapperContext): (WebCore::getInlineCachedWrapper): (WebCore::setInlineCachedWrapper): (WebCore::clearInlineCachedWrapper): (WebCore::getCachedWrapper): (WebCore::cacheWrapper): (WebCore::uncacheWrapper): (WebCore::wrap): (WebCore::toJS): (WebCore::toArrayBufferView): (WebCore::toInt8Array): (WebCore::toInt16Array): (WebCore::toInt32Array): (WebCore::toUint8Array): (WebCore::toUint8ClampedArray): (WebCore::toUint16Array): (WebCore::toUint32Array): (WebCore::toFloat32Array): (WebCore::toFloat64Array): (WebCore::toDataView): * bindings/js/JSDataViewCustom.cpp: Removed. * bindings/js/JSDictionary.cpp: * bindings/js/JSDictionary.h: * bindings/js/JSDocumentCustom.cpp: (WebCore::JSDocument::location): (WebCore::toJS): * bindings/js/JSEventCustom.cpp: (WebCore::toJS): * bindings/js/JSFileReaderCustom.cpp: * bindings/js/JSHTMLCollectionCustom.cpp: (WebCore::toJS): * bindings/js/JSHTMLTemplateElementCustom.cpp: (WebCore::JSHTMLTemplateElement::content): * bindings/js/JSImageDataCustom.cpp: (WebCore::toJS): * bindings/js/JSInjectedScriptHostCustom.cpp: * bindings/js/JSMessageEventCustom.cpp: * bindings/js/JSMessagePortCustom.cpp: * bindings/js/JSSVGPathSegCustom.cpp: (WebCore::toJS): * bindings/js/JSStyleSheetCustom.cpp: (WebCore::toJS): * bindings/js/JSTrackCustom.cpp: (WebCore::toJS): * bindings/js/JSWebGLRenderingContextCustom.cpp: * bindings/js/JSXMLHttpRequestCustom.cpp: (WebCore::JSXMLHttpRequest::send): * bindings/js/SerializedScriptValue.cpp: (WebCore::SerializedScriptValue::transferArrayBuffers): * bindings/js/WebCoreJSClientData.h: (WebCore::initNormalWorldClientData): * bindings/js/WebCoreTypedArrayController.cpp: Added. (WebCore::WebCoreTypedArrayController::WebCoreTypedArrayController): (WebCore::WebCoreTypedArrayController::~WebCoreTypedArrayController): (WebCore::WebCoreTypedArrayController::toJS): (WebCore::WebCoreTypedArrayController::JSArrayBufferOwner::isReachableFromOpaqueRoots): (WebCore::WebCoreTypedArrayController::JSArrayBufferOwner::finalize): * bindings/js/WebCoreTypedArrayController.h: Added. (WebCore::WebCoreTypedArrayController::wrapperOwner): * bindings/scripts/CodeGenerator.pm: (ForAllParents): (ParseInterface): (SkipIncludeHeader): (IsTypedArrayType): (IsWrapperType): * bindings/scripts/CodeGeneratorJS.pm: (AddIncludesForType): (GenerateHeader): (GenerateImplementation): (GenerateParametersCheck): (GetNativeType): (JSValueToNative): (NativeToJSValue): (GenerateConstructorDefinition): (GenerateConstructorHelperMethods): * fileapi/WebKitBlobBuilder.cpp: (WebCore::BlobBuilder::append): * fileapi/WebKitBlobBuilder.h: * html/canvas/ArrayBuffer.idl: Removed. * html/canvas/ArrayBufferView.idl: Removed. * html/canvas/DataView.cpp: Removed. * html/canvas/DataView.h: Removed. * html/canvas/DataView.idl: Removed. * html/canvas/Float32Array.idl: Removed. * html/canvas/Float64Array.idl: Removed. * html/canvas/Int16Array.idl: Removed. * html/canvas/Int32Array.idl: Removed. * html/canvas/Int8Array.idl: Removed. * html/canvas/Uint16Array.idl: Removed. * html/canvas/Uint32Array.idl: Removed. * html/canvas/Uint8Array.idl: Removed. * html/canvas/Uint8ClampedArray.idl: Removed. * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::readPixels): (WebCore::WebGLRenderingContext::validateTexFuncData): * page/Crypto.cpp: * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): (WebCore::MediaPlayerPrivateAVFoundationObjC::extractKeyURIKeyIDAndCertificateFromInitData): * platform/graphics/filters/FECustomFilter.h: * platform/graphics/filters/FEGaussianBlur.cpp: * platform/graphics/filters/FilterEffect.cpp: * testing/MockCDM.cpp: Source/WebKit2: Reviewed by Oliver Hunt. You don't need to include JSUint8Array anymore if you just want to unwrap one; JSDOMBinding gives you all of the things you need. * WebProcess/InjectedBundle/InjectedBundle.cpp: Source/WTF: Reviewed by Oliver Hunt. - Added the notion of a reference counted object that can be marked Deferred, which is like a special-purpose upref. - Added a common byte flipper. Automake work courtesy of Zan Dobersek <zdobersek@igalia.com>. * GNUmakefile.list.am: * WTF.xcodeproj/project.pbxproj: * wtf/DeferrableRefCounted.h: Added. (WTF::DeferrableRefCountedBase::ref): (WTF::DeferrableRefCountedBase::hasOneRef): (WTF::DeferrableRefCountedBase::refCount): (WTF::DeferrableRefCountedBase::isDeferred): (WTF::DeferrableRefCountedBase::DeferrableRefCountedBase): (WTF::DeferrableRefCountedBase::~DeferrableRefCountedBase): (WTF::DeferrableRefCountedBase::derefBase): (WTF::DeferrableRefCountedBase::setIsDeferredBase): (WTF::DeferrableRefCounted::deref): (WTF::DeferrableRefCounted::setIsDeferred): (WTF::DeferrableRefCounted::DeferrableRefCounted): (WTF::DeferrableRefCounted::~DeferrableRefCounted): * wtf/FlipBytes.h: Added. (WTF::needToFlipBytesIfLittleEndian): (WTF::flipBytes): (WTF::flipBytesIfLittleEndian): LayoutTests: Reviewed by Oliver Hunt. * fast/canvas/webgl/array-set-invalid-arguments-expected.txt: * fast/canvas/webgl/array-set-out-of-bounds-expected.txt: * fast/canvas/webgl/array-unit-tests-expected.txt: * fast/canvas/webgl/array-unit-tests.html: * fast/canvas/webgl/data-view-crash-expected.txt: * fast/canvas/webgl/script-tests/arraybuffer-transfer-of-control.js: (checkView): * fast/dom/call-a-constructor-as-a-function-expected.txt: * fast/dom/call-a-constructor-as-a-function.html: * fast/js/constructor-length.html: * fast/js/global-constructors-attributes-dedicated-worker-expected.txt: * fast/js/global-constructors-attributes-expected.txt: * fast/js/global-constructors-attributes-shared-worker-expected.txt: * fast/js/regress/ArrayBuffer-Int8Array-alloc-expected.txt: Added. * fast/js/regress/ArrayBuffer-Int8Array-alloc-huge-long-lived-expected.txt: Added. * fast/js/regress/ArrayBuffer-Int8Array-alloc-huge-long-lived.html: Added. * fast/js/regress/ArrayBuffer-Int8Array-alloc-large-long-lived-expected.txt: Added. * fast/js/regress/ArrayBuffer-Int8Array-alloc-large-long-lived.html: Added. * fast/js/regress/ArrayBuffer-Int8Array-alloc-long-lived-buffer-expected.txt: Added. * fast/js/regress/ArrayBuffer-Int8Array-alloc-long-lived-buffer.html: Added. * fast/js/regress/ArrayBuffer-Int8Array-alloc-long-lived-expected.txt: Added. * fast/js/regress/ArrayBuffer-Int8Array-alloc-long-lived.html: Added. * fast/js/regress/ArrayBuffer-Int8Array-alloc.html: Added. * fast/js/regress/Int32Array-Int8Array-view-alloc-expected.txt: Added. * fast/js/regress/Int32Array-Int8Array-view-alloc.html: Added. * fast/js/regress/Int32Array-alloc-expected.txt: Added. * fast/js/regress/Int32Array-alloc-huge-expected.txt: Added. * fast/js/regress/Int32Array-alloc-huge-long-lived-expected.txt: Added. * fast/js/regress/Int32Array-alloc-huge-long-lived.html: Added. * fast/js/regress/Int32Array-alloc-huge.html: Added. * fast/js/regress/Int32Array-alloc-large-expected.txt: Added. * fast/js/regress/Int32Array-alloc-large-long-lived-expected.txt: Added. * fast/js/regress/Int32Array-alloc-large-long-lived.html: Added. * fast/js/regress/Int32Array-alloc-large.html: Added. * fast/js/regress/Int32Array-alloc-long-lived-expected.txt: Added. * fast/js/regress/Int32Array-alloc-long-lived.html: Added. * fast/js/regress/Int32Array-alloc.html: Added. * fast/js/regress/script-tests/ArrayBuffer-Int8Array-alloc-huge-long-lived.js: Added. * fast/js/regress/script-tests/ArrayBuffer-Int8Array-alloc-large-long-lived.js: Added. * fast/js/regress/script-tests/ArrayBuffer-Int8Array-alloc-long-lived-buffer.js: Added. * fast/js/regress/script-tests/ArrayBuffer-Int8Array-alloc-long-lived.js: Added. * fast/js/regress/script-tests/ArrayBuffer-Int8Array-alloc.js: Added. * fast/js/regress/script-tests/Int32Array-Int8Array-view-alloc.js: Added. * fast/js/regress/script-tests/Int32Array-alloc-huge-long-lived.js: Added. * fast/js/regress/script-tests/Int32Array-alloc-huge.js: Added. * fast/js/regress/script-tests/Int32Array-alloc-large-long-lived.js: Added. * fast/js/regress/script-tests/Int32Array-alloc-large.js: Added. * fast/js/regress/script-tests/Int32Array-alloc-long-lived.js: Added. * fast/js/regress/script-tests/Int32Array-alloc.js: Added. * platform/mac/fast/js/constructor-length-expected.txt: * webgl/resources/webgl_test_files/conformance/typedarrays/array-unit-tests.html: * webgl/resources/webgl_test_files/conformance/typedarrays/data-view-test.html: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154127 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 14 Aug, 2013 1 commit
-
-
allan.jensen@digia.com authored
https://bugs.webkit.org/show_bug.cgi?id=119737 Patch by Julien Brianceau <jbrianceau@nds.com> on 2013-08-14 Reviewed by Oliver Hunt. Source/JavaScriptCore: * assembler/MacroAssemblerSH4.h: (JSC::MacroAssemblerSH4::invert): (JSC::MacroAssemblerSH4::add32): (JSC::MacroAssemblerSH4::and32): (JSC::MacroAssemblerSH4::lshift32): (JSC::MacroAssemblerSH4::mul32): (JSC::MacroAssemblerSH4::or32): (JSC::MacroAssemblerSH4::rshift32): (JSC::MacroAssemblerSH4::sub32): (JSC::MacroAssemblerSH4::xor32): (JSC::MacroAssemblerSH4::store32): (JSC::MacroAssemblerSH4::swapDouble): (JSC::MacroAssemblerSH4::storeDouble): (JSC::MacroAssemblerSH4::subDouble): (JSC::MacroAssemblerSH4::mulDouble): (JSC::MacroAssemblerSH4::divDouble): (JSC::MacroAssemblerSH4::negateDouble): (JSC::MacroAssemblerSH4::zeroExtend32ToPtr): (JSC::MacroAssemblerSH4::branchTruncateDoubleToUint32): (JSC::MacroAssemblerSH4::truncateDoubleToUint32): (JSC::MacroAssemblerSH4::swap): (JSC::MacroAssemblerSH4::jump): (JSC::MacroAssemblerSH4::branchNeg32): (JSC::MacroAssemblerSH4::branchAdd32): (JSC::MacroAssemblerSH4::branchMul32): (JSC::MacroAssemblerSH4::urshift32): * assembler/SH4Assembler.h: (JSC::SH4Assembler::SH4Assembler): (JSC::SH4Assembler::labelForWatchpoint): (JSC::SH4Assembler::label): (JSC::SH4Assembler::debugOffset): * dfg/DFGAssemblyHelpers.h: (JSC::DFG::AssemblyHelpers::preserveReturnAddressAfterCall): (JSC::DFG::AssemblyHelpers::restoreReturnAddressBeforeReturn): (JSC::DFG::AssemblyHelpers::debugCall): * dfg/DFGCCallHelpers.h: (JSC::DFG::CCallHelpers::setupArguments): (JSC::DFG::CCallHelpers::setupArgumentsWithExecState): * dfg/DFGFPRInfo.h: (JSC::DFG::FPRInfo::toRegister): (JSC::DFG::FPRInfo::toIndex): (JSC::DFG::FPRInfo::debugName): * dfg/DFGGPRInfo.h: (JSC::DFG::GPRInfo::toRegister): (JSC::DFG::GPRInfo::toIndex): (JSC::DFG::GPRInfo::debugName): * dfg/DFGOperations.cpp: * dfg/DFGSpeculativeJIT.h: (JSC::DFG::SpeculativeJIT::callOperation): * jit/JITStubs.h: * jit/JITStubsSH4.h: Source/WTF: * wtf/Platform.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154052 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 13 Aug, 2013 1 commit
-
-
commit-queue@webkit.org authored
https://bugs.webkit.org/show_bug.cgi?id=119762 Patch by Arunprasad Rajkumar <arurajku@cisco.com> on 2013-08-13 Reviewed by Geoffrey Garen. Source/JavaScriptCore: * heap/Heap.cpp: (JSC::Heap::Heap): (JSC::Heap::markRoots): (JSC::Heap::collect): * jsc.cpp: (StopWatch::start): (StopWatch::stop): * testRegExp.cpp: (StopWatch::start): (StopWatch::stop): Source/WTF: * wtf/MainThread.cpp: (WTF::dispatchFunctionsFromMainThread): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154032 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 12 Aug, 2013 3 commits
-
-
rniwa@webkit.org authored
https://bugs.webkit.org/show_bug.cgi?id=119700 Reviewed by Benjamin Poulain. Use const AtomicStringImpl* in DocumentOrderedMap. It caught at least one bug that HTMLNameCollection' subclasses' nodeMatches were taking const AtomicString& instead of AtomicStringImpl*. This was forcing DocumentOrderedMap::getElementByWindowNamedItem and DocumentOrderedMap::getElementByDocumentNamedItem to create temporary AtomicStrings. * dom/DocumentOrderedMap.cpp: (WebCore::keyMatchesId): (WebCore::keyMatchesName): (WebCore::keyMatchesMapName): (WebCore::keyMatchesLowercasedMapName): (WebCore::keyMatchesLabelForAttribute): (WebCore::keyMatchesWindowNamedItem): (WebCore::keyMatchesDocumentNamedItem): (WebCore::DocumentOrderedMap::add): (WebCore::DocumentOrderedMap::remove): (WebCore::DocumentOrderedMap::get): (WebCore::DocumentOrderedMap::getElementById): (WebCore::DocumentOrderedMap::getElementByName): (WebCore::DocumentOrderedMap::getElementByMapName): (WebCore::DocumentOrderedMap::getElementByLowercasedMapName): (WebCore::DocumentOrderedMap::getElementByLabelForAttribute): (WebCore::DocumentOrderedMap::getElementByWindowNamedItem): (WebCore::DocumentOrderedMap::getElementByDocumentNamedItem): (WebCore::DocumentOrderedMap::getAllElementsById): * dom/DocumentOrderedMap.h: (WebCore::DocumentOrderedMap::containsSingle): (WebCore::DocumentOrderedMap::contains): (WebCore::DocumentOrderedMap::containsMultiple): * html/HTMLNameCollection.cpp: (WebCore::WindowNameCollection::nodeMatches): (WebCore::DocumentNameCollection::nodeMatches): * html/HTMLNameCollection.h: (WebCore::WindowNameCollection::nodeMatches): (WebCore::DocumentNameCollection::nodeMatches): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153959 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
commit-queue@webkit.org authored
https://bugs.webkit.org/show_bug.cgi?id=119272 Patch by Ragner Magalhaes <ranger.n@samsung.com> on 2013-08-12 Reviewed by Alexandru Chiculita. CSS_SHADERS requires WEBGL enabled. Add error message to dependency failure. * wtf/FeatureDefines.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153951 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
joepeck@webkit.org authored
https://bugs.webkit.org/show_bug.cgi?id=119644 Reviewed by Benjamin Poulain. On iOS isMainThread() means that the current thread is either the MainThread or WebThread and the current thread has the WebThreadLock. * wtf/ios/WebCoreThread.cpp: Added. * wtf/ios/WebCoreThread.h: Added. * wtf/mac/MainThreadMac.mm: (WTF::isMainThread): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153950 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 11 Aug, 2013 1 commit
-
-
carlosgc@webkit.org authored
Source/WebCore: * GNUmakefile.list.am: Remove unexistent header file. Source/WTF: * GNUmakefile.list.am: Add missing header file. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153922 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 09 Aug, 2013 1 commit
-
-
ch.dumez@sisa.samsung.com authored
https://bugs.webkit.org/show_bug.cgi?id=118898 Reviewed by Darin Adler. Source/WebCore: According to the latest specification, window.atob() should throw an InvalidCharacterError on excess padding characters: http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#dom-windowbase64-atob This behavior is consistent with both Firefox, IE10 and recently Blink. No new tests, already covered by: fast/dom/Window/atob-btoa.html * page/DOMWindow.cpp: (WebCore::DOMWindow::atob): Source/WTF: Add a Base64FailOnInvalidCharacterOrExcessPadding value to the Base64DecodePolicy enumeration so that the caller can request strict padding validation in addition to strict character validation. This is needed so that we can use WTF::base64Decode() for window.atob(). * wtf/text/Base64.cpp: (WTF::base64DecodeInternal): * wtf/text/Base64.h: LayoutTests: Update and rebaseline fast/dom/Window/atob-btoa.html now that window.atob()'s behavior has changed and now that we throw an InvalidCharacterError on excess pad characters. * fast/dom/Window/atob-btoa-expected.txt: * fast/dom/Window/atob-btoa.html: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153904 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 07 Aug, 2013 1 commit
-
-
achristensen@apple.com authored
Rubberstamped by Benjamin Poulain. * wtf/Platform.h: Replaced WTF_USE_SURFACE with WTF_USE_GRAPHICS_SURFACE. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153801 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 06 Aug, 2013 5 commits
-
-
weinig@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=119480 Reviewed by Anders Carlsson. * Source/autotools/SetupWebKitFeatures.m4: * Source/cmake/OptionsBlackBerry.cmake: * Source/cmake/OptionsEfl.cmake: * Source/cmake/OptionsGTK.cmake: * Source/cmake/WebKitFeatures.cmake: * Source/cmakeconfig.h.cmake: Source/JavaScriptCore: Remove support for HTML5 MicroData https://bugs.webkit.org/show_bug.cgi?id=119480 Reviewed by Anders Carlsson. * Configurations/FeatureDefines.xcconfig: Source/WebCore: Remove support for HTML5 Microdata https://bugs.webkit.org/show_bug.cgi?id=119480 Reviewed by Anders Carlsson. * CMakeLists.txt: * Configurations/FeatureDefines.xcconfig: * DerivedSources.cpp: * DerivedSources.make: * DerivedSources.pri: * GNUmakefile.list.am: * Target.pri: * UseJSC.cmake: * WebCore.vcxproj/WebCore.vcxproj: * WebCore.vcxproj/WebCore.vcxproj.filters: * WebCore.xcodeproj/project.pbxproj: * bindings/gobject/GNUmakefile.am: * bindings/js/JSBindingsAllInOne.cpp: * bindings/js/JSHTMLCollectionCustom.cpp: (WebCore::JSHTMLCollection::nameGetter): * bindings/js/JSHTMLElementCustom.cpp: * bindings/js/JSMicroDataItemValueCustom.cpp: Removed. * bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): * dom/Document.cpp: * dom/Document.h: * dom/Document.idl: * dom/Element.cpp: (WebCore::Element::ensureCachedHTMLCollection): * dom/LiveNodeList.cpp: (WebCore::LiveNodeListBase::rootNode): (WebCore::LiveNodeListBase::invalidateCache): (WebCore::LiveNodeList::namedItem): * dom/LiveNodeList.h: (WebCore::LiveNodeListBase::shouldInvalidateTypeOnAttributeChange): * dom/MicroDataItemList.cpp: Removed. * dom/MicroDataItemList.h: Removed. * dom/Node.cpp: * dom/Node.h: * dom/NodeRareData.cpp: * dom/NodeRareData.h: * dom/PropertyNodeList.cpp: Removed. * dom/PropertyNodeList.h: Removed. * dom/PropertyNodeList.idl: Removed. * html/CollectionType.h: * html/HTMLAnchorElement.cpp: * html/HTMLAnchorElement.h: * html/HTMLAreaElement.cpp: * html/HTMLAreaElement.h: * html/HTMLCollection.cpp: (WebCore::shouldOnlyIncludeDirectChildren): (WebCore::rootTypeFromCollectionType): (WebCore::invalidationTypeExcludingIdAndNameAttributes): (WebCore::isMatchingElement): (WebCore::LiveNodeListBase::item): * html/HTMLElement.cpp: (WebCore::HTMLElement::parseAttribute): (WebCore::HTMLElement::isURLAttribute): * html/HTMLElement.h: * html/HTMLElement.idl: * html/HTMLEmbedElement.cpp: * html/HTMLEmbedElement.h: * html/HTMLIFrameElement.cpp: * html/HTMLIFrameElement.h: * html/HTMLImageElement.cpp: * html/HTMLImageElement.h: * html/HTMLLinkElement.cpp: * html/HTMLLinkElement.h: * html/HTMLMediaElement.cpp: * html/HTMLMediaElement.h: * html/HTMLMetaElement.cpp: * html/HTMLMetaElement.h: * html/HTMLObjectElement.cpp: * html/HTMLObjectElement.h: * html/HTMLPropertiesCollection.cpp: Removed. * html/HTMLPropertiesCollection.h: Removed. * html/HTMLPropertiesCollection.idl: Removed. * html/HTMLSourceElement.cpp: * html/HTMLSourceElement.h: * html/HTMLTrackElement.cpp: * html/HTMLTrackElement.h: * html/MicroDataAttributeTokenList.cpp: Removed. * html/MicroDataAttributeTokenList.h: Removed. * html/MicroDataItemValue.cpp: Removed. * html/MicroDataItemValue.h: Removed. * html/MicroDataItemValue.idl: Removed. Source/WebKit/blackberry: Remove support for HTML5 MicroData https://bugs.webkit.org/show_bug.cgi?id=119480 Reviewed by Anders Carlsson. * WebCoreSupport/AboutDataEnableFeatures.in: Source/WebKit/mac: Remove support for HTML5 MicroData https://bugs.webkit.org/show_bug.cgi?id=119480 Reviewed by Anders Carlsson. * Configurations/FeatureDefines.xcconfig: Source/WebKit2: Remove support for HTML5 MicroData https://bugs.webkit.org/show_bug.cgi?id=119480 Reviewed by Anders Carlsson. * Configurations/FeatureDefines.xcconfig: Source/WTF: Remove support for HTML5 MicroData https://bugs.webkit.org/show_bug.cgi?id=119480 Reviewed by Anders Carlsson. * wtf/FeatureDefines.h: Tools: Remove support for HTML5 MicroData https://bugs.webkit.org/show_bug.cgi?id=119480 Reviewed by Anders Carlsson. * Scripts/webkitperl/FeatureList.pm: * qmake/mkspecs/features/features.pri: LayoutTests: Remove support for HTML5 MicroData https://bugs.webkit.org/show_bug.cgi?id=119480 Reviewed by Anders Carlsson. * fast/dom/MicroData: Removed. * fast/dom/MicroData/001-expected.txt: Removed. * fast/dom/MicroData/001.html: Removed. * fast/dom/MicroData/002-expected.txt: Removed. * fast/dom/MicroData/002.html: Removed. * fast/dom/MicroData/003-expected.txt: Removed. * fast/dom/MicroData/003.html: Removed. * fast/dom/MicroData/004-expected.txt: Removed. * fast/dom/MicroData/004.html: Removed. * fast/dom/MicroData/005-expected.txt: Removed. * fast/dom/MicroData/005.html: Removed. * fast/dom/MicroData/006-expected.txt: Removed. * fast/dom/MicroData/006.html: Removed. * fast/dom/MicroData/007-expected.txt: Removed. * fast/dom/MicroData/007.html: Removed. * fast/dom/MicroData/008-expected.txt: Removed. * fast/dom/MicroData/008.html: Removed. * fast/dom/MicroData/009-expected.txt: Removed. * fast/dom/MicroData/009.html: Removed. * fast/dom/MicroData/add-remove-property-to-item-which-is-not-attached-to-domtree-expected.txt: Removed. * fast/dom/MicroData/add-remove-property-to-item-which-is-not-attached-to-domtree.html: Removed. * fast/dom/MicroData/domsettabletokenlist-attributes-add-token-expected.txt: Removed. * fast/dom/MicroData/domsettabletokenlist-attributes-add-token.html: Removed. * fast/dom/MicroData/domsettabletokenlist-attributes-out-of-range-index-expected.txt: Removed. * fast/dom/MicroData/domsettabletokenlist-attributes-out-of-range-index.html: Removed. * fast/dom/MicroData/element-with-empty-itemprop-expected.txt: Removed. * fast/dom/MicroData/element-with-empty-itemprop.html: Removed. * fast/dom/MicroData/getitems-empty-string-as-arg-expected.txt: Removed. * fast/dom/MicroData/getitems-empty-string-as-arg.html: Removed. * fast/dom/MicroData/getitems-multiple-itemtypes-expected.txt: Removed. * fast/dom/MicroData/getitems-multiple-itemtypes.html: Removed. * fast/dom/MicroData/item-not-attached-to-domtree-expected.txt: Removed. * fast/dom/MicroData/item-not-attached-to-domtree.html: Removed. * fast/dom/MicroData/item-with-itemprop-attr-expected.txt: Removed. * fast/dom/MicroData/item-with-itemprop-attr.html: Removed. * fast/dom/MicroData/item-with-itemref-pointing-to-itself-expected.txt: Removed. * fast/dom/MicroData/item-with-itemref-pointing-to-itself.html: Removed. * fast/dom/MicroData/itemid-attribute-test-001-expected.txt: Removed. * fast/dom/MicroData/itemid-attribute-test-001.html: Removed. * fast/dom/MicroData/itemid-attribute-test-expected.txt: Removed. * fast/dom/MicroData/itemid-attribute-test.html: Removed. * fast/dom/MicroData/itemid-must-see-resolved-url-expected.txt: Removed. * fast/dom/MicroData/itemid-must-see-resolved-url.html: Removed. * fast/dom/MicroData/itemprop-add-remove-tokens-expected.txt: Removed. * fast/dom/MicroData/itemprop-add-remove-tokens.html: Removed. * fast/dom/MicroData/itemprop-for-an-element-must-be-correct-expected.txt: Removed. * fast/dom/MicroData/itemprop-for-an-element-must-be-correct.html: Removed. * fast/dom/MicroData/itemprop-must-be-read-only-expected.txt: Removed. * fast/dom/MicroData/itemprop-must-be-read-only.html: Removed. * fast/dom/MicroData/itemprop-names-override-builtin-properties-expected.txt: Removed. * fast/dom/MicroData/itemprop-names-override-builtin-properties.html: Removed. * fast/dom/MicroData/itemprop-reflected-by-itemProp-property-expected.txt: Removed. * fast/dom/MicroData/itemprop-reflected-by-itemProp-property.html: Removed. * fast/dom/MicroData/itemref-add-remove-tokens-expected.txt: Removed. * fast/dom/MicroData/itemref-add-remove-tokens.html: Removed. * fast/dom/MicroData/itemref-attribute-reflected-by-itemRef-property-expected.txt: Removed. * fast/dom/MicroData/itemref-attribute-reflected-by-itemRef-property.html: Removed. * fast/dom/MicroData/itemref-for-an-element-must-be-correct-expected.txt: Removed. * fast/dom/MicroData/itemref-for-an-element-must-be-correct.html: Removed. * fast/dom/MicroData/itemref-must-be-read-only-expected.txt: Removed. * fast/dom/MicroData/itemref-must-be-read-only.html: Removed. * fast/dom/MicroData/itemref-pointing-to-root-node-expected.txt: Removed. * fast/dom/MicroData/itemref-pointing-to-root-node.html: Removed. * fast/dom/MicroData/itemref-refers-first-element-with-given-id-expected.txt: Removed. * fast/dom/MicroData/itemref-refers-first-element-with-given-id.html: Removed. * fast/dom/MicroData/itemscope-attribute-test-expected.txt: Removed. * fast/dom/MicroData/itemscope-attribute-test.html: Removed. * fast/dom/MicroData/itemscope-must-be-read-write-expected.txt: Removed. * fast/dom/MicroData/itemscope-must-be-read-write.html: Removed. * fast/dom/MicroData/itemtype-add-remove-tokens-expected.txt: Removed. * fast/dom/MicroData/itemtype-add-remove-tokens.html: Removed. * fast/dom/MicroData/itemtype-attribute-test-expected.txt: Removed. * fast/dom/MicroData/itemtype-attribute-test.html: Removed. * fast/dom/MicroData/itemvalue-reflects-data-attr-on-object-element-expected.txt: Removed. * fast/dom/MicroData/itemvalue-reflects-data-attr-on-object-element.html: Removed. * fast/dom/MicroData/itemvalue-reflects-href-attr-expected.txt: Removed. * fast/dom/MicroData/itemvalue-reflects-href-attr.html: Removed. * fast/dom/MicroData/itemvalue-reflects-src-attribute-on-img-element-expected.txt: Removed. * fast/dom/MicroData/itemvalue-reflects-src-attribute-on-img-element.html: Removed. * fast/dom/MicroData/itemvalue-reflects-the-content-attr-on-meta-element-expected.txt: Removed. * fast/dom/MicroData/itemvalue-reflects-the-content-attr-on-meta-element.html: Removed. * fast/dom/MicroData/itemvalue-reflects-the-src-attr-expected.txt: Removed. * fast/dom/MicroData/itemvalue-reflects-the-src-attr.html: Removed. * fast/dom/MicroData/itemvalue-returns-element-itself-expected.txt: Removed. * fast/dom/MicroData/itemvalue-returns-element-itself.html: Removed. * fast/dom/MicroData/itemvalue-returns-null-expected.txt: Removed. * fast/dom/MicroData/itemvalue-returns-null.html: Removed. * fast/dom/MicroData/itemvalue-throws-excpetion-onsetting-001-expected.txt: Removed. * fast/dom/MicroData/itemvalue-throws-excpetion-onsetting-001.html: Removed. * fast/dom/MicroData/itemvalue-throws-excpetion-onsetting-002-expected.txt: Removed. * fast/dom/MicroData/itemvalue-throws-excpetion-onsetting-002.html: Removed. * fast/dom/MicroData/microdata-domtokenlist-attribute-add-remove-tokens-expected.txt: Removed. * fast/dom/MicroData/microdata-domtokenlist-attribute-add-remove-tokens.html: Removed. * fast/dom/MicroData/nameditem-must-be-case-sensitive-expected.txt: Removed. * fast/dom/MicroData/nameditem-must-be-case-sensitive.html: Removed. * fast/dom/MicroData/nameditem-must-return-correct-item-properties-expected.txt: Removed. * fast/dom/MicroData/nameditem-must-return-correct-item-properties.html: Removed. * fast/dom/MicroData/nameditem-returns-propertynodelist-expected.txt: Removed. * fast/dom/MicroData/nameditem-returns-propertynodelist.html: Removed. * fast/dom/MicroData/names-item-out-of-range-index-expected.txt: Removed. * fast/dom/MicroData/names-item-out-of-range-index.html: Removed. * fast/dom/MicroData/names-property-must-be-correct-expected.txt: Removed. * fast/dom/MicroData/names-property-must-be-correct.html: Removed. * fast/dom/MicroData/names-property-test-expected.txt: Removed. * fast/dom/MicroData/names-property-test.html: Removed. * fast/dom/MicroData/properties-collection-add-remove-itemref-expected.txt: Removed. * fast/dom/MicroData/properties-collection-add-remove-itemref.html: Removed. * fast/dom/MicroData/properties-collection-add-remove-property-expected.txt: Removed. * fast/dom/MicroData/properties-collection-add-remove-property.html: Removed. * fast/dom/MicroData/properties-collection-behavior-add-remove-itemscope-attr-expected.txt: Removed. * fast/dom/MicroData/properties-collection-behavior-add-remove-itemscope-attr.html: Removed. * fast/dom/MicroData/properties-collection-must-be-correct-expected.txt: Removed. * fast/dom/MicroData/properties-collection-must-be-correct.html: Removed. * fast/dom/MicroData/properties-collection-must-ignore-properties-of-nested-items-expected.txt: Removed. * fast/dom/MicroData/properties-collection-must-ignore-properties-of-nested-items.html: Removed. * fast/dom/MicroData/properties-collection-must-see-the-properties-added-in-itemref-expected.txt: Removed. * fast/dom/MicroData/properties-collection-must-see-the-properties-added-in-itemref.html: Removed. * fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name-expected.txt: Removed. * fast/dom/MicroData/properties-collection-namedgetter-with-invalid-name.html: Removed. * fast/dom/MicroData/properties-collection-nameditem-test-expected.txt: Removed. * fast/dom/MicroData/properties-collection-nameditem-test.html: Removed. * fast/dom/MicroData/properties-collection-test-expected.txt: Removed. * fast/dom/MicroData/properties-collection-test.html: Removed. * fast/dom/MicroData/propertiescollection-crash-expected.txt: Removed. * fast/dom/MicroData/propertiescollection-crash.html: Removed. * fast/dom/MicroData/propertiescollection-on-changing-id-attr-expected.txt: Removed. * fast/dom/MicroData/propertiescollection-on-changing-id-attr.html: Removed. * fast/dom/MicroData/propertynodelist-add-remove-itemprop-tokens-expected.txt: Removed. * fast/dom/MicroData/propertynodelist-add-remove-itemprop-tokens.html: Removed. * fast/dom/MicroData/propertynodelist-add-remove-itemref-tokens-expected.txt: Removed. * fast/dom/MicroData/propertynodelist-add-remove-itemref-tokens.html: Removed. * fast/dom/MicroData/propertynodelist-crash-expected.txt: Removed. * fast/dom/MicroData/propertynodelist-crash.html: Removed. * fast/dom/MicroData/propertynodelist-getvalues-array-values-obtained-from-itemvalue-of-each-element-expected.txt: Removed. * fast/dom/MicroData/propertynodelist-getvalues-array-values-obtained-from-itemvalue-of-each-element.html: Removed. * fast/dom/MicroData/propertynodelist-getvalues-test-expected.txt: Removed. * fast/dom/MicroData/propertynodelist-getvalues-test.html: Removed. * fast/dom/MicroData/propertynodelist-test-add-remove-element-expected.txt: Removed. * fast/dom/MicroData/propertynodelist-test-add-remove-element.html: Removed. * fast/dom/MicroData/resources: Removed. * fast/dom/MicroData/resources/microdata-common.js: Removed. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153772 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
achristensen@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=119502 Reviewed by Benjamin Poulain. Source/WebKit: * WebKit.vcxproj/WebKit.sln: Build ANGLE libraries. * WebKit.vcxproj/WebKit/WebKitCFLite.props: Link to ANGLE libraries. Source/WTF: * wtf/FeatureDefines.h: Enabled WebGL. * wtf/Platform.h: Added definitions required for WebGL on Windows. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153768 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
rdar://problem/5927399mrowe@apple.com authored
Call the malloc stack logging function from within the various entry points to FastMalloc when stack logging is enabled. Reviewed by Oliver Hunt and Geoff Garen. * wtf/FastMalloc.cpp: Call in to MallocHook::InvokeNewHook / MallocHook::InvokeDeleteHook at the appropriate entry points to FastMalloc. The naming comes from TCMalloc's existing, unused concept of malloc hooks. (WTF::MallocHook::record): Call the stack logging function with appropriate argument types. (WTF::MallocHook::recordAllocation): Out-of-line slow path for when stack logging is enabled that calls record with the values in the right arguments. (WTF::MallocHook::recordDeallocation): Ditto. (WTF::MallocHook::init): Stack logging is enabled if the system allocator has enabled stack logging. (WTF::MallocHook::InvokeNewHook): Call recordAllocation in the unlikely event that stack logging is enabled. (WTF::MallocHook::InvokeDeleteHook): Ditto for recordDeallocation. (WTF::TCMalloc_ThreadCache::InitModule): Initialize the malloc hook. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153767 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
bfulgham@apple.com authored
Source/WebCore: * page/animation/CSSPropertyAnimation.cpp: (WebCore::blendFunc): Don't force std::remainder, since we are using our own custom implementation on Windows. Source/WTF: * wtf/MathExtras.h: (remainder): Provide implementation of C99 remainder for VS2010 (and earlier). git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153764 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
dfarler@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=117762 Reviewed by Mark Rowe. Source/JavaScriptCore: * Configurations/DebugRelease.xcconfig: Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS, LDFLAGS. * Configurations/JavaScriptCore.xcconfig: Add ASAN_OTHER_LDFLAGS. * Configurations/ToolExecutable.xcconfig: Don't use ASAN for build tools. Source/ThirdParty: * gtest/xcode/Config/General.xcconfig: Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS, LDFLAGS. * gtest/xcode/Config/StaticLibraryTarget.xcconfig: Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS. Source/ThirdParty/ANGLE: * Configurations/DebugRelease.xcconfig: Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS. Source/WebCore: No new tests necessary. * Configurations/DebugRelease.xcconfig: Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS, LDFLAGS. * Configurations/WebCore.xcconfig: Add ASAN_OTHER_LDFLAGS. * Configurations/WebCoreTestShim.xcconfig: Add ASAN_OTHER_LDFLAGS. * Configurations/WebCoreTestSupport.xcconfig: Add ASAN_OTHER_LDFLAGS. * WebCore.xcodeproj/project.pbxproj: Don't use ASAN for build tools. Source/WebInspectorUI: * Configurations/DebugRelease.xcconfig: Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS, LDFLAGS. Source/WebKit/mac: * Configurations/DebugRelease.xcconfig: Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS, LDFLAGS. * Configurations/WebKit.xcconfig: Add ASAN_OTHER_LDFLAGS. Source/WebKit2: * Configurations/DebugRelease.xcconfig: Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS, LDFLAGS. * Configurations/WebContentProcess.xcconfig: Add ASAN_OTHER_LDFLAGS. * Configurations/WebKit2.xcconfig: Add ASAN_OTHER_LDFLAGS. Source/WTF: * Configurations/DebugRelease.xcconfig: Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS. Tools: * DumpRenderTree/mac/Configurations/DebugRelease.xcconfig: Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS, LDFLAGS. * DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig: Add ASAN_OTHER_LDFLAGS. * MiniBrowser/Configurations/DebugRelease.xcconfig: Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS, LDFLAGS. * Scripts/check-for-weak-vtables-and-externals: Ignore ___asan externals, these are populated by compiler-rt. * TestWebKitAPI/Configurations/DebugRelease.xcconfig: Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS, LDFLAGS. * TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig: Add ASAN_OTHER_LDFLAGS. * WebKitLauncher/Configurations/Base.xcconfig: Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS, LDFLAGS. * WebKitLauncher/Configurations/WebKitNightlyEnabler.xcconfig: Add ASAN_OTHER_LDFLAGS. * WebKitTestRunner/Configurations/DebugRelease.xcconfig: Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS, LDFLAGS. * WebKitTestRunner/Configurations/InjectedBundle.xcconfig: Add ASAN_OTHER_LDFLAGS. * asan/asan.xcconfig: Added. * asan/webkit-asan-ignore.txt: Added. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153756 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 05 Aug, 2013 4 commits
-
-
mrowe@apple.com authored
* wtf/Assertions.cpp: Include StringExtras.h rather than StdLibExtras.h, since the former is where strncasecmp is declared. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153738 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mrowe@apple.com authored
<http://webkit.org/b/119031> Implement shared logic for initializing logging channels based on human-readable channel names in WTF, and rework the WebCore, WebKit and WebKit2 logging initialization on top of it. Logging channels may now be enabled by providing a comma-separated list of channel names, with the special "all" name enabling all channels. Channel names prefixed with a leading "-" will result in the named channel being disabled. For instance, specifying "all,-history,-loading" will result in all logging channels except for history and loading being enabled. For OS X developers, this also changes the name of the user defaults used to enable logging. This is done to allow the old user defaults to remain set for those people that need to switch between version of WebKit before and after this change. Where the old user default keys were WebCoreLogLevel, WebKitLogLevel and WebKit2LogLevel, the new user default keys are WebCoreLogging, WebKitLogging and WebKit2Logging. For GTK developers, this changes the separator used in the WEBKIT_DEBUG environment variable to a comma for consistency with the other platforms and to enable more code sharing. While doing this work I've also taken the opportunity to eliminate the need to touch multiple files when adding a new logging channel. Now only the header in the relevant project needs to be updated. Reviewed by Sam Weinig. Source/WebCore: * GNUmakefile.list.am: Remove the now-unused InitializeLogging.h * Target.pri: Ditto. * WebCore.xcodeproj/project.pbxproj: Ditto. * platform/InitializeLogging.h: Removed. Ditto. * platform/Logging.cpp: Use WEBCORE_LOG_CHANNELS to define all of the channels. (WebCore::logChannelByName): Renamed to match our naming conventions. Calls through to the new WTF function to find a log channel rather than repeating the names of the log channels a further two times each. (WebCore::initializeLoggingChannelsIfNecessary): Pass the channels and the log level string to the new WTF function that handles the initialization. * platform/Logging.h: Declare a WEBCORE_LOG_CHANNELS macro that can be used to apply a preprocessor macro across the set of all logging channels. Use this macro to declare the logging channels. * platform/blackberry/LoggingBlackBerry.cpp: (WebCore::logLevelString): Pull the value out of the WEBKIT_DEBUG environment variable. * platform/efl/LoggingEfl.cpp: (WebCore::logLevelString): Pull the value out of the WEBKIT_DEBUG environment variable, and then prepend NotYetImplemented to it so that that channel will be enabled by default. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: (WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink): Accommodate the rename to logChannelByName. * platform/gtk/LoggingGtk.cpp: (WebCore::logLevelString): Pull the value out of the WEBKIT_DEBUG environment variable, and then prepend NotYetImplemented to it so that that channel will be enabled by default. * platform/mac/LoggingMac.mm: (WebCore::logLevelString): Pull the value out of the WebCoreLogging user default key. * platform/qt/LoggingQt.cpp: (WebCore::logLevelString): Pull the value out of the QT_WEBKIT_LOG environment variable, and then prepend NotYetImplemented to it so that the channel will be enabled by default. * platform/win/LoggingWin.cpp: (WebCore::logLevelString): Pull the value out of the WebCoreLogging environment variable. Source/WebKit/blackberry: * Api/BlackBerryGlobal.cpp: Switch from WebCore's InitializeLogging.h to Logging.h. Source/WebKit/efl: * ewk/ewk_main.cpp: Switch from WebCore's InitializeLogging.h to Logging.h. Source/WebKit/gtk: * webkit/webkitglobals.cpp: Switch from WebCore's InitializeLogging.h to Logging.h. Source/WebKit/mac: * Misc/WebKitLogging.h: Declare a WEBKIT_LOG_CHANNELS macro that can be used to apply a preprocessor macro across the set of all logging channels. Use this macro to declare the logging channels. * Misc/WebKitLogging.m: Use WEBKIT_LOG_CHANNELS to define all of the channels. Pass the channels and the preference value to the new WTF function that handles the initialization. * WebView/WebPreferenceKeysPrivate.h: Remove a key that does not need to be here. * WebView/WebView.mm: Switch from WebCore's InitializeLogging.h to Logging.h. Source/WebKit/qt: * WebCoreSupport/InitWebCoreQt.cpp: Switch from WebCore's InitializeLogging.h to Logging.h. Source/WebKit/win: * WebKitLogging.cpp: Declare a WEBKIT_LOG_CHANNELS macro that can be used to apply a preprocessor macro across the set of all logging channels. Use this macro to declare the logging channels. * WebKitLogging.h: Use WEBKIT_LOG_CHANNELS to define all of the channels. Pass the channels to the new WTF function that handles the initialization. As per the previous implementation a developer needs to hard-code their desired log level here. * WebView.cpp: Switch from WebCore's InitializeLogging.h to Logging.h. Source/WebKit2: * NetworkProcess/NetworkProcess.cpp: Switch from WebCore's InitializeLogging.h to Logging.h. * Platform/Logging.cpp: Use WEBKIT2_LOG_CHANNELS to define all of the channels. (WebKit::initializeLogChannelsIfNecessary): Pass the channels and the log level string to the new WTF function that handles the initialization. (WebKit::logChannelByName): Renamed to match our naming conventions. Calls through to the new WTF function to find a log channel rather than repeating the names of the log channels a further two times each. (WebKit::logLevelString): Provide a no-op implementation. * Platform/Logging.h: Declare a WEBKIT2_LOG_CHANNELS macro that can be used to apply a preprocessor macro across the set of all logging channels. Use this macro to declare the logging channels. * Platform/efl/LoggingEfl.cpp: (WebKit::logLevelString): Pull the value out of the WEBKIT_DEBUG environment variable. * Platform/gtk/LoggingGtk.cpp: (WebKit::logLevelString): Ditto. * Platform/mac/Logging.mac.mm: (WebKit::logLevelString): Pull the value out of the WebKit2Logging user default key. * Platform/qt/LoggingQt.cpp: (WebKit::logLevelString): Pull the value out of the QT_WEBKIT_LOG environment variable. * Shared/WebKit2Initialize.cpp: Switch from WebCore's InitializeLogging.h to Logging.h. * UIProcess/WebContext.cpp: Switch from WebCore's InitializeLogging.h to Logging.h. Source/WTF: * wtf/Assertions.cpp: (WTFLogChannelByName): Iterate over the provided array of log channels, returning the first whose name matches case-insensitively. (setStateOfAllChannels): Helper function to set the state of all channels to a single value. (WTFInitializeLogChannelStatesFromString): Parse a string containing a case-insensitive, comma-separated list of channel names to enable or disable, with the latter being prefixed by a "-". * wtf/Assertions.h: Update the layout of WTFLogChannel to include only the state of the channel and its name. Declare WTFLogChannelByName and WTFInitializeLogChannelStatesFromString. * wtf/RefCountedLeakCounter.cpp: Update to the new format of WTFLogChannel. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153736 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
benjamin@webkit.org authored
https://bugs.webkit.org/show_bug.cgi?id=119503 Patch by Benjamin Poulain <bpoulain@apple.com> on 2013-08-05 Reviewed by Alexey Proskuryakov. * wtf/FeatureDefines.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153730 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
oliver@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=119489 Reviewed by Filip Pizlo. Source/JavaScriptCore: Move TypedArray implementation into JSC in advance of re-implementation * GNUmakefile.list.am: * JSCTypedArrayStubs.h: * JavaScriptCore.xcodeproj/project.pbxproj: * runtime/ArrayBuffer.cpp: Renamed from Source/WTF/wtf/ArrayBuffer.cpp. (JSC::ArrayBuffer::transfer): (JSC::ArrayBuffer::addView): (JSC::ArrayBuffer::removeView): * runtime/ArrayBuffer.h: Renamed from Source/WTF/wtf/ArrayBuffer.h. (JSC::ArrayBufferContents::ArrayBufferContents): (JSC::ArrayBufferContents::data): (JSC::ArrayBufferContents::sizeInBytes): (JSC::ArrayBufferContents::transfer): (JSC::ArrayBufferContents::copyTo): (JSC::ArrayBuffer::isNeutered): (JSC::ArrayBuffer::~ArrayBuffer): (JSC::ArrayBuffer::clampValue): (JSC::ArrayBuffer::create): (JSC::ArrayBuffer::createUninitialized): (JSC::ArrayBuffer::ArrayBuffer): (JSC::ArrayBuffer::data): (JSC::ArrayBuffer::byteLength): (JSC::ArrayBuffer::slice): (JSC::ArrayBuffer::sliceImpl): (JSC::ArrayBuffer::clampIndex): (JSC::ArrayBufferContents::tryAllocate): (JSC::ArrayBufferContents::~ArrayBufferContents): * runtime/ArrayBufferView.cpp: Renamed from Source/WTF/wtf/ArrayBufferView.cpp. (JSC::ArrayBufferView::ArrayBufferView): (JSC::ArrayBufferView::~ArrayBufferView): (JSC::ArrayBufferView::neuter): * runtime/ArrayBufferView.h: Renamed from Source/WTF/wtf/ArrayBufferView.h. (JSC::ArrayBufferView::buffer): (JSC::ArrayBufferView::baseAddress): (JSC::ArrayBufferView::byteOffset): (JSC::ArrayBufferView::setNeuterable): (JSC::ArrayBufferView::isNeuterable): (JSC::ArrayBufferView::verifySubRange): (JSC::ArrayBufferView::clampOffsetAndNumElements): (JSC::ArrayBufferView::setImpl): (JSC::ArrayBufferView::setRangeImpl): (JSC::ArrayBufferView::zeroRangeImpl): (JSC::ArrayBufferView::calculateOffsetAndLength): * runtime/Float32Array.h: Renamed from Source/WTF/wtf/Float32Array.h. (JSC::Float32Array::set): (JSC::Float32Array::getType): (JSC::Float32Array::create): (JSC::Float32Array::createUninitialized): (JSC::Float32Array::Float32Array): (JSC::Float32Array::subarray): * runtime/Float64Array.h: Renamed from Source/WTF/wtf/Float64Array.h. (JSC::Float64Array::set): (JSC::Float64Array::getType): (JSC::Float64Array::create): (JSC::Float64Array::createUninitialized): (JSC::Float64Array::Float64Array): (JSC::Float64Array::subarray): * runtime/Int16Array.h: Renamed from Source/WTF/wtf/Int16Array.h. (JSC::Int16Array::getType): (JSC::Int16Array::create): (JSC::Int16Array::createUninitialized): (JSC::Int16Array::Int16Array): (JSC::Int16Array::subarray): * runtime/Int32Array.h: Renamed from Source/WTF/wtf/Int32Array.h. (JSC::Int32Array::getType): (JSC::Int32Array::create): (JSC::Int32Array::createUninitialized): (JSC::Int32Array::Int32Array): (JSC::Int32Array::subarray): * runtime/Int8Array.h: Renamed from Source/WTF/wtf/Int8Array.h. (JSC::Int8Array::getType): (JSC::Int8Array::create): (JSC::Int8Array::createUninitialized): (JSC::Int8Array::Int8Array): (JSC::Int8Array::subarray): * runtime/IntegralTypedArrayBase.h: Renamed from Source/WTF/wtf/IntegralTypedArrayBase.h. (JSC::IntegralTypedArrayBase::set): (JSC::IntegralTypedArrayBase::IntegralTypedArrayBase): * runtime/TypedArrayBase.h: Renamed from Source/WTF/wtf/TypedArrayBase.h. (JSC::TypedArrayBase::data): (JSC::TypedArrayBase::set): (JSC::TypedArrayBase::setRange): (JSC::TypedArrayBase::zeroRange): (JSC::TypedArrayBase::length): (JSC::TypedArrayBase::byteLength): (JSC::TypedArrayBase::item): (JSC::TypedArrayBase::checkInboundData): (JSC::TypedArrayBase::TypedArrayBase): (JSC::TypedArrayBase::create): (JSC::TypedArrayBase::createUninitialized): (JSC::TypedArrayBase::subarrayImpl): (JSC::TypedArrayBase::neuter): * runtime/Uint16Array.h: Renamed from Source/WTF/wtf/Uint16Array.h. (JSC::Uint16Array::getType): (JSC::Uint16Array::create): (JSC::Uint16Array::createUninitialized): (JSC::Uint16Array::Uint16Array): (JSC::Uint16Array::subarray): * runtime/Uint32Array.h: Renamed from Source/WTF/wtf/Uint32Array.h. (JSC::Uint32Array::getType): (JSC::Uint32Array::create): (JSC::Uint32Array::createUninitialized): (JSC::Uint32Array::Uint32Array): (JSC::Uint32Array::subarray): * runtime/Uint8Array.h: Renamed from Source/WTF/wtf/Uint8Array.h. (JSC::Uint8Array::getType): (JSC::Uint8Array::create): (JSC::Uint8Array::createUninitialized): (JSC::Uint8Array::Uint8Array): (JSC::Uint8Array::subarray): * runtime/Uint8ClampedArray.h: Renamed from Source/WTF/wtf/Uint8ClampedArray.h. (JSC::Uint8ClampedArray::getType): (JSC::Uint8ClampedArray::create): (JSC::Uint8ClampedArray::createUninitialized): (JSC::Uint8ClampedArray::zeroFill): (JSC::Uint8ClampedArray::set): (JSC::Uint8ClampedArray::Uint8ClampedArray): (JSC::Uint8ClampedArray::subarray): * runtime/VM.h: Source/WebCore: Update WebCore for new location of TypedArray implementation. * ForwardingHeaders/runtime/ArrayBuffer.h: Added. * ForwardingHeaders/runtime/ArrayBufferView.h: Added. * ForwardingHeaders/runtime/Float32Array.h: Added. * ForwardingHeaders/runtime/Float64Array.h: Added. * ForwardingHeaders/runtime/Int16Array.h: Added. * ForwardingHeaders/runtime/Int32Array.h: Added. * ForwardingHeaders/runtime/Int8Array.h: Added. * ForwardingHeaders/runtime/IntegralTypedArrayBase.h: Added. * ForwardingHeaders/runtime/TypedArrayBase.h: Added. * ForwardingHeaders/runtime/Uint16Array.h: Added. * ForwardingHeaders/runtime/Uint32Array.h: Added. * ForwardingHeaders/runtime/Uint8Array.h: Added. * ForwardingHeaders/runtime/Uint8ClampedArray.h: Added. * Modules/webaudio/AnalyserNode.h: (WebCore::AnalyserNode::getFloatFrequencyData): (WebCore::AnalyserNode::getByteFrequencyData): (WebCore::AnalyserNode::getByteTimeDomainData): * Modules/webaudio/AsyncAudioDecoder.cpp: * Modules/webaudio/AsyncAudioDecoder.h: (WebCore::AsyncAudioDecoder::DecodingTask::audioData): * Modules/webaudio/AudioBuffer.h: * Modules/webaudio/AudioContext.cpp: * Modules/webaudio/AudioParam.h: * Modules/webaudio/AudioParamTimeline.h: * Modules/webaudio/PeriodicWave.h: * Modules/webaudio/RealtimeAnalyser.cpp: * Modules/webaudio/RealtimeAnalyser.h: * Modules/webaudio/ScriptProcessorNode.cpp: * Modules/webaudio/WaveShaperProcessor.h: * Modules/websockets/ThreadableWebSocketChannel.h: * Modules/websockets/WebSocket.cpp: * Modules/websockets/WebSocket.h: * Modules/websockets/WebSocketChannel.cpp: * Modules/websockets/WebSocketChannel.h: * Modules/websockets/WorkerThreadableWebSocketChannel.cpp: * Modules/websockets/WorkerThreadableWebSocketChannel.h: * WebCore.exp.in: * bindings/js/JSArrayBufferCustom.cpp: * bindings/js/JSArrayBufferViewHelper.h: * bindings/js/JSAudioContextCustom.cpp: * bindings/js/JSCryptoCustom.cpp: * bindings/js/JSDictionary.h: * bindings/js/JSFileReaderCustom.cpp: * bindings/js/JSWebGLRenderingContextCustom.cpp: * bindings/js/JSXMLHttpRequestCustom.cpp: * bindings/js/SerializedScriptValue.cpp: (WebCore::SerializedScriptValue::transferArrayBuffers): * bindings/js/SerializedScriptValue.h: * bindings/scripts/CodeGeneratorJS.pm: (AddIncludesForType): (GenerateHeader): (NativeToJSValue): * dom/MessageEvent.h: * fileapi/FileReader.cpp: * fileapi/FileReader.h: * fileapi/FileReaderLoader.cpp: * fileapi/FileReaderLoader.h: * fileapi/FileReaderSync.cpp: * fileapi/FileReaderSync.h: * fileapi/WebKitBlobBuilder.cpp: * fileapi/WebKitBlobBuilder.h: * html/HTMLMediaElement.cpp: * html/ImageData.h: * html/canvas/ArrayBuffer.idl: * html/canvas/ArrayBufferView.idl: * html/canvas/CanvasRenderingContext2D.cpp: * html/canvas/DataView.h: * html/canvas/Float32Array.idl: * html/canvas/Float64Array.idl: * html/canvas/Int16Array.idl: * html/canvas/Int32Array.idl: * html/canvas/Int8Array.idl: * html/canvas/Uint16Array.idl: * html/canvas/Uint32Array.idl: * html/canvas/Uint8Array.idl: * html/canvas/Uint8ClampedArray.idl: * html/canvas/WebGLBuffer.h: (WebCore::WebGLBuffer::elementArrayBuffer): * html/canvas/WebGLGetInfo.cpp: * html/canvas/WebGLGetInfo.h: * html/canvas/WebGLRenderingContext.cpp: * html/canvas/WebGLRenderingContext.h: * inspector/InspectorMemoryAgent.cpp: * page/Crypto.cpp: * page/Crypto.h: * platform/graphics/GraphicsContext3D.cpp: * platform/graphics/ImageBuffer.h: * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: * platform/graphics/cg/ImageBufferDataCG.h: * platform/graphics/filters/FEBlend.cpp: * platform/graphics/filters/FEColorMatrix.cpp: * platform/graphics/filters/FEComponentTransfer.cpp: * platform/graphics/filters/FEComposite.cpp: * platform/graphics/filters/FEConvolveMatrix.cpp: * platform/graphics/filters/FECustomFilter.cpp: * platform/graphics/filters/FEDisplacementMap.cpp: * platform/graphics/filters/FEDropShadow.cpp: * platform/graphics/filters/FEGaussianBlur.cpp: * platform/graphics/filters/FELighting.h: * platform/graphics/filters/FEMorphology.cpp: * platform/graphics/filters/FETurbulence.cpp: * platform/graphics/filters/FilterEffect.cpp: * platform/graphics/filters/FilterEffect.h: * platform/graphics/mac/GraphicsContext3DMac.mm: * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: * testing/Internals.h: * xml/XMLHttpRequest.cpp: * xml/XMLHttpRequest.h: (WebCore::XMLHttpRequest::optionalResponseArrayBuffer): Source/WTF: Remove TypedArray implementation from WTF * GNUmakefile.list.am: * WTF.xcodeproj/project.pbxproj: * wtf/Forward.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153728 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 02 Aug, 2013 6 commits
-
-
benjamin@webkit.org authored
https://bugs.webkit.org/show_bug.cgi?id=118768 Reviewed by Ryosuke Niwa. The first thing done by createUninitialized() is check if the length passed is zero. Internally, there are many cases for which we know the check will never succeed. Clang is usually really smart for those kind of things, but there are a few cases where the condition to avoid returning empty() is not simply a check for the length. This patch adds an internal initializer to deal with that. * wtf/text/StringImpl.cpp: (WTF::StringImpl::createUninitializedInternal): (WTF::StringImpl::createUninitializedInternalNonEmpty): (WTF::StringImpl::createInternal): Create internal has a special case for null pointer for the characters. The test also check length, the second check for length cannot fail. (WTF::StringImpl::create8BitIfPossible): ditto. (WTF::StringImpl::lower): 3 of the calls cannot be reached for empty length. On an empty length, the test for (noUpper && !(ored & ~0x7F)) would have caused the function to return "this". For the last createUninitialized(), there is no guarantee the realLength is not zero. (WTF::StringImpl::replace): The first thing we do in replace(UChar,UChar) is check if there is anything to replace. The check for length will never succeed as there must be a character to replace at that point. * wtf/text/StringImpl.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153686 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mark.lam@apple.com authored
Not reviewed. * wtf/Platform.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153676 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
mikhail.pozdnyakov@intel.com authored
https://bugs.webkit.org/show_bug.cgi?id=119397 Reviewed by Andreas Kling. Putting in place the compile assertion that had been removed with r153514. * wtf/SizeLimits.cpp: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153638 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
http://webkit.org/b/119169mrowe@apple.com authored
While RetainPtr is not necessary under ARC, having it available makes it easier to transition existing code from manual retain / release to ARC. Under ARC, the object member of RetainPtr is treated as a strong reference by the compiler. This means that merely assigning to the member variable is sufficient to retain the object, and clearing the member variable is sufficient to release it. We still need to explicitly CFRetain / CFRelease CoreFoundation types so the explicit calls to these functions are moved in to helper functions and overloading is used to have the Objective-C object versions of them be no-ops under ARC. Reviewed by Anders Carlsson. * wtf/RetainPtr.h: (WTF::retain): Continue to always CFRetain / CFRelease CoreFoundation objects. Only CFRetain / CFRelease Objective-C objects when using manual retain / release. (WTF::release): Ditto. (WTF::adoptNSReference): Adopting references will be handled automatically by the compiler when possible under ARC by eliminating redundant retain / release pairs. (WTF::RetainPtr::ImplicitConversionToBoolIsNotAllowed): A new method that exists only to be used by the conversion to the unspecified bool type. (WTF::RetainPtr::operator UnspecifiedBoolType): Switch to using a pointer to a member function as the unspecified bool type to avoid warnings from the compiler when casting Objective-C object types under ARC. (WTF::RetainPtr::RetainPtr): Switch to our retain / release helper functions. (WTF::RetainPtr::~RetainPtr): Ditto. (WTF::::RetainPtr): Ditto. (WTF::::clear): Ditto. (WTF::=): Ditto. (WTF::adoptCF): Annotate the argument with CF_RELEASES_ARGUMENT on both the declaration and the definition. (WTF::adoptNS): Ditto for NS_RELEASES_ARGUMENT. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153637 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
rdar://problem/14235491mrowe@apple.com authored
<rdar://problem/14235491> FastMalloc zone enumerator responding to MALLOC_PTR_REGION_RANGE_TYPE with individual allocations Teach PageMapMemoryUsageRecorder::recordPendingRegions to only record data of the type that it's asked for. This also fixes the vmmap output to associate some regions with the FastMalloc malloc zone that were previously associated with it only via the VM tag, meaning they were incorrectly being omitted from the malloc statistics section of the report. Reviewed by Dan Bernstein. * wtf/FastMalloc.cpp: (WTF::PageMapMemoryUsageRecorder::recordPendingRegions): Report the individual allocations only when requested. Add the ability to report the regions containing pointers separately from the allocations. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153636 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
rdar://problem/14528244mrowe@apple.com authored
A logic error in the page map enumeration code within FastMalloc could result in a subset of the memory regions owned by FastMalloc being skipped by the malloc zone enumeration code used by leaks and other performance tools. If the only reference to an allocated object lived within one of the skipped memory regions, leaks would believe it had been leaked since it would not find any references to the object. The logic error manifested when a FastMalloc span owned a region of memory that crossed a 16MB address space boundary, and when there was one or more other spans immediately after it in the address space. Crossing the 16MB address space boundary means that the start and end points of the span are in different leaf nodes of the page map trie, and the code within the page map's visitValues method didn't correctly account this case when skipping to the end of the span after visiting it. It would resume iterating from the start of the next leaf node rather than continuing to skip values until the end of the span was passed. The value representing the end of the span would then be processed as if it were the start of a new span, and more values would be skipped even though they may contain actual spans. The solution is to rework the algorithm used in visitValues so that it will skip the correct number of values even when some of the values are in different leaf nodes. This is a more involved change than it may seem since it's also necessary to deal with the case where a memory region spans two separate root nodes, which can happen if the region happens to cross a 64GB boundary in the address space. Reviewed by Geoff Garen. * wtf/TCPageMap.h: (TCMalloc_PageMap3::visitValues): Use a single loop to iterate, with the loop index being the key in to the page map in the same form as used by get and set. This allows us to correctly deal with the index being skipped to a different intermediate or root node as a result of visiting a span that crosses a 16MB boundary in memory. (TCMalloc_PageMap2::visitValues): Ditto, but without having to deal with intermediate nodes. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153635 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
- 01 Aug, 2013 2 commits
-
-
commit-queue@webkit.org authored
<rdar://problem/14411008> and https://bugs.webkit.org/show_bug.cgi?id=119356 Patch by Ruth Fong <ruth_fong@apple.com> on 2013-08-01 Reviewed by Benjamin Poulain. Source/JavaScriptCore: * Configurations/FeatureDefines.xcconfig: Added and enabled INPUT_TYPE_COLOR_POPOVER. Source/WebCore: * Configurations/FeatureDefines.xcconfig: Added and enabled INPUT_TYPE_COLOR_POPOVER. Source/WebKit/mac: * Configurations/FeatureDefines.xcconfig: Added and enabled INPUT_TYPE_COLOR_POPOVER. Source/WebKit2: This patch adds an popover implementation of <input type='color'>. * Configurations/FeatureDefines.xcconfig: Added and enabled INPUT_TYPE_COLOR_POPOVER. * UIProcess/API/mac/PageClientImpl.mm: (WebKit::PageClientImpl::createColorPicker): Updated to pass the coordinates of the <input type='color'> element and the WKView object for the window. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::viewWillStartLiveResize): Close popover color picker when the view is resized. (WebKit::WebPageProxy::viewInWindowStateDidChange): Close popover color picker when the view is no longer in the window. (WebKit::WebPageProxy::showColorPicker): Updated to show either a color panel or a popover color picker depending on whether INPUT_TYPE_COLOR_POPOVER is enabled. * UIProcess/mac/WebColorPickerMac.h: * UIProcess/mac/WebColorPickerMac.mm: (WebKit::WebColorPickerMac::create): (WebKit::WebColorPickerMac::~WebColorPickerMac): (WebKit::WebColorPickerMac::WebColorPickerMac): (WebKit::WebColorPickerMac::endPicker): (WebKit::WebColorPickerMac::setSelectedColor): (WebKit::WebColorPickerMac::showColorPicker): Methods updated to handle both the color panel implementation and the popover implementation; also renamed m_panel to m_colorPickerUI. (-[WKColorPopoverMac initWithFrame:WebCore::inView:]): (-[WKColorPopoverMac setAndShowPicker:WebKit::withColor:]): (-[WKColorPopoverMac dealloc]): (-[WKColorPopoverMac invalidate]): (-[WKColorPopoverMac windowWillClose:]): (-[WKColorPopoverMac didChooseColor:]): (-[WKColorPopoverMac setColor:]): WKColorPopoverMac provides the popover implementation of <input type='color'>. (-[WKColorPanelMac didChooseColor:]): Updated to match the interface of WKColorPickerMac::didChooseColor. Source/WTF: * wtf/FeatureDefines.h: Added and enabled INPUT_TYPE_COLOR_POPOVER. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153633 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
simon.fraser@apple.com authored
REGRESSION(r145592): AutodrainedPool.h. RunLoopTimer.h, SchedulePair.h are being copied into the wrong location https://bugs.webkit.org/show_bug.cgi?id=112833 Reviewed by Sam Weinig. AutodrainedPool.h and SchedulePair.h should just be project headers, not private headers, so they get copied into <build dir>/usr/local/include/wtf not <build dir>/usr/local/include * WTF.xcodeproj/project.pbxproj: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153609 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-