1. 17 Feb, 2013 23 commits
    • fpizlo@apple.com's avatar
      Move all Structure out-of-line inline methods to StructureInlines.h · bb8aa756
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=110024
      
      Source/JavaScriptCore: 
      
      Rubber stamped by Mark Hahnenberg and Sam Weinig.
              
      This was supposed to be easy.
              
      But, initially, there was a Structure inline method in CodeBlock.h, and moving that
      into StructureInlines.h meant that Operations.h included CodeBlock.h. This would
      cause WebCore build failures, because CodeBlock.h transitively included the JSC
      parser (via many, many paths), and the JSC parser defines tokens using enumeration
      elements that CSSGrammar.cpp (generated by bison) would #define. For example,
      bison would give CSSGrammar.cpp a #define FUNCTION 123, and would do so before
      including anything interesting. The JSC parser would have an enum that included
      FUNCTION as an element. Hence the JSC parser included into CSSGrammar.cpp would have
      a token element called FUNCTION declared in an enumeration, but FUNCTION was
      #define'd to 123, leading to a parser error.
              
      Wow.
              
      So I removed all transitive include paths from CodeBlock.h to the JSC Parser. I
      believe I was able to do so without out-of-lining anything interesting or performance
      critical. This is probably a purely good thing to have done: it will be nice to be
      able to make changes to the parser without having to compile the universe.
              
      Of course, doing this caused a bunch of other things to not compile, since a bunch of
      headers relied on things being implicitly included for them when they transitively
      included the parser. I fixed a lot of that.
              
      Finally, I ended up removing the method that depended on CodeBlock.h from
      StructureInlines.h, and putting it in Structure.cpp. That might seem like all of this
      was a waste of time, except that I suspect it was a worthwhile forcing function for
      cleaning up a bunch of cruft.
              
      * API/JSCallbackFunction.cpp:
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * Target.pri:
      * bytecode/CodeBlock.h:
      (JSC):
      * bytecode/EvalCodeCache.h:
      * bytecode/SamplingTool.h:
      * bytecode/UnlinkedCodeBlock.cpp:
      (JSC::UnlinkedFunctionExecutable::parameterCount):
      (JSC):
      * bytecode/UnlinkedCodeBlock.h:
      (UnlinkedFunctionExecutable):
      * bytecompiler/BytecodeGenerator.h:
      * bytecompiler/Label.h:
      (JSC):
      * dfg/DFGByteCodeParser.cpp:
      * dfg/DFGByteCodeParser.h:
      * dfg/DFGFPRInfo.h:
      * dfg/DFGRegisterBank.h:
      * heap/HandleStack.cpp:
      * jit/JITWriteBarrier.h:
      * parser/Nodes.h:
      (JSC):
      * parser/Parser.h:
      * parser/ParserError.h: Added.
      (JSC):
      (JSC::ParserError::ParserError):
      (ParserError):
      (JSC::ParserError::toErrorObject):
      * parser/ParserModes.h:
      * parser/SourceProvider.cpp: Added.
      (JSC):
      (JSC::SourceProvider::SourceProvider):
      (JSC::SourceProvider::~SourceProvider):
      * parser/SourceProvider.h:
      (JSC):
      (SourceProvider):
      * runtime/ArrayPrototype.cpp:
      * runtime/DatePrototype.cpp:
      * runtime/Executable.h:
      * runtime/JSGlobalObject.cpp:
      * runtime/JSGlobalObject.h:
      (JSC):
      * runtime/Operations.h:
      * runtime/Structure.cpp:
      (JSC::Structure::prototypeForLookup):
      (JSC):
      * runtime/Structure.h:
      (JSC):
      * runtime/StructureInlines.h: Added.
      (JSC):
      (JSC::Structure::create):
      (JSC::Structure::createStructure):
      (JSC::Structure::get):
      (JSC::Structure::masqueradesAsUndefined):
      (JSC::SlotVisitor::internalAppend):
      (JSC::Structure::transitivelyTransitionedFrom):
      (JSC::Structure::setEnumerationCache):
      (JSC::Structure::enumerationCache):
      (JSC::Structure::prototypeForLookup):
      (JSC::Structure::prototypeChain):
      (JSC::Structure::isValid):
      * runtime/StructureRareData.cpp:
      
      Source/WebCore: 
      
      Rubber stamped by Sam Weinig.
      
      No new tests because no new behavior. Just rewiring includes.
      
      * ForwardingHeaders/parser/SourceProviderCache.h: Added.
      * loader/cache/CachedScript.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143147 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bb8aa756
    • commit-queue@webkit.org's avatar
      Remove unnecessary public method DrawingAreaImpl::createGraphicsContext() · bc8c2628
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=109893
      
      Patch by Jae Hyun Park <jae.park@company100.net> on 2013-02-17
      Reviewed by Anders Carlsson.
      
      DrawingAreaImpl::createGraphicsContext() is unnecessary since
      createGraphicsContext can be called directly using ShareableBitmap.
      
      * WebProcess/WebPage/DrawingAreaImpl.cpp:
      (WebKit::DrawingAreaImpl::display):
      * WebProcess/WebPage/DrawingAreaImpl.h:
      (DrawingAreaImpl):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143146 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bc8c2628
    • hayato@chromium.org's avatar
      Make EventDispatcher take an Event object in its constructor. · 981e164d
      hayato@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=109898
      
      Reviewed by Dimitri Glazkov.
      
      That makes EventDispatcher more RAII-like so that we can calculate
      an EventPath in its constructor.  I'll remove
      EventDispatcher::ensureEventPath() in a following patch.
      
      No tests. No change in behavior.
      
      * dom/EventDispatchMediator.cpp:
      (WebCore::EventDispatchMediator::dispatchEvent):
      * dom/EventDispatcher.cpp:
      (WebCore::EventDispatcher::dispatchEvent):
      (WebCore::EventDispatcher::EventDispatcher):
      (WebCore::EventDispatcher::ensureEventPath):
      (WebCore::EventDispatcher::dispatchSimulatedClick):
      (WebCore::EventDispatcher::dispatch):
      (WebCore::EventDispatcher::dispatchEventPreProcess):
      (WebCore::EventDispatcher::dispatchEventAtCapturing):
      (WebCore::EventDispatcher::dispatchEventAtTarget):
      (WebCore::EventDispatcher::dispatchEventAtBubbling):
      (WebCore::EventDispatcher::dispatchEventPostProcess):
      * dom/EventDispatcher.h:
      (EventDispatcher):
      (WebCore::EventDispatcher::node):
      (WebCore::EventDispatcher::event):
      * dom/FocusEvent.cpp:
      (WebCore::FocusEventDispatchMediator::dispatchEvent):
      (WebCore::BlurEventDispatchMediator::dispatchEvent):
      (WebCore::FocusInEventDispatchMediator::dispatchEvent):
      (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
      * dom/GestureEvent.cpp:
      (WebCore::GestureEventDispatchMediator::dispatchEvent):
      * dom/MouseEvent.cpp:
      (WebCore::MouseEventDispatchMediator::dispatchEvent):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143145 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      981e164d
    • pdr@google.com's avatar
      Fix non-root SVG viewport under zoom · 85f8caa1
      pdr@google.com authored
      https://bugs.webkit.org/show_bug.cgi?id=99453
      
      Reviewed by Dirk Schulze.
      
      Source/WebCore:
      
      The root SVG element handles zoom differently than other SVG nodes because it needs
      to translate between CSS (where zoom is applied to all units) and SVG (where zoom is only
      applied at the top level). A good description of this difference can be found here:
      http://trac.webkit.org/browser/trunk/Source/WebCore/css/StyleResolver.cpp?rev=142855#L2598
      
      SVG elements can appear as children in the SVG tree as well, and in this mode
      SVGSVGElement should not consider the current zoom level. This patch fixes a bug
      where non-root viewport calculations were removing zoom.
      
      Test: svg/custom/symbol-zoom.html
      
      * svg/SVGSVGElement.cpp:
      (WebCore::SVGSVGElement::currentViewportSize):
          This change removes the unnecessary zoom calculation for non-root nodes. This is similar
          to how zoom is handled elsewhere, e.g., SVGSVGElement::localCoordinateSpaceTransform.
      
      LayoutTests:
      
      * svg/custom/symbol-zoom-expected.html: Added.
      * svg/custom/symbol-zoom.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143144 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      85f8caa1
    • cfleizach@apple.com's avatar
      AX: Upstream iOS Accessibility files · f6f97d63
      cfleizach@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=110071
      
      Reviewed by David Kilzer.
      
      Upstream the iOS Accessibility files for WebCore. 
      
      * WebCore.xcodeproj/project.pbxproj:
      * accessibility/ios: Added.
      * accessibility/ios/AXObjectCacheIOS.mm: Added.
      (WebCore):
      (WebCore::AXObjectCache::detachWrapper):
      (WebCore::AXObjectCache::attachWrapper):
      (WebCore::AXObjectCache::postPlatformNotification):
      (WebCore::AXObjectCache::nodeTextChangePlatformNotification):
      (WebCore::AXObjectCache::frameLoadingEventPlatformNotification):
      (WebCore::AXObjectCache::handleFocusedUIElementChanged):
      (WebCore::AXObjectCache::handleScrolledToAnchor):
      * accessibility/ios/AccessibilityObjectIOS.mm: Added.
      (-[WAKView accessibilityIsIgnored]):
      (WebCore):
      (WebCore::AccessibilityObject::detachFromParent):
      (WebCore::AccessibilityObject::overrideAttachmentParent):
      (WebCore::AccessibilityObject::accessibilityPasswordFieldLength):
      (WebCore::AccessibilityObject::accessibilityIgnoreAttachment):
      (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
      * accessibility/ios/AccessibilityObjectWrapperIOS.h: Added.
      (WAKView):
      * accessibility/ios/AccessibilityObjectWrapperIOS.mm: Added.
      (AccessibilityUnignoredAncestor):
      (-[WebAccessibilityTextMarker initWithTextMarker:cache:]):
      (-[WebAccessibilityTextMarker initWithData:cache:]):
      (-[WebAccessibilityTextMarker initWithData:accessibilityObject:]):
      (+[WebAccessibilityTextMarker textMarkerWithVisiblePosition:cache:]):
      (-[WebAccessibilityTextMarker dataRepresentation]):
      (-[WebAccessibilityTextMarker visiblePosition]):
      (-[WebAccessibilityTextMarker description]):
      (-[WebAccessibilityObjectWrapper initWithAccessibilityObject:]):
      (-[WebAccessibilityObjectWrapper detach]):
      (-[WebAccessibilityObjectWrapper dealloc]):
      (-[WebAccessibilityObjectWrapper _prepareAccessibilityCall]):
      (-[WebAccessibilityObjectWrapper accessibilityObject]):
      (-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
      (-[WebAccessibilityObjectWrapper accessibilityPostProcessHitTest:]):
      (-[WebAccessibilityObjectWrapper accessibilityHitTest:]):
      (-[WebAccessibilityObjectWrapper accessibilityElementCount]):
      (-[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]):
      (-[WebAccessibilityObjectWrapper indexOfAccessibilityElement:]):
      (-[WebAccessibilityObjectWrapper accessibilityLanguage]):
      (-[WebAccessibilityObjectWrapper _accessibilityIsLandmarkRole:]):
      (-[WebAccessibilityObjectWrapper _accessibilityListAncestor]):
      (-[WebAccessibilityObjectWrapper _accessibilityLandmarkAncestor]):
      (-[WebAccessibilityObjectWrapper _accessibilityTableAncestor]):
      (-[WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]):
      (-[WebAccessibilityObjectWrapper accessibilityTraits]):
      (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
      (-[WebAccessibilityObjectWrapper isAccessibilityElement]):
      (-[WebAccessibilityObjectWrapper stringValueShouldBeUsedInLabel]):
      (-[WebAccessibilityObjectWrapper accessibilityLabel]):
      (-[WebAccessibilityObjectWrapper tableCellParent]):
      (-[WebAccessibilityObjectWrapper tableParent]):
      (-[WebAccessibilityObjectWrapper accessibilityTitleElement]):
      (-[WebAccessibilityObjectWrapper accessibilityHeaderElements]):
      (-[WebAccessibilityObjectWrapper accessibilityElementForRow:andColumn:]):
      (-[WebAccessibilityObjectWrapper accessibilityRowRange]):
      (-[WebAccessibilityObjectWrapper accessibilityColumnRange]):
      (-[WebAccessibilityObjectWrapper accessibilityPlaceholderValue]):
      (-[WebAccessibilityObjectWrapper accessibilityValue]):
      (-[WebAccessibilityObjectWrapper accessibilityIsComboBox]):
      (-[WebAccessibilityObjectWrapper accessibilityHint]):
      (-[WebAccessibilityObjectWrapper accessibilityURL]):
      (-[WebAccessibilityObjectWrapper _convertIntRectToScreenCoordinates:]):
      (-[WebAccessibilityObjectWrapper accessibilityElementRect]):
      (-[WebAccessibilityObjectWrapper accessibilityActivationPoint]):
      (-[WebAccessibilityObjectWrapper accessibilityFrame]):
      (-[WebAccessibilityObjectWrapper containsUnnaturallySegmentedChildren]):
      (-[WebAccessibilityObjectWrapper accessibilityContainer]):
      (-[WebAccessibilityObjectWrapper accessibilityFocusedUIElement]):
      (-[WebAccessibilityObjectWrapper _accessibilityWebDocumentView]):
      (-[WebAccessibilityObjectWrapper _accessibilityNextElementsWithCount:]):
      (-[WebAccessibilityObjectWrapper _accessibilityPreviousElementsWithCount:]):
      (-[WebAccessibilityObjectWrapper accessibilityRequired]):
      (-[WebAccessibilityObjectWrapper accessibilityFlowToElements]):
      (-[WebAccessibilityObjectWrapper accessibilityLinkedElement]):
      (-[WebAccessibilityObjectWrapper isAttachment]):
      (-[WebAccessibilityObjectWrapper _accessibilityActivate]):
      (-[WebAccessibilityObjectWrapper attachmentView]):
      (rendererForView):
      (-[WebAccessibilityObjectWrapper _accessibilityParentForSubview:]):
      (-[WebAccessibilityObjectWrapper postFocusChangeNotification]):
      (-[WebAccessibilityObjectWrapper postSelectedTextChangeNotification]):
      (-[WebAccessibilityObjectWrapper postLayoutChangeNotification]):
      (-[WebAccessibilityObjectWrapper postLiveRegionChangeNotification]):
      (-[WebAccessibilityObjectWrapper postLoadCompleteNotification]):
      (-[WebAccessibilityObjectWrapper postChildrenChangedNotification]):
      (-[WebAccessibilityObjectWrapper postInvalidStatusChangedNotification]):
      (-[WebAccessibilityObjectWrapper accessibilityElementDidBecomeFocused]):
      (-[WebAccessibilityObjectWrapper accessibilityModifySelection:increase:]):
      (-[WebAccessibilityObjectWrapper accessibilityIncreaseSelection:]):
      (-[WebAccessibilityObjectWrapper accessibilityDecreaseSelection:]):
      (-[WebAccessibilityObjectWrapper accessibilityMoveSelectionToMarker:]):
      (-[WebAccessibilityObjectWrapper accessibilityIncrement]):
      (-[WebAccessibilityObjectWrapper accessibilityDecrement]):
      (-[WebAccessibilityObjectWrapper _addAccessibilityObject:toTextMarkerArray:]):
      (-[WebAccessibilityObjectWrapper stringForTextMarkers:]):
      (blockquoteLevel):
      (AXAttributeStringSetBlockquoteLevel):
      (AXAttributeStringSetHeadingLevel):
      (AXAttributeStringSetFont):
      (AXAttributeStringSetNumber):
      (AXAttributeStringSetStyle):
      (AXAttributedStringAppendText):
      (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
      (-[WebAccessibilityObjectWrapper _convertToNSRange:]):
      (-[WebAccessibilityObjectWrapper _convertToDOMRange:]):
      (-[WebAccessibilityObjectWrapper positionForTextMarker:]):
      (-[WebAccessibilityObjectWrapper textMarkerRange]):
      (-[WebAccessibilityObjectWrapper elementTextRange]):
      (-[WebAccessibilityObjectWrapper accessibilityObjectForTextMarker:]):
      (-[WebAccessibilityObjectWrapper textMarkerRangeForSelection]):
      (-[WebAccessibilityObjectWrapper textMarkerForPosition:]):
      (-[WebAccessibilityObjectWrapper _stringForRange:attributed:]):
      (-[WebAccessibilityObjectWrapper stringForRange:]):
      (-[WebAccessibilityObjectWrapper attributedStringForRange:]):
      (-[WebAccessibilityObjectWrapper elementsForRange:]):
      (-[WebAccessibilityObjectWrapper selectionRangeString]):
      (-[WebAccessibilityObjectWrapper selectedTextMarker]):
      (-[WebAccessibilityObjectWrapper lineEndMarkerForMarker:]):
      (-[WebAccessibilityObjectWrapper lineStartMarkerForMarker:]):
      (-[WebAccessibilityObjectWrapper nextMarkerForMarker:]):
      (-[WebAccessibilityObjectWrapper previousMarkerForMarker:]):
      (-[WebAccessibilityObjectWrapper frameForTextMarkers:]):
      (-[WebAccessibilityObjectWrapper textMarkerForPoint:]):
      (-[WebAccessibilityObjectWrapper accessibilityIdentifier]):
      (-[WebAccessibilityObjectWrapper accessibilitySpeechHint]):
      (-[WebAccessibilityObjectWrapper accessibilityARIAIsBusy]):
      (-[WebAccessibilityObjectWrapper accessibilityARIALiveRegionStatus]):
      (-[WebAccessibilityObjectWrapper accessibilityARIARelevantStatus]):
      (-[WebAccessibilityObjectWrapper accessibilityARIALiveRegionIsAtomic]):
      (-[WebAccessibilityObjectWrapper accessibilityInvalidStatus]):
      (-[WebAccessibilityObjectWrapper accessibilityMathRootIndexObject]):
      (-[WebAccessibilityObjectWrapper accessibilityMathRadicandObject]):
      (-[WebAccessibilityObjectWrapper accessibilityMathNumeratorObject]):
      (-[WebAccessibilityObjectWrapper accessibilityMathDenominatorObject]):
      (-[WebAccessibilityObjectWrapper accessibilityMathBaseObject]):
      (-[WebAccessibilityObjectWrapper accessibilityMathSubscriptObject]):
      (-[WebAccessibilityObjectWrapper accessibilityMathSuperscriptObject]):
      (-[WebAccessibilityObjectWrapper accessibilityMathUnderObject]):
      (-[WebAccessibilityObjectWrapper accessibilityMathOverObject]):
      (-[WebAccessibilityObjectWrapper accessibilityMathFencedOpenString]):
      (-[WebAccessibilityObjectWrapper accessibilityMathFencedCloseString]):
      (-[WebAccessibilityObjectWrapper accessibilityIsMathTopObject]):
      (-[WebAccessibilityObjectWrapper accessibilityMathType]):
      (-[WebAccessibilityObjectWrapper accessibilitySetPostedNotificationCallback:withContext:]):
      (-[WebAccessibilityObjectWrapper accessibilityPostedNotification:WebCore::AXObjectCache::]):
      (-[WebAccessibilityObjectWrapper description]):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143143 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f6f97d63
    • cfleizach@apple.com's avatar
      AX: rename WebAccessibilityObjectWrapper to WebAccessibilityObjectWrapperBase · 100fa9e2
      cfleizach@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=110061
      
      Reviewed by David Kilzer.
      
      Rename the base accessibility wrapper class so that the iOS class can share the same name.
      
      * WebCore.xcodeproj/project.pbxproj:
      * accessibility/mac/AXObjectCacheMac.mm:
      (WebCore::AXObjectCache::attachWrapper):
      * accessibility/mac/WebAccessibilityObjectWrapper.h: Replaced with Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.h.
      * accessibility/mac/WebAccessibilityObjectWrapper.mm: Replaced with Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm.
      * accessibility/mac/WebAccessibilityObjectWrapperBase.h: Copied from Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapper.h.
      * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: Copied from Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapper.mm.
      * accessibility/mac/WebAccessibilityObjectWrapperMac.h: Removed.
      * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: Removed.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143142 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      100fa9e2
    • roger_fong@apple.com's avatar
      Unreviewed. Windows build fix. · 58e88799
      roger_fong@apple.com authored
      * runtime/CodeCache.h:
      (CodeCacheMap):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143141 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      58e88799
    • roger_fong@apple.com's avatar
      Unreviewed. Fix typo in script. · cb10d4e2
      roger_fong@apple.com authored
      * EWSTools/start-queue-win.sh:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143140 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cb10d4e2
    • roger_fong@apple.com's avatar
      Pass in bot name as parameter to start-queue-win script. · a2ff0553
      roger_fong@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=109998.
      
      Reviewed by Darin Adler.
      
      * EWSTools/start-queue-win.sh:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143139 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a2ff0553
    • bw80.lee@samsung.com's avatar
      Unreviewed. Add myself as a committer. · c31ff786
      bw80.lee@samsung.com authored
      * Scripts/webkitpy/common/config/committers.py:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143138 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c31ff786
    • akling@apple.com's avatar
      REGRESSION(r143125): ~5% performance hit on Chromium's intl2 page cycler. · 8bcf8ec7
      akling@apple.com authored
      <http://webkit.org/b/108835>
      
      Reviewed by Ojan Vafai.
      
      Streamline the case where GlyphPage has a per-glyph SimpleFontData* lookup table to allow
      taking earlier branches on pages with lots of mixed-font text.
      We accomplish this by explicitly storing a null SimpleFontData* for glyph #0 in the per-glyph
      lookup table instead of relying on "if (!glyph)" checks in getters.
      
      This is a speculative optimization, I can't get stable enough numbers locally to tell if this
      will resolve the issue on the bots.
      
      * platform/graphics/GlyphPage.h:
      (WebCore::GlyphPage::glyphDataForIndex):
      (WebCore::GlyphPage::fontDataForCharacter):
      (WebCore::GlyphPage::setGlyphDataForIndex):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143137 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8bcf8ec7
    • cfleizach@apple.com's avatar
      WebSpeech: plumb through a method to generate fake speech jobs for testing · 254ca83f
      cfleizach@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=107351
      
      Reviewed by Adam Barth.
      
      Source/WebCore: 
      
      We can't reliably use the platforms synthesizer to test speech synthesis internals.
      This patch adds an Internals method to enable a mock synthesizer, which is inherits
      from the PlatformSpeechSythesizer.
      
      The fake synthesizer goes through all the motions of a real synthesizer but doesn't do anything.
      A bunch of changes were needed here to make PlatformSpeechSynthesizer subclassable so that the
      right virtual are used.
      
      The Mock synthesizer only lives in WebCoreTestSupport. Because PlatformSpeechSynthesizer uses
      a RetainPtr, I needed to make WebCoreTestSupport link CoreFoundation
      
      LayoutTests: 
      
      * platform/mac/fast/speechsynthesis/speech-synthesis-speak.html:
      * platform/mac/fast/speechsynthesis/speech-synthesis-voices.html:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143136 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      254ca83f
    • ch.dumez@sisa.samsung.com's avatar
      Unreviewed EFL gardening. · 2a6a1fbf
      ch.dumez@sisa.samsung.com authored
      Mark compositing/layer-creation/fixed-position-out-of-view-scaled.html as
      flaky on WebKit2 EFL. It sometimes hits an assertion.
      
      * platform/efl-wk2/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143135 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2a6a1fbf
    • ch.dumez@sisa.samsung.com's avatar
      [WK2][EFL] Remove fullscreen manager proxy as a message receiver on invalidate() · f121189b
      ch.dumez@sisa.samsung.com authored
      https://bugs.webkit.org/show_bug.cgi?id=109451
      
      Patch by Sudarsana Nagineni <sudarsana.nagineni@intel.com> on 2013-02-17
      Reviewed by Anders Carlsson.
      
      Remove fullscreen manager proxy as a message receiver on invalidate(), like
      other ports do after r142160.
      
      * UIProcess/efl/WebFullScreenManagerProxyEfl.cpp:
      (WebKit::WebFullScreenManagerProxy::invalidate):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143134 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f121189b
    • ggaren@apple.com's avatar
      Code cache should be explicit about what it caches · 818f283e
      ggaren@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=110039
      
      Reviewed by Oliver Hunt.
      
      This patch makes the code cache more explicit in two ways:
      
      (1) The cache caches top-level scripts. Any sub-functions executed as a
      part of a script are cached with it and evicted with it.
      
      This simplifies things by eliminating out-of-band sub-function tracking,
      and fixes pathological cases where functions for live scripts would be
      evicted in favor of functions for dead scripts, and/or high probability
      functions executed early in script lifetime would be evicted in favor of
      low probability functions executed late in script lifetime, due to LRU.
      
      Statistical data from general browsing and PLT confirms that caching
      functions independently of scripts is not profitable.
      
      (2) The cache tracks script size, not script count.
      
      This reduces the worst-case cache size by a factor of infinity.
      
      Script size is a reasonable first-order estimate of in-memory footprint 
      for a cached script because there are no syntactic constructs that have
      super-linear memory footprint.
      
      * bytecode/UnlinkedCodeBlock.cpp:
      (JSC::generateFunctionCodeBlock): Moved this function out of the cache
      because it does not consult the cache, and is not managed by it.
      
      (JSC::UnlinkedFunctionExecutable::visitChildren): Visit our code blocks
      because they are strong references now, rather than weak, a la (1).
      
      (JSC::UnlinkedFunctionExecutable::codeBlockFor): Updated for interface changes.
      
      * bytecode/UnlinkedCodeBlock.h:
      (UnlinkedFunctionExecutable):
      (UnlinkedFunctionCodeBlock): Strong now, not weak, a la (1).
      
      * runtime/CodeCache.cpp:
      (JSC::CodeCache::CodeCache):
      * runtime/CodeCache.h:
      (JSC::SourceCodeKey::length):
      (SourceCodeKey):
      (CodeCacheMap):
      (JSC::CodeCacheMap::CodeCacheMap):
      (JSC::CodeCacheMap::find):
      (JSC::CodeCacheMap::set):
      (JSC::CodeCacheMap::clear):
      (CodeCache):
      (JSC::CodeCache::clear): Removed individual function tracking, due to (1).
      Added explicit character counting, for (2).
      
      You might think 16000000 characters is a lot. It is. But this patch
      didn't establish that limit -- it just took the existing limit and
      made it more visible. I intend to reduce the size of the cache in a
      future patch.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143133 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      818f283e
    • ch.dumez@sisa.samsung.com's avatar
      Regression(r143124): Caused plugins/plugin-javascript-access.html to fail · e4716a8e
      ch.dumez@sisa.samsung.com authored
      https://bugs.webkit.org/show_bug.cgi?id=110053
      
      Reviewed by Alexey Proskuryakov.
      
      Source/WebKit2:
      
      Clear m_plugins in loadPluginsIfNecessary() before populating the
      vector again. We get duplicates otherwise.
      
      * UIProcess/Plugins/PluginInfoStore.cpp:
      (WebKit::PluginInfoStore::loadPluginsIfNecessary):
      
      LayoutTests:
      
      Unskip plugins/plugin-javascript-access.html for WK2 EFL now that the
      Test is passing again.
      
      * platform/efl-wk2/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143132 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e4716a8e
    • ch.dumez@sisa.samsung.com's avatar
      Unreviewed. Remove duplicates from EFL port's TestExpectations. · 88dcd7ee
      ch.dumez@sisa.samsung.com authored
      * platform/efl-wk2/TestExpectations:
      * platform/efl/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143131 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      88dcd7ee
    • ch.dumez@sisa.samsung.com's avatar
      Unreviewed EFL gardening. · b7aae454
      ch.dumez@sisa.samsung.com authored
      Generate baseline for svg/filters/filter-hidden-content.svg on EFL
      port.
      
      * platform/efl/svg/filters/filter-hidden-content-expected.png: Added.
      * platform/efl/svg/filters/filter-hidden-content-expected.txt: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143130 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b7aae454
    • ch.dumez@sisa.samsung.com's avatar
      Unreviewed EFL gardening. · e7f3c9b0
      ch.dumez@sisa.samsung.com authored
      Mark compositing/geometry/limit-layer-bounds-fixed.html as failing on
      EFL WK2. This test was introduced in r143073 but never passed on EFL.
      
      * platform/efl-wk2/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143129 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e7f3c9b0
    • ch.dumez@sisa.samsung.com's avatar
      Unreviewed EFL gardening. · ee6feda5
      ch.dumez@sisa.samsung.com authored
      Mark plugins/plugin-javascript-access.html as failing on WK2 EFL
      due to a regression in r143124.
      
      * platform/efl-wk2/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143128 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ee6feda5
    • ossy@webkit.org's avatar
      [Qt] Unreviewed buildfix for !USE(LIBXML) builds after r143112. · fe55848d
      ossy@webkit.org authored
      * xml/parser/XMLDocumentParserQt.cpp:
      (WebCore::XMLDocumentParser::XMLDocumentParser):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143127 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fe55848d
    • rniwa@webkit.org's avatar
      Rename new-commit-bot to WKR to disambiguate it from commit-queue. · 98826895
      rniwa@webkit.org authored
      Rubber-stamped by Andreas Kling.
      
      * Scripts/webkitpy/tool/commands/newcommitbot.py:
      (NewCommitBot.begin_work_queue):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143126 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      98826895
    • akling@apple.com's avatar
      Optimize GlyphPage for case where all glyphs are available in the same font. · 28942944
      akling@apple.com authored
      <http://webkit.org/b/108835>
      <rdar://problem/13157042>
      
      Reviewed by Antti Koivisto.
      
      Let GlyphPage begin optimistically assuming that all its glyphs will be represented in
      the same SimpleFontData*. In this (very common) case, only keep a single SimpleFontData*.
      
      If glyphs from multiple fonts are mixed in one page, an array of per-glyph SimpleFontData*
      is allocated transparently.
      
      This was landed before with some bogus branch prediction hints and didn't fare well on
      page cyclers (intl2 specifically.) These have been removed this time around, and will
      hopefully be regression-free.
      
      4.98 MB progression on Membuster3.
      
      * platform/graphics/GlyphPageTreeNode.cpp:
      (WebCore::GlyphPageTreeNode::initializePage):
      * platform/graphics/GlyphPage.h:
      (WebCore::GlyphPage::createUninitialized):
      (WebCore::GlyphPage::createZeroedSystemFallbackPage):
      (WebCore::GlyphPage::createCopiedSystemFallbackPage):
      
          There are now three ways of constructing a GlyphPage, two of them are only used for
          creating system fallback pages.
      
      (WebCore::GlyphPage::setGlyphDataForIndex):
      
          Hold off creating a SimpleFontData* array until we're sure there are two different
          SimpleFontData* backing the glyphs in this page.
          We don't store font data for glyph #0, instead we let the getters always return null for it.
      
      (WebCore::GlyphPage::~GlyphPage):
      
          Free the SimpleFontData* array if needed.
      
      (WebCore::GlyphPage::glyphDataForCharacter):
      (WebCore::GlyphPage::glyphDataForIndex):
      (WebCore::GlyphPage::fontDataForCharacter):
      
          The font data for glyph #0 is always a null pointer now.
      
      (WebCore::GlyphPage::clearForFontData):
      
          Updated for new storage format.
      
      * rendering/svg/SVGTextRunRenderingContext.cpp:
      (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):
      
          Fix bug where non-zero glyph was temporarily associated with null font data,
          which triggered the new assertion in setGlyphDataForIndex().
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143125 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      28942944
  2. 16 Feb, 2013 17 commits