1. 26 Aug, 2011 1 commit
    • fpizlo@apple.com's avatar
      The GC does not have a facility for profiling the kinds of objects · d6bcd37d
      fpizlo@apple.com authored
      that occupy the heap
      https://bugs.webkit.org/show_bug.cgi?id=66849
      
      Reviewed by Geoffrey Garen.
      
      Destructor calls and object scans are now optionally counted, per
      vtable. When the heap is destroyed and profiling is enabled, the
      counts are dumped, with care taken to print the names of classes
      (modulo C++ mangling) sorted in descending commonality.
      
      * GNUmakefile.list.am:
      * JavaScriptCore.exp:
      * JavaScriptCore.pro:
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * heap/Heap.cpp:
      (JSC::Heap::destroy):
      * heap/Heap.h:
      * heap/MarkStack.cpp:
      (JSC::SlotVisitor::visitChildren):
      (JSC::SlotVisitor::drain):
      * heap/MarkStack.h:
      * heap/MarkedBlock.cpp:
      (JSC::MarkedBlock::callDestructor):
      * heap/MarkedBlock.h:
      * heap/VTableSpectrum.cpp: Added.
      (JSC::VTableSpectrum::VTableSpectrum):
      (JSC::VTableSpectrum::~VTableSpectrum):
      (JSC::VTableSpectrum::countVPtr):
      (JSC::VTableSpectrum::count):
      (JSC::VTableAndCount::VTableAndCount):
      (JSC::VTableAndCount::operator<):
      (JSC::VTableSpectrum::dump):
      * heap/VTableSpectrum.h: Added.
      * wtf/Platform.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@93918 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d6bcd37d
  2. 24 Aug, 2011 1 commit
    • fpizlo@apple.com's avatar
      There is no facility for profiling how the write barrier is used · aec7e0c4
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=66747
      
      Reviewed by Geoffrey Garen.
      
      Added facilities for the JIT to specify the kind of write barrier
      being executed.  Added code for profiling the number of each kind
      of barrier encountered.
      
      * GNUmakefile.list.am:
      * JavaScriptCore.exp:
      * JavaScriptCore.pro:
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * dfg/DFGJITCodeGenerator.cpp:
      (JSC::DFG::JITCodeGenerator::writeBarrier):
      (JSC::DFG::JITCodeGenerator::cachedPutById):
      * dfg/DFGJITCodeGenerator.h:
      * dfg/DFGJITCompiler.cpp:
      (JSC::DFG::JITCompiler::emitCount):
      * dfg/DFGJITCompiler.h:
      (JSC::DFG::JITCompiler::emitCount):
      * dfg/DFGNonSpeculativeJIT.cpp:
      (JSC::DFG::NonSpeculativeJIT::compile):
      * dfg/DFGRepatch.cpp:
      (JSC::DFG::tryCachePutByID):
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::SpeculativeJIT::compile):
      * heap/Heap.h:
      (JSC::Heap::writeBarrier):
      * heap/WriteBarrierSupport.cpp: Added.
      (JSC::WriteBarrierCounters::initialize):
      * heap/WriteBarrierSupport.h: Added.
      (JSC::WriteBarrierCounters::WriteBarrierCounters):
      (JSC::WriteBarrierCounters::jitCounterFor):
      (JSC::WriteBarrierCounters::countWriteBarrier):
      * jit/JIT.h:
      * jit/JITPropertyAccess.cpp:
      (JSC::JIT::emit_op_put_by_id):
      (JSC::JIT::privateCompilePutByIdTransition):
      (JSC::JIT::emit_op_put_scoped_var):
      (JSC::JIT::emit_op_put_global_var):
      (JSC::JIT::emitWriteBarrier):
      * jit/JITPropertyAccess32_64.cpp:
      (JSC::JIT::emit_op_put_by_val):
      (JSC::JIT::emit_op_put_by_id):
      (JSC::JIT::privateCompilePutByIdTransition):
      (JSC::JIT::emit_op_put_scoped_var):
      (JSC::JIT::emit_op_put_global_var):
      (JSC::JIT::emitWriteBarrier):
      * runtime/InitializeThreading.cpp:
      (JSC::initializeThreadingOnce):
      * runtime/WriteBarrier.h:
      (JSC::WriteBarrierBase::setWithoutWriteBarrier):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@93698 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      aec7e0c4
  3. 23 Aug, 2011 1 commit
  4. 19 Aug, 2011 2 commits
    • fpizlo@apple.com's avatar
      The JSC JIT currently has no facility to profile and report · 95a9f0dc
      fpizlo@apple.com authored
      the types of values
      https://bugs.webkit.org/show_bug.cgi?id=65901
      
      Reviewed by Gavin Barraclough.
      
      Added the ability to profile the values seen at function calls (both
      arguments and results) and heap loads.  This is done with emphasis
      on performance.  A value profiling site consists of: add, and,
      move, and store; no branching is necessary.  Each value profiling
      site (called a ValueProfile) has a ring buffer of 8 recently-seen
      values.  ValueProfiles are stored in the CodeBlock; there will be
      one for each argument (excluding this) and each heap load or callsite.
      Each time a value profiling site executes, it stores the value into
      a pseudo-random element in the ValueProfile buffer.  The point is
      that for frequently executed code, we will have 8 somewhat recent
      values in the buffer and will be able to not only figure out what
      type it is, but also to be able to reason about the actual values
      if we wish to do so.
      
      This feature is currently disabled by default.  When enabled, it
      results in a 3.7% slow-down on SunSpider.
      
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * bytecode/CodeBlock.cpp:
      (JSC::CodeBlock::~CodeBlock):
      * bytecode/CodeBlock.h:
      (JSC::CodeBlock::addValueProfile):
      (JSC::CodeBlock::numberOfValueProfiles):
      (JSC::CodeBlock::valueProfile):
      (JSC::CodeBlock::valueProfileForBytecodeOffset):
      * bytecode/ValueProfile.h: Added.
      (JSC::ValueProfile::ValueProfile):
      (JSC::ValueProfile::numberOfSamples):
      (JSC::ValueProfile::computeProbability):
      (JSC::ValueProfile::numberOfInt32s):
      (JSC::ValueProfile::numberOfDoubles):
      (JSC::ValueProfile::numberOfCells):
      (JSC::ValueProfile::probabilityOfInt32):
      (JSC::ValueProfile::probabilityOfDouble):
      (JSC::ValueProfile::probabilityOfCell):
      (JSC::getValueProfileBytecodeOffset):
      * jit/JIT.cpp:
      (JSC::JIT::privateCompileSlowCases):
      (JSC::JIT::privateCompile):
      * jit/JIT.h:
      (JSC::JIT::emitValueProfilingSite):
      * jit/JITCall.cpp:
      (JSC::JIT::emit_op_call_put_result):
      * jit/JITInlineMethods.h:
      (JSC::JIT::emitValueProfilingSite):
      * jit/JITPropertyAccess.cpp:
      (JSC::JIT::emit_op_get_by_val):
      (JSC::JIT::emitSlow_op_get_by_val):
      (JSC::JIT::emit_op_method_check):
      (JSC::JIT::emit_op_get_by_id):
      (JSC::JIT::emitSlow_op_get_by_id):
      * jit/JSInterfaceJIT.h:
      * wtf/Platform.h:
      * wtf/StdLibExtras.h:
      (WTF::binarySearch):
      (WTF::genericBinarySearch):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@93466 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      95a9f0dc
    • bdakin@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=66590 · 5ea44fd9
      bdakin@apple.com authored
      Re-name scrollbar painter types
      
      Reviewed by Sam Weinig.
      
      Source/JavaScriptCore: 
      
      WTF_USE_WK_SCROLLBAR_PAINTER is now WTF_USE_SCROLLBAR_PAINTER since WK no longer 
      applies.
      * wtf/Platform.h:
      
      Source/WebCore: 
      
      Names changed to remove references to WebKitSystemInterface since the 
      implementation is now in WebCore. And the type names changed to be more Objective-
      Cish instead of C++ish
      WTF_USE_WK_SCROLLBAR_PAINTER -> WTF_USE_SCROLLBAR_PAINTER
      WKScrollbarPainterRef -> ScrollbarPainter
      WKScrollbarPainterControllerRef -> ScrollbarPainterController
      
      * platform/mac/NSScrollerImpDetails.h:
      * platform/mac/ScrollAnimatorMac.h:
      * platform/mac/ScrollAnimatorMac.mm:
      (-[ScrollbarPartAnimation initWithScrollbarPainter:part:WebCore::scrollAnimator:WebCore::animateAlphaTo:duration:]):
      (-[ScrollbarPainterDelegate setUpAnimation:scrollerPainter:part:WebCore::animateAlphaTo:duration:]):
      (-[ScrollbarPainterDelegate scrollerImp:animateKnobAlphaTo:duration:]):
      (-[ScrollbarPainterDelegate scrollerImp:animateTrackAlphaTo:duration:]):
      (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
      (WebCore::ScrollAnimatorMac::~ScrollAnimatorMac):
      (WebCore::ScrollAnimatorMac::notifyPositionChanged):
      (WebCore::ScrollAnimatorMac::contentAreaWillPaint):
      (WebCore::ScrollAnimatorMac::mouseEnteredContentArea):
      (WebCore::ScrollAnimatorMac::mouseExitedContentArea):
      (WebCore::ScrollAnimatorMac::mouseMovedInContentArea):
      (WebCore::ScrollAnimatorMac::willStartLiveResize):
      (WebCore::ScrollAnimatorMac::contentsResized):
      (WebCore::ScrollAnimatorMac::willEndLiveResize):
      (WebCore::ScrollAnimatorMac::contentAreaDidShow):
      (WebCore::ScrollAnimatorMac::contentAreaDidHide):
      (WebCore::ScrollAnimatorMac::didBeginScrollGesture):
      (WebCore::ScrollAnimatorMac::didEndScrollGesture):
      (WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
      (WebCore::ScrollAnimatorMac::willRemoveVerticalScrollbar):
      (WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
      (WebCore::ScrollAnimatorMac::willRemoveHorizontalScrollbar):
      (WebCore::ScrollAnimatorMac::cancelAnimations):
      (WebCore::ScrollAnimatorMac::setIsActive):
      (WebCore::ScrollAnimatorMac::updateScrollerStyle):
      * platform/mac/ScrollViewMac.mm:
      (WebCore::ScrollView::platformSetScrollbarOverlayStyle):
      * platform/mac/ScrollbarThemeMac.h:
      * platform/mac/ScrollbarThemeMac.mm:
      (+[ScrollbarPrefsObserver appearancePrefsChanged:]):
      (WebCore::updateArrowPlacement):
      (WebCore::ScrollbarThemeMac::registerScrollbar):
      (WebCore::ScrollbarThemeMac::setNewPainterForScrollbar):
      (WebCore::ScrollbarThemeMac::painterForScrollbar):
      (WebCore::ScrollbarThemeMac::scrollbarThickness):
      (WebCore::ScrollbarThemeMac::usesOverlayScrollbars):
      (WebCore::ScrollbarThemeMac::updateScrollbarOverlayStyle):
      (WebCore::ScrollbarThemeMac::hasThumb):
      (WebCore::ScrollbarThemeMac::minimumThumbLength):
      (WebCore::ScrollbarThemeMac::updateEnabledState):
      (WebCore::scrollbarPainterPaint):
      (WebCore::ScrollbarThemeMac::paint):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@93445 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5ea44fd9
  5. 12 Aug, 2011 1 commit
    • weinig@apple.com's avatar
      Move compiler specific macros to their own header · 9ab06d50
      weinig@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=66119
      
      Reviewed by Anders Carlsson.
      
      Source/JavaScriptCore: 
      
      * JavaScriptCore.gypi:
      * JavaScriptCore.vcproj/WTF/WTF.vcproj:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * wtf/CMakeLists.txt:
      Add Compiler.h
      
      * wtf/AlwaysInline.h:
      Move the contents of this file (which no longer was just about ALWAYS_INLINE) to
      Compiler.h.  We can remove this file in a later commit.
      
      * wtf/Compiler.h: Added.
      Put all compiler specific checks and features in this file.
      
      * wtf/Platform.h:
      Move COMPILER macro and definitions (and the odd WARN_UNUSED_RETURN compiler feature)
      to Compiler.h.  Include Compiler.h since it is necessary.
      
      Source/JavaScriptGlue: 
      
      * ForwardingHeaders/wtf/Compiler.h: Added.
      
      Source/WebCore: 
      
      * ForwardingHeaders/wtf/Compiler.h: Added.
      
      Tools: 
      
      * DumpRenderTree/ForwardingHeaders/wtf/Compiler.h: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@92974 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9ab06d50
  6. 02 Aug, 2011 2 commits
    • fpizlo@apple.com's avatar
      JSC GC is far too conservative about growing the heap size, particularly · f49ce5c9
      fpizlo@apple.com authored
      on desktop platforms
      https://bugs.webkit.org/show_bug.cgi?id=65438
      
      Reviewed by Oliver Hunt.
      
      Source/JavaScriptCore:
      
      The minimum heap size is now 16MB instead of 512KB, provided all of the
      following are true:
      a) ENABLE(LARGE_HEAP) is set, which currently only happens on
         x86 targets, but could reasonably happen on any platform that is
         known to have a decent amount of RAM.
      b) JSGlobalData is initialized with HeapSize = LargeHeap, which
         currently only happens when it's the JSDOMWindowBase in WebCore or
         in the jsc command-line tool.
      
      This is a 4.1% speed-up on SunSpider.
      
      * JavaScriptCore.exp:
      * heap/Heap.cpp:
      (JSC::Heap::Heap):
      (JSC::Heap::collect):
      * heap/Heap.h:
      * jsc.cpp:
      (main):
      * runtime/JSGlobalData.cpp:
      (JSC::JSGlobalData::JSGlobalData):
      (JSC::JSGlobalData::createContextGroup):
      (JSC::JSGlobalData::create):
      (JSC::JSGlobalData::createLeaked):
      (JSC::JSGlobalData::sharedInstance):
      * runtime/JSGlobalData.h:
      * wtf/Platform.h:
      
      Source/WebCore:
      
      No change in behavior, thus no new tests.
      
      Pass the LargeHeap hint to JSGlobalData when creating the JSC runtime
      instance corresponding to non-worker JS code.
      
      * bindings/js/JSDOMWindowBase.cpp:
      (WebCore::JSDOMWindowBase::commonJSGlobalData):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@92224 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f49ce5c9
    • jeffm@apple.com's avatar
      Move WTF_USE_AVFOUNDATION from JavaScriptCore/wtf/platform.h to WebCore/config.h · 44847a87
      jeffm@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=65552
              
      Since this is a WebCore feature, there's no need to define it in JavaScriptCore/wtf/platform.h.
      
      Reviewed by Adam Roben.
      
      Source/JavaScriptCore: 
      
      * wtf/Platform.h: Removed WTF_USE_AVFOUNDATION.
      
      Source/WebCore: 
      
      No change in functionality, so new tests.
      
      * config.h: Added WTF_USE_AVFOUNDATION.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@92210 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      44847a87
  7. 31 Jul, 2011 1 commit
    • fpizlo@apple.com's avatar
      The JSC garbage collector returns memory to the operating system too · 07148b12
      fpizlo@apple.com authored
      eagerly.
      https://bugs.webkit.org/show_bug.cgi?id=65382
      
      Reviewed by Oliver Hunt.
      
      This introduces a memory reuse model similar to the one in FastMalloc.
      A periodic scavenger thread runs in the background and returns half the
      free memory to the OS on each timer fire.  New block allocations first
      attempt to get the memory from the collector's internal pool, reverting
      to OS allocation only when this pool is empty.
      
      * heap/Heap.cpp:
      (JSC::Heap::Heap):
      (JSC::Heap::~Heap):
      (JSC::Heap::destroy):
      (JSC::Heap::waitForRelativeTimeWhileHoldingLock):
      (JSC::Heap::waitForRelativeTime):
      (JSC::Heap::blockFreeingThreadStartFunc):
      (JSC::Heap::blockFreeingThreadMain):
      (JSC::Heap::allocateBlock):
      (JSC::Heap::freeBlocks):
      (JSC::Heap::releaseFreeBlocks):
      * heap/Heap.h:
      * heap/MarkedBlock.cpp:
      (JSC::MarkedBlock::destroy):
      (JSC::MarkedBlock::MarkedBlock):
      (JSC::MarkedBlock::initForCellSize):
      (JSC::MarkedBlock::reset):
      * heap/MarkedBlock.h:
      * wtf/Platform.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@92084 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      07148b12
  8. 29 Jul, 2011 1 commit
    • fpizlo@apple.com's avatar
      JSC GC zombie support no longer works, and is likely no longer needed. · 2f1f3943
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=65404
      
      Reviewed by Darin Adler.
      
      This removes zombies, because they no longer work, are not tested, are
      probably not needed, and are getting in the way of GC optimization
      work.
      
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * heap/Handle.h:
      (JSC::HandleConverter::operator->):
      (JSC::HandleConverter::operator*):
      * heap/HandleHeap.cpp:
      (JSC::HandleHeap::isValidWeakNode):
      * heap/Heap.cpp:
      (JSC::Heap::destroy):
      (JSC::Heap::collect):
      * heap/MarkedBlock.cpp:
      (JSC::MarkedBlock::sweep):
      * heap/MarkedBlock.h:
      (JSC::MarkedBlock::clearMarks):
      * interpreter/Register.h:
      (JSC::Register::Register):
      (JSC::Register::operator=):
      * runtime/ArgList.h:
      (JSC::MarkedArgumentBuffer::append):
      (JSC::ArgList::ArgList):
      * runtime/JSCell.cpp:
      (JSC::isZombie):
      * runtime/JSCell.h:
      * runtime/JSGlobalData.cpp:
      (JSC::JSGlobalData::JSGlobalData):
      (JSC::JSGlobalData::clearBuiltinStructures):
      * runtime/JSGlobalData.h:
      * runtime/JSValue.h:
      * runtime/JSValueInlineMethods.h:
      (JSC::JSValue::JSValue):
      * runtime/JSZombie.cpp: Removed.
      * runtime/JSZombie.h: Removed.
      * runtime/WriteBarrier.h:
      (JSC::WriteBarrierBase::setEarlyValue):
      (JSC::WriteBarrierBase::operator*):
      (JSC::WriteBarrierBase::setWithoutWriteBarrier):
      * wtf/Platform.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@92046 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2f1f3943
  9. 27 Jul, 2011 1 commit
    • dslomov@google.com's avatar
      [chromium] Turn on WTF_MULTIPLE_THREADS. · cbf2473f
      dslomov@google.com authored
      https://bugs.webkit.org/show_bug.cgi?id=61017
      The patch turns on WTF_MULTIPLE_THREADS in chromium and
      pushes some relevant initializations from JSC::initializeThreading
      to WTF::initializeThreading.
      
      Reviewed by David Levin.
      
      * runtime/InitializeThreading.cpp:
      (JSC::initializeThreadingOnce):
      * wtf/FastMalloc.cpp:
      (WTF::isForbidden):
      (WTF::fastMallocForbid):
      (WTF::fastMallocAllow):
      * wtf/Platform.h:
      * wtf/ThreadingPthreads.cpp:
      (WTF::initializeThreading):
      * wtf/ThreadingWin.cpp:
      (WTF::initializeThreading):
      * wtf/gtk/ThreadingGtk.cpp:
      (WTF::initializeThreading):
      * wtf/qt/ThreadingQt.cpp:
      (WTF::initializeThreading):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@91906 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cbf2473f
  10. 22 Jul, 2011 1 commit
  11. 13 Jul, 2011 2 commits
    • bfulgham@webkit.org's avatar
      Standardize WinCairo conditionalized code under PLATFORM macro. · 5fcb8a1b
      bfulgham@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=64377
      
      Reviewed by Maciej Stachowiak.
      
      Source/JavaScriptCore: 
      
      * wtf/Platform.h: Update to use PLATFORM(WIN_CAIRO) for tests.
      
      Source/WebCore: 
      
      Update compile-time conditions that had previously used #ifdef
      of WIN_CAIRO to consistently use PLATFORM(WIN_CAIRO).
      
      * WebCore.vcproj/WebCoreCairo.vsprops: Remove redundant declaration
        of WIN_CAIRO.
      * WebCore.vcproj/WebCoreDebugCairoCFLite.vsprops: Update to use
        the existing WinCairo.vsprops file.
      * WebCorePrefix.h: Update for new WTF_PLATFORM_WIN_CAIRO define.
      * config.h: Update to use PLATFORM(WIN_CAIRO).
      
      Tools: 
      
      Update compile-time conditions that had previously used #ifdef
      of WIN_CAIRO to consistently use PLATFORM(WIN_CAIRO).
      
      * DumpRenderTree/config.h: Switch to PLATFORM(WIN_CAIRO)
      * DumpRenderTree/win/DumpRenderTreeCairo.vsprops: Remove redundant
        define of WIN_CAIRO=1.
      * DumpRenderTree/win/DumpRenderTreeDebugCairoCFLite.vsprops: Add
        WinCairo.vsprops to set (to match Release build).
      
      WebKitLibraries: 
      
      * win/tools/vsprops/WinCairo.vsprops: Update to comply with PLATFORM
        macro definition (WTF_PLATFORM_WIN_CAIRO)
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@90940 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5fcb8a1b
    • ademar.reis@openbossa.org's avatar
      Reviewed by Andreas Kling. · 8c72ce68
      ademar.reis@openbossa.org authored
      Broken build on QNX
      https://bugs.webkit.org/show_bug.cgi?id=63717
      
      QNX doesn't support pthread's SA_RESTART (required by
      JSC_MULTIPLE_THREADS), JIT is broken at runtime and there a
      few minor compilation errors here and there.
      
      Original patch by Ritt Konstantin <ritt.ks@gmail.com>, also
      tested by him on QNX v6.5 (x86)
      
      * wtf/DateMath.cpp: fix usage of abs/labs
      * wtf/Platform.h: Disable JIT and JSC_MULTIPLE_THREADS
      * wtf/StackBounds.cpp: Add a couple of missing includes (and sort them)
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@90916 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8c72ce68
  12. 09 Jul, 2011 1 commit
  13. 30 Jun, 2011 1 commit
    • commit-queue@webkit.org's avatar
      2011-06-30 Cary Clark <caryclark@google.com> · 572f6e77
      commit-queue@webkit.org authored
              Reviewed by James Robinson.
      
              Use Skia if Skia on Mac Chrome is enabled
              https://bugs.webkit.org/show_bug.cgi?id=62999
      
              * wtf/Platform.h:
              Add switch to use Skia if, externally,
              Skia has been enabled by a gyp define.
      2011-06-30  Cary Clark  <caryclark@google.com>
      
              Reviewed by James Robinson.
      
              Use Skia if Skia on Mac Chrome is enabled
              https://bugs.webkit.org/show_bug.cgi?id=62999
      
              No new tests. This does not affect existing
              functionality.
      
              * WebCore.gyp/WebCore.gyp:
              Include Skia and related files and exclude CG
              and related files when building Chromium for Skia
              on the Mac.
      
              * loader/cache/CachedFont.cpp:
              Rename CHROME to CHROMIUM.
      
              * platform/chromium/DragImageRef.h:
              * platform/graphics/FloatPoint.h:
              * platform/graphics/FloatRect.h:
              * platform/graphics/FloatSize.h:
              * platform/graphics/FontPlatformData.h:
              (WebCore::FontPlatformData::hash):
              * platform/graphics/GlyphBuffer.h:
              (WebCore::GlyphBuffer::advanceAt):
              (WebCore::GlyphBuffer::add):
              (WebCore::GlyphBuffer::expandLastAdvance):
              * platform/graphics/IntPoint.h:
              * platform/graphics/IntRect.h:
              * platform/graphics/IntSize.h:
              * platform/graphics/SimpleFontData.h:
              * platform/graphics/cg/FloatPointCG.cpp:
              * platform/graphics/cg/FloatRectCG.cpp:
              * platform/graphics/cg/FloatSizeCG.cpp:
              * platform/graphics/cg/IntPointCG.cpp:
              * platform/graphics/cg/IntRectCG.cpp:
              * platform/graphics/cg/IntSizeCG.cpp:
              * platform/graphics/mac/FontCustomPlatformData.cpp:
              (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
              (WebCore::createFontCustomPlatformData):
              * platform/graphics/mac/FontCustomPlatformData.h:
              (WebCore::FontCustomPlatformData::FontCustomPlatformData):
              Ditto.
      2011-06-30  Cary Clark  <caryclark@google.com>
      
              Reviewed by James Robinson.
      
              Use Skia if Skia on Mac Chrome is enabled
              https://bugs.webkit.org/show_bug.cgi?id=62999
      
              * WebKit.gyp:
              If building for Skia, exclude CG files.
              If not, exclude Skia files.
      
              * features.gypi:
              Enable Skia on Chromium Mac if so instructed by the gyp define.
              Allow Skia to be hardware accelerated on the Mac.
      
              * public/WebCommon.h:
              If Skia is defined on the Mac, define it in the WebXXX
              interfaces as well.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@90167 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      572f6e77
  14. 28 Jun, 2011 2 commits
    • commit-queue@webkit.org's avatar
      2011-06-28 Sheriff Bot <webkit.review.bot@gmail.com> · 2f1e2518
      commit-queue@webkit.org authored
              Unreviewed, rolling out r89968.
              http://trac.webkit.org/changeset/89968
              https://bugs.webkit.org/show_bug.cgi?id=63581
      
              Broke chromium windows compile (Requested by jamesr on
              #webkit).
      
              * wtf/Platform.h:
      2011-06-28  Sheriff Bot  <webkit.review.bot@gmail.com>
      
              Unreviewed, rolling out r89968.
              http://trac.webkit.org/changeset/89968
              https://bugs.webkit.org/show_bug.cgi?id=63581
      
              Broke chromium windows compile (Requested by jamesr on
              #webkit).
      
              * WebCore.gyp/WebCore.gyp:
              * loader/cache/CachedFont.cpp:
              * platform/chromium/DragImageRef.h:
              * platform/graphics/FloatPoint.h:
              * platform/graphics/FloatRect.h:
              * platform/graphics/FloatSize.h:
              * platform/graphics/FontPlatformData.h:
              (WebCore::FontPlatformData::hash):
              * platform/graphics/GlyphBuffer.h:
              (WebCore::GlyphBuffer::advanceAt):
              (WebCore::GlyphBuffer::add):
              (WebCore::GlyphBuffer::expandLastAdvance):
              * platform/graphics/IntPoint.h:
              * platform/graphics/IntRect.h:
              * platform/graphics/IntSize.h:
              * platform/graphics/SimpleFontData.h:
              * platform/graphics/cg/FloatPointCG.cpp:
              * platform/graphics/cg/FloatRectCG.cpp:
              * platform/graphics/cg/FloatSizeCG.cpp:
              * platform/graphics/cg/IntPointCG.cpp:
              * platform/graphics/cg/IntRectCG.cpp:
              * platform/graphics/cg/IntSizeCG.cpp:
              * platform/graphics/mac/FontCustomPlatformData.cpp:
              (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
              (WebCore::createFontCustomPlatformData):
              * platform/graphics/mac/FontCustomPlatformData.h:
              (WebCore::FontCustomPlatformData::FontCustomPlatformData):
      2011-06-28  Sheriff Bot  <webkit.review.bot@gmail.com>
      
              Unreviewed, rolling out r89968.
              http://trac.webkit.org/changeset/89968
              https://bugs.webkit.org/show_bug.cgi?id=63581
      
              Broke chromium windows compile (Requested by jamesr on
              #webkit).
      
              * WebKit.gyp:
              * features.gypi:
              * public/WebCommon.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@89975 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2f1e2518
    • commit-queue@webkit.org's avatar
      2011-06-28 Cary Clark <caryclark@google.com> · b1207cdd
      commit-queue@webkit.org authored
              Reviewed by James Robinson.
      
              Use Skia if Skia on Mac Chrome is enabled
              https://bugs.webkit.org/show_bug.cgi?id=62999
      
              * wtf/Platform.h:
              Add switch to use Skia if, externally,
              Skia has been enabled by a gyp define.
      2011-06-28  Cary Clark  <caryclark@google.com>
      
              Reviewed by James Robinson.
      
              Use Skia if Skia on Mac Chrome is enabled
              https://bugs.webkit.org/show_bug.cgi?id=62999
      
              No new tests. This does not affect existing
              functionality.
      
              * WebCore.gyp/WebCore.gyp:
              Include Skia and related files and exclude CG
              and related files when building Chromium for Skia
              on the Mac.
      
              * loader/cache/CachedFont.cpp:
              Rename CHROME to CHROMIUM.
      
              * platform/chromium/DragImageRef.h:
              * platform/graphics/FloatPoint.h:
              * platform/graphics/FloatRect.h:
              * platform/graphics/FloatSize.h:
              * platform/graphics/FontPlatformData.h:
              (WebCore::FontPlatformData::hash):
              * platform/graphics/GlyphBuffer.h:
              (WebCore::GlyphBuffer::advanceAt):
              (WebCore::GlyphBuffer::add):
              (WebCore::GlyphBuffer::expandLastAdvance):
              * platform/graphics/IntPoint.h:
              * platform/graphics/IntRect.h:
              * platform/graphics/IntSize.h:
              * platform/graphics/SimpleFontData.h:
              * platform/graphics/cg/FloatPointCG.cpp:
              * platform/graphics/cg/FloatRectCG.cpp:
              * platform/graphics/cg/FloatSizeCG.cpp:
              * platform/graphics/cg/IntPointCG.cpp:
              * platform/graphics/cg/IntRectCG.cpp:
              * platform/graphics/cg/IntSizeCG.cpp:
              * platform/graphics/mac/FontCustomPlatformData.cpp:
              (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
              (WebCore::createFontCustomPlatformData):
              * platform/graphics/mac/FontCustomPlatformData.h:
              (WebCore::FontCustomPlatformData::FontCustomPlatformData):
              Ditto.
      2011-06-28  Cary Clark  <caryclark@google.com>
      
              Reviewed by James Robinson.
      
              Use Skia if Skia on Mac Chrome is enabled
              https://bugs.webkit.org/show_bug.cgi?id=62999
      
              * WebKit.gyp:
              If building for Skia, exclude CG files.
              If not, exclude Skia files.
      
              * features.gypi:
              Enable Skia on Chromium Mac if so instructed by the gyp define.
              Allow Skia to be hardware accelerated on the Mac.
      
              * public/WebCommon.h:
              If Skia is defined on the Mac, define it in the WebXXX
              interfaces as well.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@89968 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b1207cdd
  15. 25 Jun, 2011 1 commit
    • zimmermann@webkit.org's avatar
      2011-06-24 Nikolas Zimmermann <nzimmermann@rim.com> · 88e0aebf
      zimmermann@webkit.org authored
              Reviewed by Rob Buis.
      
              Integrate SVG Fonts within GlyphPage concept, removing the special SVG code paths from Font, making it possible to reuse the simple text code path for SVG Fonts
              https://bugs.webkit.org/show_bug.cgi?id=59085
      
              font substitution doesn't work for HTML text using SVG fonts
              https://bugs.webkit.org/show_bug.cgi?id=17608
      
              Selection rects are wrong for text with SVG fonts
              https://bugs.webkit.org/show_bug.cgi?id=25460
      
              With @font-face, SVG fonts only work as primary, non-segmented
              https://bugs.webkit.org/show_bug.cgi?id=32227
      
              When using SVG fonts with @font-face word-spacing and text-align: justify are not being honored
              https://bugs.webkit.org/show_bug.cgi?id=34236
      
              SVG @font-face breaks text-overflow: ellipsis
              https://bugs.webkit.org/show_bug.cgi?id=36840
      
              REGRESSION: SVG Font selection problems
              https://bugs.webkit.org/show_bug.cgi?id=41934
      
              Rewrite the SVG Fonts support to fully integrate within the GlyphPage concept and the "simple" code path used to render platform fonts.
              That means the special logic for measuring text using SVG Fonts, calculating offset for positions, computing selection rects etc. is all gone now.
              There's no difference anymore between using a native font or a SVG Font, in terms of these operations.
      
              Update SVG pixel test baseline. Use all results that have been checked in when I landed the patch the last time.
      
              * platform/chromium/test_expectations.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.png:
              * platform/mac/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/fonts-glyph-03-t-expected.png:
              * platform/mac/svg/W3C-SVG-1.1/fonts-glyph-03-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/fonts-glyph-04-t-expected.png:
              * platform/mac/svg/W3C-SVG-1.1/fonts-glyph-04-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.png:
              * platform/mac/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-altglyph-01-b-expected.png:
              * platform/mac/svg/W3C-SVG-1.1/text-altglyph-01-b-expected.txt:
              * platform/mac/svg/batik/text/textEffect-expected.png:
              * platform/mac/svg/batik/text/textEffect-expected.txt:
              * platform/mac/svg/batik/text/textEffect3-expected.png:
              * platform/mac/svg/batik/text/textEffect3-expected.txt:
              * platform/mac/svg/batik/text/xmlSpace-expected.png:
              * platform/mac/svg/batik/text/xmlSpace-expected.txt:
              * platform/mac/svg/custom/glyph-selection-lang-attribute-expected.png:
              * platform/mac/svg/custom/glyph-selection-lang-attribute-expected.txt:
              * platform/mac/svg/custom/svg-fonts-fallback-expected.png: Added.
              * platform/mac/svg/custom/svg-fonts-fallback-expected.txt: Added.
              * platform/mac/svg/custom/svg-fonts-segmented-expected.png: Added.
              * platform/mac/svg/custom/svg-fonts-segmented-expected.txt: Added.
              * platform/mac/svg/custom/svg-fonts-with-no-element-reference-expected.png:
              * platform/mac/svg/custom/svg-fonts-with-no-element-reference-expected.txt:
              * platform/mac/svg/custom/svg-fonts-without-missing-glyph-expected.png:
              * platform/mac/svg/custom/svg-fonts-without-missing-glyph-expected.txt:
              * platform/mac/svg/custom/svg-fonts-word-spacing-expected.png: Added.
              * platform/mac/svg/custom/svg-fonts-word-spacing-expected.txt: Added.
              * platform/mac/svg/dynamic-updates/SVGFEConvolveMatrixElement-dom-preserveAlpha-attr-expected.png:
              * platform/mac/svg/dynamic-updates/SVGFEConvolveMatrixElement-svgdom-preserveAlpha-prop-expected.png:
              * platform/mac/svg/foreignObject/text-tref-02-b-expected.png:
              * platform/mac/svg/foreignObject/text-tref-02-b-expected.txt:
              * platform/mac/svg/text/text-altglyph-01-b-expected.png:
              * platform/mac/svg/text/text-altglyph-01-b-expected.txt:
              * platform/mac/svg/text/text-overflow-ellipsis-svgfont-expected.png: Added.
              * platform/mac/svg/text/text-overflow-ellipsis-svgfont-expected.txt: Added.
              * platform/mac/svg/text/text-text-04-t-expected.png:
              * platform/mac/svg/text/text-text-04-t-expected.txt:
              * platform/mac/svg/text/text-text-05-t-expected.png:
              * platform/mac/svg/text/text-text-05-t-expected.txt:
              * platform/mac/svg/text/text-text-06-t-expected.png:
              * platform/mac/svg/text/text-text-06-t-expected.txt:
              * platform/mac/svg/transforms/text-with-mask-with-svg-transform-expected.png:
              * platform/mac/svg/transforms/text-with-mask-with-svg-transform-expected.txt:
              * platform/mac/svg/wicd/test-rightsizing-b-expected.png:
              * platform/mac/svg/wicd/test-rightsizing-b-expected.txt:
              * platform/qt-mac/Skipped:
              * platform/qt-wk2/Skipped:
              * platform/qt-wk2/fast/dom/Window/window-properties-expected.txt:
              * platform/qt-wk2/fast/dom/Window/window-property-descriptors-expected.txt:
              * platform/qt-wk2/fast/dom/prototype-inheritance-2-expected.txt:
              * platform/qt/Skipped:
              * platform/qt/fast/dom/Window/window-properties-expected.png: Added.
              * platform/qt/fast/dom/Window/window-properties-expected.txt:
              * platform/qt/fast/dom/Window/window-property-descriptors-expected.png: Added.
              * platform/qt/fast/dom/Window/window-property-descriptors-expected.txt:
              * platform/qt/fast/dom/prototype-inheritance-2-expected.png: Added.
              * platform/qt/fast/dom/prototype-inheritance-2-expected.txt:
              * platform/qt/fast/dom/prototype-inheritance-expected.png: Added.
              * platform/qt/fast/dom/prototype-inheritance-expected.txt:
              * platform/qt/fast/js/global-constructors-expected.png: Added.
              * platform/qt/fast/js/global-constructors-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.png:
              * platform/qt/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.png:
              * platform/qt/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.png:
              * platform/qt/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.png:
              * platform/qt/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.png:
              * platform/qt/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1-SE/filters-image-03-f-expected.png:
              * platform/qt/svg/W3C-SVG-1.1-SE/filters-image-03-f-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.png:
              * platform/qt/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1-SE/pservers-grad-17-b-expected.png:
              * platform/qt/svg/W3C-SVG-1.1-SE/pservers-grad-17-b-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1-SE/pservers-grad-20-b-expected.png:
              * platform/qt/svg/W3C-SVG-1.1-SE/pservers-grad-20-b-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1-SE/pservers-pattern-03-f-expected.png:
              * platform/qt/svg/W3C-SVG-1.1-SE/pservers-pattern-03-f-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1-SE/pservers-pattern-04-f-expected.png:
              * platform/qt/svg/W3C-SVG-1.1-SE/pservers-pattern-04-f-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.png:
              * platform/qt/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.png:
              * platform/qt/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.png:
              * platform/qt/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.png:
              * platform/qt/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1-SE/types-dom-06-f-expected.png:
              * platform/qt/svg/W3C-SVG-1.1-SE/types-dom-06-f-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1-SE/types-dom-07-f-expected.png:
              * platform/qt/svg/W3C-SVG-1.1-SE/types-dom-07-f-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1/filters-turb-02-f-expected.png:
              * platform/qt/svg/W3C-SVG-1.1/filters-turb-02-f-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1/render-elems-06-t-expected.png:
              * platform/qt/svg/W3C-SVG-1.1/render-elems-06-t-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1/render-elems-07-t-expected.png:
              * platform/qt/svg/W3C-SVG-1.1/render-elems-07-t-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1/render-elems-08-t-expected.png:
              * platform/qt/svg/W3C-SVG-1.1/render-elems-08-t-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1/render-groups-01-b-expected.png:
              * platform/qt/svg/W3C-SVG-1.1/render-groups-01-b-expected.txt:
              * platform/qt/svg/W3C-SVG-1.1/render-groups-03-t-expected.png:
              * platform/qt/svg/W3C-SVG-1.1/render-groups-03-t-expected.txt:
              * platform/qt/svg/custom/glyph-transformation-with-hkern-expected.png: Added.
              * platform/qt/svg/custom/glyph-transformation-with-hkern-expected.txt: Added.
              * platform/qt/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.png:
              * platform/qt/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.txt:
              * platform/qt/svg/custom/svg-features-expected.png: Added.
              * platform/qt/svg/custom/svg-features-expected.txt: Added.
              * platform/qt/svg/custom/svg-fonts-in-html-expected.png:
              * platform/qt/svg/custom/svg-fonts-in-html-expected.txt:
              * platform/qt/svg/foreignObject/text-tref-02-b-expected.png:
              * platform/qt/svg/foreignObject/text-tref-02-b-expected.txt:
              * platform/qt/svg/transforms/text-with-mask-with-svg-transform-expected.png:
              * platform/qt/svg/transforms/text-with-mask-with-svg-transform-expected.txt:
              * platform/qt/svg/wicd/test-rightsizing-b-expected.png:
              * platform/qt/svg/wicd/test-rightsizing-b-expected.txt:
              * svg/custom/resources/ABCFont.svg:
              * svg/custom/svg-fonts-fallback.xhtml: Added.
              * svg/custom/svg-fonts-segmented.xhtml: Added.
              * svg/custom/svg-fonts-word-spacing.html: Added.
              * svg/text/select-text-svgfont-expected.txt: Added.
              * svg/text/select-text-svgfont.html: Added.
              * svg/text/text-overflow-ellipsis-svgfont.html: Added.
      2011-06-24  Nikolas Zimmermann  <nzimmermann@rim.com>
      
              Reviewed by Rob Buis.
      
              Integrate SVG Fonts within GlyphPage concept, removing the special SVG code paths from Font, making it possible to reuse the simple text code path for SVG Fonts
              https://bugs.webkit.org/show_bug.cgi?id=59085
      
              * wtf/Platform.h: Force Qt-EWS into a full rebuild, otherwhise this patch breaks the EWS.
      2011-06-24  Nikolas Zimmermann  <nzimmermann@rim.com>
      
              Reviewed by Rob Buis.
      
              Integrate SVG Fonts within GlyphPage concept, removing the special SVG code paths from Font, making it possible to reuse the simple text code path for SVG Fonts
              https://bugs.webkit.org/show_bug.cgi?id=59085
      
              font substitution doesn't work for HTML text using SVG fonts
              https://bugs.webkit.org/show_bug.cgi?id=17608
      
              Selection rects are wrong for text with SVG fonts
              https://bugs.webkit.org/show_bug.cgi?id=25460
      
              With @font-face, SVG fonts only work as primary, non-segmented
              https://bugs.webkit.org/show_bug.cgi?id=32227
      
              When using SVG fonts with @font-face word-spacing and text-align: justify are not being honored
              https://bugs.webkit.org/show_bug.cgi?id=34236
      
              SVG @font-face breaks text-overflow: ellipsis
              https://bugs.webkit.org/show_bug.cgi?id=36840
      
              REGRESSION: SVG Font selection problems
              https://bugs.webkit.org/show_bug.cgi?id=41934
      
              Tests: svg/custom/svg-fonts-fallback.xhtml (for bug 17608, extended the original test from Mark Ambachtsheer)
                     svg/custom/svg-fonts-segmented.xhtml (for bug 32227)
                     svg/custom/svg-fonts-word-spacing.html (for bug 34236, from Michael Lewis)
                     svg/text/select-text-svgfont.html (for bug 25460/41934, from Emil Schutte)
                     svg/text/text-overflow-ellipsis-svgfont.html (for 36840, from Emil Schutte)
      
              Rewrite the SVG Fonts support to fully integrate within the GlyphPage concept and the "simple" code path used to render platform fonts.
              That means the special logic for measuring text using SVG Fonts, calculating offset for positions, computing selection rects etc. is all gone now.
              There's no difference anymore between using a native font or a SVG Font, in terms of these operations.
      
              This makes text selection using SVG Fonts possible again.
      
              * features.pri: Temporarily turn of SVG Fonts for Qt, as long as QRawFont support is not available and the fast path is disabled.
              * page/DOMWindow.idl: Touched file to force Qt regenerating the bindings.
              * platform/graphics/Font.cpp: Remove SVG Font special cases, the simple code path now handles SVG Fonts as well.
              (WebCore::Font::drawText):
              (WebCore::Font::drawEmphasisMarks):
              (WebCore::Font::width):
              (WebCore::Font::selectionRectForText):
              (WebCore::Font::offsetForPosition):
              (WebCore::Font::codePath):
              * platform/graphics/Font.h: Pass TextRun to drawGlyphBuffer/drawEmphasisMarks. Add new glyphDataAndPageForCharacter() method which returns a pair
                                          std::pair<GlyphData, GlyphPage*>, so we know the associated GlyphPage for a certain GlyphData object, which is needed to properly
                                          handle font fallback glyph matching for SVG Fonts..
              (WebCore::Font::fontList): Add FontFallbackList accessor.
              * platform/graphics/FontFallbackList.h: Add getters/setters for glyphPageZero -- SVG Fonts support needs access to these objects from SVGTextRunRenderingContext.
              (WebCore::FontFallbackList::glyphPageZero):
              (WebCore::FontFallbackList::glyphPages):
              (WebCore::FontFallbackList::setGlyphPageZero):
              (WebCore::FontFallbackList::setGlyphPages):
              * platform/graphics/FontFastPath.cpp:
              (WebCore::Font::glyphDataForCharacter): Move implementation to glyphDataAndPageForCharacter(), and use that method from here.
              (WebCore::Font::glyphDataAndPageForCharacter): Does the same as before, just returns an additional GlyphPage* pointer.
              (WebCore::Font::getEmphasisMarkGlyphData): Remove SVG Fonts special case.
              (WebCore::Font::drawGlyphBuffer): Ditto.
              * platform/graphics/FontMetrics.h:
              (WebCore::scaleEmToUnits): Refactored scaleEmToUnits free function from SimpleFontDataMac/CGWin to share with SVGFontData/SVGTextRunRenderingContext.
              * platform/graphics/GlyphPageTreeNode.cpp:
              (WebCore::fill): Stop skipping SVG Fonts, they now also fill the GlyphPage using the glyphs defined in the SVG Font.
              * platform/graphics/SVGGlyph.h: s/isValid/isPartOfLigature/. Its usage has been changed.
              (WebCore::SVGGlyph::SVGGlyph):
              (WebCore::SVGGlyph::operator==):
              * platform/graphics/SimpleFontData.cpp: Change font size to be a float, not an int.
              (WebCore::SimpleFontData::SimpleFontData):
              * platform/graphics/SimpleFontData.h: Add new pure virtual methods to the AdditionalFontData interface, to be implemented in SVGFontData.
              (WebCore::SimpleFontData::widthForGlyph): Call widthForSVGGlyph, if we encounter a SVG glyph.
              * platform/graphics/TextRun.h: 
              * platform/graphics/WidthIterator.cpp:
              (WebCore::WidthIterator::glyphDataForCharacter):
              (WebCore::WidthIterator::advance):
              * platform/graphics/WidthIterator.h: Store several new members needed for SVG Fonts support (last processed glyph name used for kerning pair lookup)
                                                   and a map mapping each character of a text to its arabic-form (if needed, to perform SVG glyph selection for Arabic text).
              (WebCore::WidthIterator::run):
              (WebCore::WidthIterator::runWidthSoFar):
              (WebCore::WidthIterator::lastGlyphName):
              (WebCore::WidthIterator::setLastGlyphName):
              (WebCore::WidthIterator::arabicForms):
              * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp: Use new scaleEmToUnits free function from FontMetrics.h.
              * platform/graphics/mac/SimpleFontDataMac.mm: Ditto.
              * platform/graphics/win/SimpleFontDataCGWin.cpp: Ditto.
              * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
              (WebCore::SVGTextLayoutAttributesBuilder::propagateLayoutAttributes): Handle UTF-16 surrogate pairs correctly, fixes the previous Acid3 regression.
              * rendering/svg/SVGTextMetrics.cpp:
              (WebCore::SVGTextMetrics::SVGTextMetrics):
              (WebCore::constructTextRun):
              (WebCore::SVGTextMetrics::measureCharacterRange):
              * rendering/svg/SVGTextMetrics.h:
              * rendering/svg/SVGTextRunRenderingContext.cpp: Remove drawTextUsingSVGFont/floatWidthUsingSVGFont/selectionRectForTextUsingSVGFont/offsetForPositionForTextUsingSVGFont.
              (WebCore::firstParentRendererForNonTextNode): Don't assert node() exists, doesn't hold true for generated render objects.
              (WebCore::renderObjectFromRun): Renamed from referencingRenderObjectFromRun.
              (WebCore::SVGTextRunRenderingContext::floatWidthUsingSVGFont): Remove extra "extraCharsAvailable" parameter, now solves via TextRun::charactersLength().
              (WebCore::calculateEmUnitToPixelScaleFactor): Add helper method.
              (WebCore::SVGTextRunRenderingContext::drawSVGGlyphs): Main drawing method, this actually creates/renders Paths.
              (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter): Part 1/2 of SVG Glyph selection code.
              * rendering/svg/SVGTextRunRenderingContext.h:
              * svg/SVGAltGlyphElement.cpp:
              (WebCore::SVGAltGlyphElement::hasValidGlyphElement):
              * svg/SVGAltGlyphElement.h:
              * svg/SVGFontData.cpp:
              (WebCore::SVGFontData::initializeFontData): Changed font size from int to float.
              (WebCore::SVGFontData::widthForSVGGlyph): Lookup a SVGGlyph from a Glyph using the glyph table in SVGFontElement and calculate its width.
              (WebCore::SVGFontData::applySVGGlyphSelection): Part 2/2 of SVG Glyph selection code.
              (WebCore::SVGFontData::fillSVGGlyphPage): Fill GlyphPage using glyphs defined in the SVG Font.
              (WebCore::SVGFontData::fillBMPGlyphs): Moved from the previous fillSVGGlyphPage implementation.
              (WebCore::SVGFontData::fillNonBMPGlyphs): Add non-bmp glyph handling, fixing the Acid3 regression (support using SVGGlyphs for UTF-16 surrogate pairs).
              * svg/SVGFontData.h:
              * svg/SVGFontElement.cpp:
              (WebCore::SVGFontElement::registerLigaturesInGlyphCache): Enable ligature registration for the use within GlyphPage.
              (WebCore::SVGFontElement::ensureGlyphCache):
              * svg/SVGGlyphMap.h: Switch to use SurrogatePairTextIterator, and switch glyph table from UChar to UChar32, just like GlyphPage, to handle glyphs from non-BMP correctly.
              (WebCore::SVGGlyphMap::addGlyph): Remove setting isValid, it's not needed anymore and gone.
              (WebCore::SVGGlyphMap::collectGlyphsForString):
              * svg/svgtags.in: Surround vkern in ENABLE_SVG_FONTS block.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@89732 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      88e0aebf
  16. 23 Jun, 2011 1 commit
  17. 22 Jun, 2011 3 commits
    • yael.aharon@nokia.com's avatar
      2011-06-22 Yael Aharon <yael.aharon@nokia.com> · 4128332d
      yael.aharon@nokia.com authored
              Reviewed by Andreas Kling.
      
              [Qt] Add a build flag for building with libxml2 and libxslt.
              https://bugs.webkit.org/show_bug.cgi?id=63113
      
              * wtf/Platform.h:
      2011-06-22  Yael Aharon  <yael.aharon@nokia.com>
      
              Reviewed by Andreas Kling.
      
              [Qt] Add a build flag for building with libxml2 and libxslt.
              https://bugs.webkit.org/show_bug.cgi?id=63113
      
              No new tests. If this new flag was set by default, we could unskip
              existing xmlviewer tests.
      
              * CodeGenerators.pri:
              * WebCore.pri:
              * WebCore.pro:
              * features.pri:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@89516 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4128332d
    • commit-queue@webkit.org's avatar
      2011-06-22 Sheriff Bot <webkit.review.bot@gmail.com> · fdded609
      commit-queue@webkit.org authored
              Unreviewed, rolling out r89489.
              http://trac.webkit.org/changeset/89489
              https://bugs.webkit.org/show_bug.cgi?id=63203
      
              Broke chromium mac build on build.webkit.org (Requested by
              abarth on #webkit).
      
              * wtf/Platform.h:
      2011-06-22  Sheriff Bot  <webkit.review.bot@gmail.com>
      
              Unreviewed, rolling out r89489.
              http://trac.webkit.org/changeset/89489
              https://bugs.webkit.org/show_bug.cgi?id=63203
      
              Broke chromium mac build on build.webkit.org (Requested by
              abarth on #webkit).
      
              * WebCore.gyp/WebCore.gyp:
              * loader/cache/CachedFont.cpp:
              * platform/chromium/DragImageRef.h:
              * platform/graphics/FloatPoint.h:
              * platform/graphics/FloatRect.h:
              * platform/graphics/FloatSize.h:
              * platform/graphics/FontPlatformData.h:
              (WebCore::FontPlatformData::hash):
              * platform/graphics/GlyphBuffer.h:
              (WebCore::GlyphBuffer::advanceAt):
              (WebCore::GlyphBuffer::add):
              (WebCore::GlyphBuffer::expandLastAdvance):
              * platform/graphics/IntPoint.h:
              * platform/graphics/IntRect.h:
              * platform/graphics/IntSize.h:
              * platform/graphics/SimpleFontData.h:
              * platform/graphics/cg/FloatPointCG.cpp:
              * platform/graphics/cg/FloatRectCG.cpp:
              * platform/graphics/cg/FloatSizeCG.cpp:
              * platform/graphics/cg/IntPointCG.cpp:
              * platform/graphics/cg/IntRectCG.cpp:
              * platform/graphics/cg/IntSizeCG.cpp:
              * platform/graphics/mac/FontCustomPlatformData.cpp:
              (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
              (WebCore::createFontCustomPlatformData):
              * platform/graphics/mac/FontCustomPlatformData.h:
              (WebCore::FontCustomPlatformData::FontCustomPlatformData):
      2011-06-22  Sheriff Bot  <webkit.review.bot@gmail.com>
      
              Unreviewed, rolling out r89489.
              http://trac.webkit.org/changeset/89489
              https://bugs.webkit.org/show_bug.cgi?id=63203
      
              Broke chromium mac build on build.webkit.org (Requested by
              abarth on #webkit).
      
              * WebKit.gyp:
              * features.gypi:
              * public/WebCommon.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@89496 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fdded609
    • commit-queue@webkit.org's avatar
      2011-06-22 Cary Clark <caryclark@google.com> · 63dc68b7
      commit-queue@webkit.org authored
              Reviewed by Darin Fisher.
      
              Use Skia if Skia on Mac Chrome is enabled
              https://bugs.webkit.org/show_bug.cgi?id=62999
      
              * wtf/Platform.h:
              Add switch to use Skia if, externally,
              Skia has been enabled by a gyp define.
      2011-06-22  Cary Clark  <caryclark@google.com>
      
              Reviewed by Darin Fisher.
      
              Use Skia if Skia on Mac Chrome is enabled
              https://bugs.webkit.org/show_bug.cgi?id=62999
      
              No new tests. This does not affect existing
              functionality.
      
              * WebCore.gyp/WebCore.gyp:
              Include Skia and related files and exclude CG
              and related files when building Chromium for Skia
              on the Mac.
      
              * loader/cache/CachedFont.cpp:
              Rename CHROME to CHROMIUM.
      
              * platform/chromium/DragImageRef.h:
              * platform/graphics/FloatPoint.h:
              * platform/graphics/FloatRect.h:
              * platform/graphics/FloatSize.h:
              * platform/graphics/FontPlatformData.h:
              (WebCore::FontPlatformData::hash):
              * platform/graphics/GlyphBuffer.h:
              (WebCore::GlyphBuffer::advanceAt):
              (WebCore::GlyphBuffer::add):
              (WebCore::GlyphBuffer::expandLastAdvance):
              * platform/graphics/IntPoint.h:
              * platform/graphics/IntRect.h:
              * platform/graphics/IntSize.h:
              * platform/graphics/SimpleFontData.h:
              * platform/graphics/cg/FloatPointCG.cpp:
              * platform/graphics/cg/FloatRectCG.cpp:
              * platform/graphics/cg/FloatSizeCG.cpp:
              * platform/graphics/cg/IntPointCG.cpp:
              * platform/graphics/cg/IntRectCG.cpp:
              * platform/graphics/cg/IntSizeCG.cpp:
              * platform/graphics/mac/FontCustomPlatformData.cpp:
              (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
              (WebCore::createFontCustomPlatformData):
              * platform/graphics/mac/FontCustomPlatformData.h:
              (WebCore::FontCustomPlatformData::FontCustomPlatformData):
              Ditto.
      2011-06-22  Cary Clark  <caryclark@google.com>
      
              Reviewed by Darin Fisher.
      
              Use Skia if Skia on Mac Chrome is enabled
              https://bugs.webkit.org/show_bug.cgi?id=62999
      
              * WebKit.gyp:
              If building for Skia, exclude CG files.
              If not, exclude Skia files.
      
              * features.gypi:
              Enable Skia on Chromium Mac if so instructed by the gyp define.
              Allow Skia to be hardware accelerated on the Mac.
      
              * public/WebCommon.h:
              If Skia is defined on the Mac, define it in the WebXXX
              interfaces as well.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@89489 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      63dc68b7
  18. 20 Jun, 2011 2 commits
    • kbr@google.com's avatar
      2011-06-20 Kenneth Russell <kbr@google.com> · b9dbecc0
      kbr@google.com authored
              Unreviewed.
      
              Rolled out r89233 and r89235 because of crashes in http/tests/misc/acid3.html on Snow Leopard and other platforms
              https://bugs.webkit.org/show_bug.cgi?id=63022
      
              * platform/mac/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.png:
              * platform/mac/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/fonts-glyph-03-t-expected.png:
              * platform/mac/svg/W3C-SVG-1.1/fonts-glyph-03-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/fonts-glyph-04-t-expected.png:
              * platform/mac/svg/W3C-SVG-1.1/fonts-glyph-04-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.png:
              * platform/mac/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-altglyph-01-b-expected.png:
              * platform/mac/svg/W3C-SVG-1.1/text-altglyph-01-b-expected.txt:
              * platform/mac/svg/batik/text/textEffect-expected.png:
              * platform/mac/svg/batik/text/textEffect-expected.txt:
              * platform/mac/svg/batik/text/textEffect3-expected.png:
              * platform/mac/svg/batik/text/textEffect3-expected.txt:
              * platform/mac/svg/batik/text/xmlSpace-expected.png:
              * platform/mac/svg/batik/text/xmlSpace-expected.txt:
              * platform/mac/svg/custom/glyph-selection-lang-attribute-expected.png:
              * platform/mac/svg/custom/glyph-selection-lang-attribute-expected.txt:
              * platform/mac/svg/custom/svg-fonts-fallback-expected.png: Removed.
              * platform/mac/svg/custom/svg-fonts-fallback-expected.txt: Removed.
              * platform/mac/svg/custom/svg-fonts-segmented-expected.png: Removed.
              * platform/mac/svg/custom/svg-fonts-segmented-expected.txt: Removed.
              * platform/mac/svg/custom/svg-fonts-with-no-element-reference-expected.png:
              * platform/mac/svg/custom/svg-fonts-with-no-element-reference-expected.txt:
              * platform/mac/svg/custom/svg-fonts-without-missing-glyph-expected.png:
              * platform/mac/svg/custom/svg-fonts-without-missing-glyph-expected.txt:
              * platform/mac/svg/custom/svg-fonts-word-spacing-expected.png: Removed.
              * platform/mac/svg/custom/svg-fonts-word-spacing-expected.txt: Removed.
              * platform/mac/svg/dynamic-updates/SVGFEConvolveMatrixElement-dom-preserveAlpha-attr-expected.png:
              * platform/mac/svg/dynamic-updates/SVGFEConvolveMatrixElement-svgdom-preserveAlpha-prop-expected.png:
              * platform/mac/svg/foreignObject/text-tref-02-b-expected.png:
              * platform/mac/svg/foreignObject/text-tref-02-b-expected.txt:
              * platform/mac/svg/text/text-altglyph-01-b-expected.png:
              * platform/mac/svg/text/text-altglyph-01-b-expected.txt:
              * platform/mac/svg/text/text-overflow-ellipsis-svgfont-expected.png: Removed.
              * platform/mac/svg/text/text-overflow-ellipsis-svgfont-expected.txt: Removed.
              * platform/mac/svg/text/text-text-04-t-expected.png:
              * platform/mac/svg/text/text-text-04-t-expected.txt:
              * platform/mac/svg/text/text-text-05-t-expected.png:
              * platform/mac/svg/text/text-text-05-t-expected.txt:
              * platform/mac/svg/text/text-text-06-t-expected.png:
              * platform/mac/svg/text/text-text-06-t-expected.txt:
              * platform/mac/svg/transforms/text-with-mask-with-svg-transform-expected.png:
              * platform/mac/svg/transforms/text-with-mask-with-svg-transform-expected.txt:
              * platform/mac/svg/wicd/test-rightsizing-b-expected.png:
              * platform/mac/svg/wicd/test-rightsizing-b-expected.txt:
              * svg/custom/resources/ABCFont.svg:
              * svg/custom/svg-fonts-fallback.xhtml: Removed.
              * svg/custom/svg-fonts-segmented.xhtml: Removed.
              * svg/custom/svg-fonts-word-spacing.html: Removed.
              * svg/text/select-text-svgfont-expected.txt: Removed.
              * svg/text/select-text-svgfont.html: Removed.
              * svg/text/text-overflow-ellipsis-svgfont.html: Removed.
      2011-06-20  Kenneth Russell  <kbr@google.com>
      
              Unreviewed.
      
              Rolled out r89233 and r89235 because of crashes in http/tests/misc/acid3.html on Snow Leopard and other platforms
              https://bugs.webkit.org/show_bug.cgi?id=63022
      
              * wtf/Platform.h:
      2011-06-20  Kenneth Russell  <kbr@google.com>
      
              Unreviewed.
      
              Rolled out r89233 and r89235 because of crashes in http/tests/misc/acid3.html on Snow Leopard and other platforms
              https://bugs.webkit.org/show_bug.cgi?id=63022
      
              * features.pri:
              * page/DOMWindow.idl:
              * platform/graphics/Font.cpp:
              (WebCore::Font::drawText):
              (WebCore::Font::drawEmphasisMarks):
              (WebCore::Font::width):
              (WebCore::Font::selectionRectForText):
              (WebCore::Font::offsetForPosition):
              (WebCore::Font::codePath):
              * platform/graphics/Font.h:
              * platform/graphics/FontFallbackList.h:
              * platform/graphics/FontFastPath.cpp:
              (WebCore::Font::glyphDataForCharacter):
              (WebCore::Font::getEmphasisMarkGlyphData):
              (WebCore::Font::drawGlyphBuffer):
              * platform/graphics/FontMetrics.h:
              * platform/graphics/GlyphPageTreeNode.cpp:
              (WebCore::fill):
              * platform/graphics/SVGGlyph.h:
              (WebCore::SVGGlyph::SVGGlyph):
              (WebCore::SVGGlyph::operator==):
              * platform/graphics/SimpleFontData.cpp:
              (WebCore::SimpleFontData::SimpleFontData):
              * platform/graphics/SimpleFontData.h:
              (WebCore::SimpleFontData::widthForGlyph):
              * platform/graphics/TextRun.h:
              * platform/graphics/WidthIterator.cpp:
              (WebCore::WidthIterator::advance):
              * platform/graphics/WidthIterator.h:
              * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
              (WebCore::scaleEmToUnits):
              * platform/graphics/mac/SimpleFontDataMac.mm:
              (WebCore::scaleEmToUnits):
              * platform/graphics/win/SimpleFontDataCGWin.cpp:
              (WebCore::scaleEmToUnits):
              * rendering/svg/SVGTextMetrics.cpp:
              (WebCore::SVGTextMetrics::SVGTextMetrics):
              (WebCore::constructTextRun):
              (WebCore::SVGTextMetrics::measureCharacterRange):
              * rendering/svg/SVGTextMetrics.h:
              * rendering/svg/SVGTextRunRenderingContext.cpp:
              (WebCore::convertEmUnitToPixel):
              (WebCore::isVerticalWritingMode):
              (WebCore::firstParentRendererForNonTextNode):
              (WebCore::referencingRenderObjectFromRun):
              (WebCore::SVGTextRunWalker::SVGTextRunWalker):
              (WebCore::SVGTextRunWalker::walk):
              (WebCore::floatWidthUsingSVGFontCallback):
              (WebCore::floatWidthMissingGlyphCallback):
              (WebCore::floatWidthOfSubStringUsingSVGFont):
              (WebCore::SVGTextRunRenderingContext::floatWidthUsingSVGFont):
              (WebCore::drawTextUsingSVGFontCallback):
              (WebCore::drawTextMissingGlyphCallback):
              (WebCore::SVGTextRunRenderingContext::drawTextUsingSVGFont):
              (WebCore::SVGTextRunRenderingContext::selectionRectForTextUsingSVGFont):
              (WebCore::SVGTextRunRenderingContext::offsetForPositionForTextUsingSVGFont):
              * rendering/svg/SVGTextRunRenderingContext.h:
              * svg/SVGAltGlyphElement.cpp:
              (WebCore::SVGAltGlyphElement::glyphElement):
              * svg/SVGAltGlyphElement.h:
              * svg/SVGFontData.cpp:
              (WebCore::SVGFontData::initializeFontData):
              * svg/SVGFontData.h:
              * svg/SVGFontElement.cpp:
              (WebCore::SVGFontElement::registerLigaturesInGlyphCache):
              (WebCore::SVGFontElement::ensureGlyphCache):
              * svg/SVGGlyphMap.h:
              (WebCore::SVGGlyphMap::addGlyphByUnicodeString):
              * svg/svgtags.in:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@89311 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b9dbecc0
    • zimmermann@webkit.org's avatar
      2011-06-20 Nikolas Zimmermann <nzimmermann@rim.com> · 518be6f3
      zimmermann@webkit.org authored
              Reviewed by Rob Buis.
      
              Integrate SVG Fonts within GlyphPage concept, removing the special SVG code paths from Font, making it possible to reuse the simple text code path for SVG Fonts
              https://bugs.webkit.org/show_bug.cgi?id=59085
      
              * wtf/Platform.h: Force Qt-EWS into a full rebuild, otherwhise this patch breaks the EWS.
      2011-06-20  Nikolas Zimmermann  <nzimmermann@rim.com>
      
              Reviewed by Rob Buis.
      
              Integrate SVG Fonts within GlyphPage concept, removing the special SVG code paths from Font, making it possible to reuse the simple text code path for SVG Fonts
              https://bugs.webkit.org/show_bug.cgi?id=59085
      
              font substitution doesn't work for HTML text using SVG fonts
              https://bugs.webkit.org/show_bug.cgi?id=17608
      
              Selection rects are wrong for text with SVG fonts
              https://bugs.webkit.org/show_bug.cgi?id=25460
      
              With @font-face, SVG fonts only work as primary, non-segmented
              https://bugs.webkit.org/show_bug.cgi?id=32227
      
              When using SVG fonts with @font-face word-spacing and text-align: justify are not being honored
              https://bugs.webkit.org/show_bug.cgi?id=34236
      
              SVG @font-face breaks text-overflow: ellipsis
              https://bugs.webkit.org/show_bug.cgi?id=36840
      
              REGRESSION: SVG Font selection problems
              https://bugs.webkit.org/show_bug.cgi?id=41934
      
              Tests: svg/custom/svg-fonts-fallback.xhtml (for bug 17608, extended the original test from Mark Ambachtsheer)
                     svg/custom/svg-fonts-segmented.xhtml (for bug 32227)
                     svg/custom/svg-fonts-word-spacing.html (for bug 34236, from Michael Lewis)
                     svg/text/select-text-svgfont.html (for bug 25460/41934, from Emil Schutte)
                     svg/text/text-overflow-ellipsis-svgfont.html (for 36840, from Emil Schutte)
      
              Rewrite the SVG Fonts support to fully integrate within the GlyphPage concept and the "simple" code path used to render platform fonts.
              That means the special logic for measuring text using SVG Fonts, calculating offset for positions, computing selection rects etc. is all gone now.
              There's no difference anymore between using a native font or a SVG Font, in terms of these operations.
      
              This makes text selection using SVG Fonts possible again.
      
              * features.pri: Temporarily turn of SVG Fonts for Qt, as long as QRawFont support is not available and the fast path is disabled.
              * page/DOMWindow.idl: Touched file to force Qt regenerating the bindings.
              * platform/graphics/Font.cpp: Remove SVG Font special cases, the simple code path now handles SVG Fonts as well.
              (WebCore::Font::drawText):
              (WebCore::Font::drawEmphasisMarks):
              (WebCore::Font::width):
              (WebCore::Font::selectionRectForText):
              (WebCore::Font::offsetForPosition):
              (WebCore::Font::codePath):
              * platform/graphics/Font.h: Pass TextRun to drawGlyphBuffer/drawEmphasisMarks. Add new glyphDataAndPageForCharacter() method which returns a pair
                                          std::pair<GlyphData, GlyphPage*>, so we know the associated GlyphPage for a certain GlyphData object, which is needed to properly
                                          handle font fallback glyph matching for SVG Fonts..
              (WebCore::Font::fontList): Add FontFallbackList accessor.
              * platform/graphics/FontFallbackList.h: Add getters/setters for glyphPageZero -- SVG Fonts support needs access to these objects from SVGTextRunRenderingContext.
              (WebCore::FontFallbackList::glyphPageZero):
              (WebCore::FontFallbackList::glyphPages):
              (WebCore::FontFallbackList::setGlyphPageZero):
              (WebCore::FontFallbackList::setGlyphPages):
              * platform/graphics/FontFastPath.cpp:
              (WebCore::Font::glyphDataForCharacter): Move implementation to glyphDataAndPageForCharacter(), and use that method from here.
              (WebCore::Font::glyphDataAndPageForCharacter): Does the same as before, just returns an additional GlyphPage* pointer.
              (WebCore::Font::getEmphasisMarkGlyphData): Remove SVG Fonts special case.
              (WebCore::Font::drawGlyphBuffer): Ditto.
              * platform/graphics/FontMetrics.h:
              (WebCore::scaleEmToUnits): Refactored scaleEmToUnits free function from SimpleFontDataMac/CGWin to share with SVGFontData/SVGTextRunRenderingContext.
              * platform/graphics/GlyphPageTreeNode.cpp:
              (WebCore::fill): Stop skipping SVG Fonts, they now also fill the GlyphPage using the glyphs defined in the SVG Font.
              * platform/graphics/SVGGlyph.h: s/isValid/isPartOfLigature/. Its usage has been changed.
              (WebCore::SVGGlyph::SVGGlyph):
              (WebCore::SVGGlyph::operator==):
              * platform/graphics/SimpleFontData.cpp: Change font size to be a float, not an int.
              (WebCore::SimpleFontData::SimpleFontData):
              * platform/graphics/SimpleFontData.h: Add new pure virtual methods to the AdditionalFontData interface, to be implemented in SVGFontData.
              (WebCore::SimpleFontData::widthForGlyph): Call widthForSVGGlyph, if we encounter a SVG glyph.
              * platform/graphics/TextRun.h: 
              * platform/graphics/WidthIterator.cpp:
              (WebCore::WidthIterator::glyphDataForCharacter):
              (WebCore::WidthIterator::advance):
              * platform/graphics/WidthIterator.h: Store several new members needed for SVG Fonts support (last processed glyph name used for kerning pair lookup)
                                                   and a map mapping each character of a text to its arabic-form (if needed, to perform SVG glyph selection for Arabic text).
              (WebCore::WidthIterator::run):
              (WebCore::WidthIterator::runWidthSoFar):
              (WebCore::WidthIterator::lastGlyphName):
              (WebCore::WidthIterator::setLastGlyphName):
              (WebCore::WidthIterator::arabicForms):
              * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp: Use new scaleEmToUnits free function from FontMetrics.h.
              * platform/graphics/mac/SimpleFontDataMac.mm: Ditto.
              * platform/graphics/win/SimpleFontDataCGWin.cpp: Ditto.
              * rendering/svg/SVGTextMetrics.cpp:
              (WebCore::SVGTextMetrics::SVGTextMetrics):
              (WebCore::constructTextRun):
              (WebCore::SVGTextMetrics::measureCharacterRange):
              * rendering/svg/SVGTextMetrics.h:
              * rendering/svg/SVGTextRunRenderingContext.cpp: Remove drawTextUsingSVGFont/floatWidthUsingSVGFont/selectionRectForTextUsingSVGFont/offsetForPositionForTextUsingSVGFont.
              (WebCore::firstParentRendererForNonTextNode): Don't assert node() exists, doesn't hold true for generated render objects.
              (WebCore::renderObjectFromRun): Renamed from referencingRenderObjectFromRun.
              (WebCore::SVGTextRunRenderingContext::floatWidthUsingSVGFont): Remove extra "extraCharsAvailable" parameter, now solves via TextRun::charactersLength().
              (WebCore::calculateEmUnitToPixelScaleFactor): Add helper method.
              (WebCore::SVGTextRunRenderingContext::drawSVGGlyphs): Main drawing method, this actually creates/renders Paths.
              (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter): Part 1/2 of SVG Glyph selection code.
              * rendering/svg/SVGTextRunRenderingContext.h:
              * svg/SVGAltGlyphElement.cpp:
              (WebCore::SVGAltGlyphElement::hasValidGlyphElement):
              * svg/SVGAltGlyphElement.h:
              * svg/SVGFontData.cpp:
              (WebCore::calculateEmUnitToPixelScaleFactor): Add helper method.
              (WebCore::SVGFontData::initializeFontData): Changed font size from int to float.
              (WebCore::SVGFontData::widthForSVGGlyph): Lookup a SVGGlyph from a Glyph using the glyph table in SVGFontElement and calculate its width.
              (WebCore::SVGFontData::applySVGGlyphSelection): Part 2/2 of SVG Glyph selection code.
              (WebCore::SVGFontData::fillSVGGlyphPage): Fill GlyphPage using glyphs defined in the SVG Font.
              * svg/SVGFontData.h:
              * svg/SVGFontElement.cpp:
              (WebCore::SVGFontElement::registerLigaturesInGlyphCache): Enable ligature registration for the use within GlyphPage.
              (WebCore::SVGFontElement::ensureGlyphCache):
              * svg/SVGGlyphMap.h:
              (WebCore::SVGGlyphMap::addGlyphByUnicodeString): Remove setting isValid, it's not needed anymore and gone.
              * svg/svgtags.in: Surround vkern in ENABLE_SVG_FONTS block.
      2011-06-20  Nikolas Zimmermann  <nzimmermann@rim.com>
      
              Reviewed by Rob Buis.
      
              Integrate SVG Fonts within GlyphPage concept, removing the special SVG code paths from Font, making it possible to reuse the simple text code path for SVG Fonts
              https://bugs.webkit.org/show_bug.cgi?id=59085
      
              font substitution doesn't work for HTML text using SVG fonts
              https://bugs.webkit.org/show_bug.cgi?id=17608
      
              Selection rects are wrong for text with SVG fonts
              https://bugs.webkit.org/show_bug.cgi?id=25460
      
              With @font-face, SVG fonts only work as primary, non-segmented
              https://bugs.webkit.org/show_bug.cgi?id=32227
      
              When using SVG fonts with @font-face word-spacing and text-align: justify are not being honored
              https://bugs.webkit.org/show_bug.cgi?id=34236
      
              SVG @font-face breaks text-overflow: ellipsis
              https://bugs.webkit.org/show_bug.cgi?id=36840
      
              REGRESSION: SVG Font selection problems
              https://bugs.webkit.org/show_bug.cgi?id=41934
      
              Rewrite the SVG Fonts support to fully integrate within the GlyphPage concept and the "simple" code path used to render platform fonts.
              That means the special logic for measuring text using SVG Fonts, calculating offset for positions, computing selection rects etc. is all gone now.
              There's no difference anymore between using a native font or a SVG Font, in terms of these operations.
      
              Update SVG pixel test baseline.
      
              * platform/mac/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.png:
              * platform/mac/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/fonts-glyph-03-t-expected.png:
              * platform/mac/svg/W3C-SVG-1.1/fonts-glyph-03-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/fonts-glyph-04-t-expected.png:
              * platform/mac/svg/W3C-SVG-1.1/fonts-glyph-04-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.png:
              * platform/mac/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-altglyph-01-b-expected.png:
              * platform/mac/svg/W3C-SVG-1.1/text-altglyph-01-b-expected.txt:
              * platform/mac/svg/batik/text/textEffect-expected.png:
              * platform/mac/svg/batik/text/textEffect-expected.txt:
              * platform/mac/svg/batik/text/textEffect3-expected.png:
              * platform/mac/svg/batik/text/textEffect3-expected.txt:
              * platform/mac/svg/batik/text/xmlSpace-expected.png:
              * platform/mac/svg/batik/text/xmlSpace-expected.txt:
              * platform/mac/svg/custom/glyph-selection-lang-attribute-expected.png:
              * platform/mac/svg/custom/glyph-selection-lang-attribute-expected.txt:
              * platform/mac/svg/custom/svg-fonts-fallback-expected.png: Added.
              * platform/mac/svg/custom/svg-fonts-fallback-expected.txt: Added.
              * platform/mac/svg/custom/svg-fonts-segmented-expected.png: Added.
              * platform/mac/svg/custom/svg-fonts-segmented-expected.txt: Added.
              * platform/mac/svg/custom/svg-fonts-with-no-element-reference-expected.png:
              * platform/mac/svg/custom/svg-fonts-with-no-element-reference-expected.txt:
              * platform/mac/svg/custom/svg-fonts-without-missing-glyph-expected.png:
              * platform/mac/svg/custom/svg-fonts-without-missing-glyph-expected.txt:
              * platform/mac/svg/custom/svg-fonts-word-spacing-expected.png: Added.
              * platform/mac/svg/custom/svg-fonts-word-spacing-expected.txt: Added.
              * platform/mac/svg/dynamic-updates/SVGFEConvolveMatrixElement-dom-preserveAlpha-attr-expected.png:
              * platform/mac/svg/dynamic-updates/SVGFEConvolveMatrixElement-svgdom-preserveAlpha-prop-expected.png:
              * platform/mac/svg/foreignObject/text-tref-02-b-expected.png:
              * platform/mac/svg/foreignObject/text-tref-02-b-expected.txt:
              * platform/mac/svg/text/text-altglyph-01-b-expected.png:
              * platform/mac/svg/text/text-altglyph-01-b-expected.txt:
              * platform/mac/svg/text/text-overflow-ellipsis-svgfont-expected.png: Added.
              * platform/mac/svg/text/text-overflow-ellipsis-svgfont-expected.txt: Added.
              * platform/mac/svg/text/text-text-04-t-expected.png:
              * platform/mac/svg/text/text-text-04-t-expected.txt:
              * platform/mac/svg/text/text-text-05-t-expected.png:
              * platform/mac/svg/text/text-text-05-t-expected.txt:
              * platform/mac/svg/text/text-text-06-t-expected.png:
              * platform/mac/svg/text/text-text-06-t-expected.txt:
              * platform/mac/svg/transforms/text-with-mask-with-svg-transform-expected.png:
              * platform/mac/svg/transforms/text-with-mask-with-svg-transform-expected.txt:
              * platform/mac/svg/wicd/test-rightsizing-b-expected.png:
              * platform/mac/svg/wicd/test-rightsizing-b-expected.txt:
              * svg/custom/resources/ABCFont.svg:
              * svg/custom/svg-fonts-fallback.xhtml: Added.
              * svg/custom/svg-fonts-segmented.xhtml: Added.
              * svg/custom/svg-fonts-word-spacing.html: Added.
              * svg/text/select-text-svgfont-expected.txt: Added.
              * svg/text/select-text-svgfont.html: Added.
              * svg/text/text-overflow-ellipsis-svgfont.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@89233 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      518be6f3
  19. 16 Jun, 2011 1 commit
  20. 11 Jun, 2011 1 commit
    • barraclough@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=62503 · 7836865d
      barraclough@apple.com authored
      Remove JIT_OPTIMIZE_* switches
      
      Rubber stamped by Geoff Garen.
      
      The alternative code paths are untested, and not well maintained.
      These were useful when there was more churn in the JIT, but now
      are a maintenance overhead. Time to move on, removing.
      
      * bytecode/CodeBlock.cpp:
      (JSC::CodeBlock::visitAggregate):
      * jit/JIT.cpp:
      (JSC::JIT::privateCompileSlowCases):
      (JSC::JIT::privateCompile):
      (JSC::JIT::linkConstruct):
      * jit/JIT.h:
      * jit/JITCall.cpp:
      * jit/JITCall32_64.cpp:
      * jit/JITOpcodes.cpp:
      (JSC::JIT::privateCompileCTIMachineTrampolines):
      (JSC::JIT::privateCompileCTINativeCall):
      * jit/JITOpcodes32_64.cpp:
      (JSC::JIT::privateCompileCTIMachineTrampolines):
      (JSC::JIT::privateCompileCTINativeCall):
      (JSC::JIT::softModulo):
      * jit/JITPropertyAccess.cpp:
      * jit/JITPropertyAccess32_64.cpp:
      * jit/JITStubs.cpp:
      (JSC::DEFINE_STUB_FUNCTION):
      * runtime/Lookup.cpp:
      (JSC::setUpStaticFunctionSlot):
      * runtime/Lookup.h:
      * wtf/Platform.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@88604 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7836865d
  21. 09 Jun, 2011 1 commit
    • commit-queue@webkit.org's avatar
      2011-06-09 Hyowon Kim <hw1008.kim@samsung.com> · 6348f02f
      commit-queue@webkit.org authored
              Reviewed by Antonio Gomes.
      
              [EFL] Make accelerated compositing build in Webkit-EFL
              https://bugs.webkit.org/show_bug.cgi?id=62361
      
              Add PLATFORM(EFL) to enable ACCELERATED_COMPOSITING on EFL port.
      
              * wtf/Platform.h:
      2011-06-09  Hyowon Kim  <hw1008.kim@samsung.com>
      
              Reviewed by Antonio Gomes.
      
              [EFL] Make accelerated compositing build in Webkit-EFL
              https://bugs.webkit.org/show_bug.cgi?id=62361
      
              Add a new class, GraphicsLayerEfl - not yet implemented.
              Add ACCELERATED_COMPOSITING related files to CMakeLists.
      
              * CMakeLists.txt:
              * CMakeListsEfl.txt:
              * platform/graphics/efl/GraphicsLayerEfl.cpp: Added.
              (WebCore::GraphicsLayer::create):
              (WebCore::GraphicsLayerEfl::GraphicsLayerEfl):
              (WebCore::GraphicsLayerEfl::~GraphicsLayerEfl):
              (WebCore::GraphicsLayerEfl::setNeedsDisplay):
              (WebCore::GraphicsLayerEfl::setNeedsDisplayInRect):
              * platform/graphics/efl/GraphicsLayerEfl.h: Added.
      2011-06-09  Hyowon Kim  <hw1008.kim@samsung.com>
      
              Reviewed by Antonio Gomes.
      
              [EFL] Make accelerated compositing build in Webkit-EFL
              https://bugs.webkit.org/show_bug.cgi?id=62361
      
              Add functions for accelerated compositing to ChromeClientEfl.
      
              * WebCoreSupport/ChromeClientEfl.cpp:
              (WebCore::ChromeClientEfl::attachRootGraphicsLayer):
              (WebCore::ChromeClientEfl::setNeedsOneShotDrawingSynchronization):
              (WebCore::ChromeClientEfl::scheduleCompositingLayerSync):
              (WebCore::ChromeClientEfl::allowedCompositingTriggers):
              * WebCoreSupport/ChromeClientEfl.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@88518 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6348f02f
  22. 08 Jun, 2011 1 commit
    • commit-queue@webkit.org's avatar
      2011-06-08 Sailesh Agrawal <sail@chromium.org> · 6e3e8f59
      commit-queue@webkit.org authored
              Reviewed by Mihai Parparita.
      
              Chromium Mac: Enable overlay scrollbars
              https://bugs.webkit.org/show_bug.cgi?id=59756
      
              Enable WTF_USE_WK_SCROLLBAR_PAINTER for Chromium Mac. This allows us to use overlay scrollbars on future versions of Mac OS X.
      
              * wtf/Platform.h:
      2011-06-08  Sailesh Agrawal  <sail@chromium.org>
      
              Reviewed by Mihai Parparita.
      
              Chromium Mac: Enable overlay scrollbars
              https://bugs.webkit.org/show_bug.cgi?id=59756
      
              Sync ScrollbarThemeChromiumMac.mm/.h with ScrollbarThemeMac.mm to pick up support for overlay scrollbars. The only changes are renaming ScrollbarThemeMac to ScrollbarThemeChromiumMac and using runtime checks instead of #ifdef's.
      
              No new tests, since this code is only enabled on future versions of Mac OS X.
      
              * platform/chromium/ScrollAnimatorChromiumMac.mm: All changes to this file except in scroll() were to swap #if USE(WK_SCROLLBAR_PAINTER) with runtime checks.
              (WebCore::ScrollAnimatorChromiumMac::ScrollAnimatorChromiumMac):
              (WebCore::ScrollAnimatorChromiumMac::~ScrollAnimatorChromiumMac):
              (WebCore::ScrollAnimatorChromiumMac::notityPositionChanged):
              (WebCore::ScrollAnimatorChromiumMac::contentAreaWillPaint):
              (WebCore::ScrollAnimatorChromiumMac::mouseEnteredContentArea):
              (WebCore::ScrollAnimatorChromiumMac::mouseExitedContentArea):
              (WebCore::ScrollAnimatorChromiumMac::mouseMovedInContentArea):
              (WebCore::ScrollAnimatorChromiumMac::willStartLiveResize):
              (WebCore::ScrollAnimatorChromiumMac::contentsResized):
              (WebCore::ScrollAnimatorChromiumMac::willEndLiveResize):
              (WebCore::ScrollAnimatorChromiumMac::contentAreaDidShow):
              (WebCore::ScrollAnimatorChromiumMac::contentAreaDidHide):
              (WebCore::ScrollAnimatorChromiumMac::didBeginScrollGesture):
              (WebCore::ScrollAnimatorChromiumMac::didEndScrollGesture):
              (WebCore::ScrollAnimatorChromiumMac::didAddVerticalScrollbar):
              (WebCore::ScrollAnimatorChromiumMac::willRemoveVerticalScrollbar):
              (WebCore::ScrollAnimatorChromiumMac::didAddHorizontalScrollbar):
              (WebCore::ScrollAnimatorChromiumMac::willRemoveHorizontalScrollbar):
              (WebCore::ScrollAnimatorChromiumMac::cancelAnimations):
              * platform/chromium/ScrollbarOverlayUtilitiesChromiumMac.mm:
              (preferredScrollerStyle): Disabled overlay scrollbar styles due to trailing artifacts.
              (wkScrollbarPainterPaint): Fixed a problem where the scrollbar track wasn't being drawn.
              (wkScrollbarPainterKnobRect): Implemented a previously unimplemented function.
              (wkSetScrollbarPainterKnobStyle): Implemented a function that's now supported by the latest Mac OS X seeds.
              (isScrollbarOverlayAPIAvailable): Enabled new scrollbar code.
              * platform/chromium/ScrollbarThemeChromiumMac.h:
              * platform/chromium/ScrollbarThemeChromiumMac.mm: Sync with ScrollbarThemeMac.mm.
              (WebCore::scrollbarMap):
              (+[ScrollbarPrefsObserver appearancePrefsChanged:]):
              (WebCore::updateArrowPlacement):
              (WebCore::ScrollbarThemeChromiumMac::registerScrollbar):
              (WebCore::ScrollbarThemeChromiumMac::unregisterScrollbar):
              (WebCore::ScrollbarThemeChromiumMac::setNewPainterForScrollbar):
              (WebCore::ScrollbarThemeChromiumMac::painterForScrollbar):
              (WebCore::ScrollbarThemeChromiumMac::scrollbarThickness):
              (WebCore::ScrollbarThemeChromiumMac::usesOverlayScrollbars):
              (WebCore::ScrollbarThemeChromiumMac::hasButtons):
              (WebCore::ScrollbarThemeChromiumMac::hasThumb):
              (WebCore::buttonRepaintRect):
              (WebCore::ScrollbarThemeChromiumMac::minimumThumbLength):
              (WebCore::ScrollbarThemeChromiumMac::shouldDragDocumentInsteadOfThumb):
              (WebCore::toScrollbarPainterKnobStyle):
              (WebCore::ScrollbarThemeChromiumMac::paint):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@88396 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6e3e8f59
  23. 04 Jun, 2011 1 commit
  24. 18 May, 2011 1 commit
  25. 16 May, 2011 1 commit
    • commit-queue@webkit.org's avatar
      2011-05-16 Siddharth Mathur <siddharth.mathur@nokia.com> · 8c7e768e
      commit-queue@webkit.org authored
              Reviewed by Laszlo Gombos.
      
              [Qt][WK2][Symbian] Shared memory implementation for Symbian
              https://bugs.webkit.org/show_bug.cgi?id=55875
      
              * wtf/Platform.h: Exclude Symbian OS from USE(UNIX_DOMAIN_SOCKETS) users
      2011-05-16  Siddharth Mathur  <siddharth.mathur@nokia.com>
      
              Reviewed by Laszlo Gombos.
      
              [Qt][WK2][Symbian] Shared memory implementation for Symbian
              https://bugs.webkit.org/show_bug.cgi?id=55875
      
              Use global chunks for sharing data between processes.
              This is an initial implementation. An outstanding issue
              is the correct way to close() the chunk in the SharedMemory d'tor
              without triggering a delete by the kernel when the ref-count
              temporarily goes to zero.
      
              * Platform/SharedMemory.h: platform specific handle and chunk name
              * Platform/qt/SharedMemorySymbian.cpp: Added. Native Symbian OS implementation
              using RChunk.CreateGlobal() for named chunks. The chunk name is serialized
              and sent over the IPC channel and opened by the remote process using
              RChunk.OpenGlobal().
      
              (WebKit::SharedMemory::Handle::Handle):
              (WebKit::SharedMemory::Handle::~Handle):
              (WebKit::SharedMemory::Handle::isNull):
              (WebKit::SharedMemory::Handle::encode):
              (WebKit::SharedMemory::Handle::decode):
              (WebKit::SharedMemory::create):
              (WebKit::SharedMemory::~SharedMemory):
              (WebKit::SharedMemory::createHandle):
              (WebKit::SharedMemory::systemPageSize):
              * Platform/unix/SharedMemoryUnix.cpp: Exclude Qt-Symbian using HAVE(UNIX_DOMAIN_SOCKETS)
              * WebKit2.pro: Add SharedMemorySymbian.cpp
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@86560 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8c7e768e
  26. 13 May, 2011 1 commit
  27. 12 May, 2011 1 commit
  28. 11 May, 2011 2 commits
  29. 04 May, 2011 1 commit
  30. 27 Apr, 2011 2 commits
  31. 26 Apr, 2011 1 commit
    • loki@webkit.org's avatar
      2011-04-26 Gabor Loki <loki@webkit.org> · 56e770cb
      loki@webkit.org authored
              Reviewed by Csaba Osztrogonác.
      
              Speeding up SVG filters with multicore (SMP) support
              https://bugs.webkit.org/show_bug.cgi?id=43903
      
              Some SVG filters execute a huge number of pixel manipulations, which
              cannot be sped up by graphics accelerators, since their algorithm is
              too complex. Using the power of Symmetric Multi Processing (SMP) we
              can split up a task to smaller (data independent) tasks, which can be
              executed independently.
      
              The ParallelJobs framework provides a simple way for distributed
              programming. The framework is based on WebKit's threading infrastructure,
              Open Multi-Processing's (OpenMP) API, and libdispatch API.
      
              * GNUmakefile.list.am:
              * JavaScriptCore.vcproj/WTF/WTF.vcproj:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * wtf/CMakeLists.txt:
              * wtf/ParallelJobs.h: Added.
              (WTF::ParallelJobs::ParallelJobs):
              (WTF::ParallelJobs::numberOfJobs):
              (WTF::ParallelJobs::parameterForJob):
              (WTF::ParallelJobs::executeJobs):
              * wtf/ParallelJobsGeneric.cpp: Added.
              (WTF::ParallelEnvironment::ThreadPrivate::tryLockFor):
              (WTF::ParallelEnvironment::ThreadPrivate::executeJob):
              (WTF::ParallelEnvironment::ThreadPrivate::waitForFinish):
              (WTF::ParallelEnvironment::ThreadPrivate::workerThread):
              * wtf/ParallelJobsGeneric.h: Added.
              (WTF::ParallelEnvironment::ParallelEnvironment):
              (WTF::ParallelEnvironment::numberOfJobs):
              (WTF::ParallelEnvironment::parameterForJob):
              (WTF::ParallelEnvironment::executeJobs):
              (WTF::ParallelEnvironment::ThreadPrivate::ThreadPrivate):
              (WTF::ParallelEnvironment::ThreadPrivate::create):
              * wtf/ParallelJobsLibdispatch.h: Added.
              (WTF::ParallelEnvironment::ParallelEnvironment):
              (WTF::ParallelEnvironment::numberOfJobs):
              (WTF::ParallelEnvironment::parameterForJob):
              (WTF::ParallelEnvironment::executeJobs):
              * wtf/ParallelJobsOpenMP.h: Added.
              (WTF::ParallelEnvironment::ParallelEnvironment):
              (WTF::ParallelEnvironment::numberOfJobs):
              (WTF::ParallelEnvironment::parameterForJob):
              (WTF::ParallelEnvironment::executeJobs):
              * wtf/Platform.h:
              * wtf/wtf.pri:
      2011-04-26  Gabor Loki  <loki@webkit.org>
      
              Reviewed by Csaba Osztrogonác.
      
              Speeding up SVG filters with multicore (SMP) support
              https://bugs.webkit.org/show_bug.cgi?id=43903
      
              Some SVG filters execute a huge number of pixel manipulations, which
              cannot be sped up by graphics accelerators, since their algorithm is
              too complex. Using the power of Symmetric Multi Processing (SMP) we
              can split up a task to smaller (data independent) tasks, which can be
              executed independently.
      
              The ParallelJobs framework provides a simple way for distributed
              programming. The framework is based on WebKit's threading infrastructure,
              Open Multi-Processing's (OpenMP) API, and libdispatch API.
      
              * ForwardingHeaders/wtf/ParallelJobs.h: Added.
              * platform/graphics/filters/FETurbulence.cpp:
              (WebCore::FETurbulence::PaintingData::PaintingData):
              (WebCore::FETurbulence::noise2D):
              (WebCore::FETurbulence::calculateTurbulenceValueForPoint):
              (WebCore::FETurbulence::fillRegion):
              (WebCore::FETurbulence::fillRegionWorker):
              (WebCore::FETurbulence::apply):
              * platform/graphics/filters/FETurbulence.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@84911 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      56e770cb