1. 23 Aug, 2013 5 commits
    • fpizlo@apple.com's avatar
      build-jsc --ftl-jit should work · 67aa405d
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120194
      
      Reviewed by Oliver Hunt.
      
      Source/JavaScriptCore: 
      
      * Configurations/Base.xcconfig: CPPFLAGS should include FEATURE_DEFINES
      * Configurations/JSC.xcconfig: The 'jsc' tool includes headers where field layout may depend on FEATURE_DEFINES
      * Configurations/ToolExecutable.xcconfig: All other tools include headers where field layout may depend on FEATURE_DEFINES
      * ftl/FTLLowerDFGToLLVM.cpp: Build fix
      (JSC::FTL::LowerDFGToLLVM::compilePutStructure):
      (JSC::FTL::LowerDFGToLLVM::compilePhantomPutStructure):
      
      Source/WTF: 
      
      * wtf/LLVMHeaders.h: I don't know what went wrong here. If HAVE(LLVM), then we need those headers!
      
      Tools: 
      
      * Scripts/build-jsc: Need to pass the feature flag to xcodebuild
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154509 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      67aa405d
    • bfulgham@apple.com's avatar
      [Windows] Unreviewed build correction after r154498. · 25e0e999
      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
      25e0e999
    • oliver@apple.com's avatar
      Attempt to appease windows bot. · b90d845d
      oliver@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154501 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b90d845d
    • oliver@apple.com's avatar
      Re-sort xcode project file · 189baf5c
      oliver@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154499 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      189baf5c
    • oliver@apple.com's avatar
      Support in memory compression of rarely used data · abcf78c4
      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
      abcf78c4
  2. 21 Aug, 2013 3 commits
    • commit-queue@webkit.org's avatar
      Unreviewed, rolling out r154416. · 4ef33f9a
      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
      4ef33f9a
    • achristensen@apple.com's avatar
      <https://webkit.org/b/120137> Separating Win32 and Win64 builds. · 23db3941
      achristensen@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
      23db3941
    • allan.jensen@digia.com's avatar
      Disable maybe-uninitialized warning in GCC 4.8 · 0450eb52
      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
      0450eb52
  3. 20 Aug, 2013 3 commits
    • achristensen@apple.com's avatar
      Use PlatformArchitecture to distinguish between 32-bit and 64-bit builds on Windows. · 64923f13
      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
      64923f13
    • commit-queue@webkit.org's avatar
      <https://webkit.org/b/120056> [GTK][ARM] enable DFG_JIT · 6a0bf880
      commit-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
      6a0bf880
    • rniwa@webkit.org's avatar
      <https://webkit.org/b/120049> Delete code for Snow Leopard · 3feac41c
      rniwa@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
      3feac41c
  4. 19 Aug, 2013 2 commits
    • joepeck@webkit.org's avatar
      <https://webkit.org/b/120036> [iOS] Upstream Source/WTF Xcode project for iOS · 9724566b
      joepeck@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
      9724566b
    • joepeck@webkit.org's avatar
      <https://webkit.org/b/119905> [iOS] Upstream Source/WTF · 45ffc95e
      joepeck@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
      45ffc95e
  5. 16 Aug, 2013 1 commit
    • commit-queue@webkit.org's avatar
      <https://webkit.org/b/119785> Replace currentTime() with monotonicallyIncreasingTime() in WebCore · a5f446ab
      commit-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
      a5f446ab
  6. 15 Aug, 2013 2 commits
    • fpizlo@apple.com's avatar
      refCount() of a StringImpl could be zero if it's static; in that case we... · d9ba5eeb
      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
      d9ba5eeb
    • fpizlo@apple.com's avatar
      Typed arrays should be rewritten · 0e0d9312
      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
      0e0d9312
  7. 14 Aug, 2013 1 commit
    • allan.jensen@digia.com's avatar
      DFG_JIT implementation for sh4 architecture. · acbfd5ca
      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
      acbfd5ca
  8. 13 Aug, 2013 1 commit
  9. 12 Aug, 2013 2 commits
  10. 11 Aug, 2013 1 commit
  11. 09 Aug, 2013 1 commit
  12. 07 Aug, 2013 1 commit
  13. 06 Aug, 2013 5 commits
    • weinig@apple.com's avatar
      .: Remove support for HTML5 MicroData · b49e18e4
      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
      b49e18e4
    • achristensen@apple.com's avatar
      Enabled WebGL on WinCairo port. · 82d30a4f
      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
      82d30a4f
    • mrowe@apple.com's avatar
      <rdar://problem/5927399> FastMalloc should support MallocStackLogging · 8541dcff
      mrowe@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
      8541dcff
    • bfulgham@apple.com's avatar
      [Windows] Unreviewed build correction after r153754 and r153757. · dfa786bb
      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
      dfa786bb
    • dfarler@apple.com's avatar
      Provide optional OTHER_CFLAGS, OTHER_CPPFLAGS, OTHER_LDFLAGS additions for building with ASAN · 5bb6d5ef
      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
      5bb6d5ef
  14. 05 Aug, 2013 4 commits
    • mrowe@apple.com's avatar
      Build fix for Windows. · b30cb3ab
      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
      b30cb3ab
    • mrowe@apple.com's avatar
      Logging should be configurable using human-readable channel names rather than crazy bitmasks · e6021b96
      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
      e6021b96
    • benjamin@webkit.org's avatar
      Disable <meter> by default on iOS, it is enabled through the xconfig files · 7de7b042
      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
      7de7b042
    • oliver@apple.com's avatar
      Move TypedArray implementation into JSC · df606084
      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
      df606084
  15. 02 Aug, 2013 6 commits
    • benjamin@webkit.org's avatar
      Remove a bunch of redundant checks for empty string in StringImpl · 38e804d1
      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
      38e804d1
    • mark.lam@apple.com's avatar
      Gardening: Touched a line in Platform.h to get all bots to do a clean build. · 3dd7b19e
      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
      3dd7b19e
    • mikhail.pozdnyakov@intel.com's avatar
      Check WTF::Vector size with '0' inline capacity · 03505c24
      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
      03505c24
    • mrowe@apple.com's avatar
      <http://webkit.org/b/119169> RetainPtr should support ARC for Objective-C objects. · 9430708b
      mrowe@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
      9430708b
    • mrowe@apple.com's avatar
      <rdar://problem/14235491> FastMalloc zone enumerator responding to... · a30bb37a
      mrowe@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
      a30bb37a
    • mrowe@apple.com's avatar
      <rdar://problem/14528244> False-positive leaks from FastMalloc. · 770e5144
      mrowe@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
      770e5144
  16. 01 Aug, 2013 2 commits
    • commit-queue@webkit.org's avatar
      [Forms: color] <input type='color'> popover color well implementation · 7231230f
      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
      7231230f
    • simon.fraser@apple.com's avatar
      REGRESSION(r145592): AutodrainedPool.h. RunLoopTimer.h, SchedulePair.h are... · 1e0e6ef1
      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
      1e0e6ef1