1. 17 Feb, 2013 14 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
    • 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
      [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
    • 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
    • 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 19 commits
    • akling@apple.com's avatar
      Source/WebCore: Remove multi-threading gunk from WebKit2's PluginInfoStore. · 23fe8056
      akling@apple.com authored
      <http://webkit.org/b/110046>
      
      Reviewed by Alexey Proskuryakov.
      
      Remove now-unused code for making deep (isolated) copies of WebCore plugin structures.
      
      * plugins/PluginData.h:
      (MimeClassInfo):
      (PluginInfo):
      
      Source/WebKit2: Remove multi-threading gunk from PluginInfoStore.
      <http://webkit.org/b/110046>
      
      Reviewed by Alexey Proskuryakov.
      
      PluginInfoStore is never accessed from multiple threads anymore, so remove the Mutex locking
      and stop making isolated copies of everything.
      
      * Shared/Plugins/PluginModuleInfo.h:
      (PluginModuleInfo):
      * UIProcess/Plugins/PluginInfoStore.cpp:
      (WebKit::PluginInfoStore::loadPluginsIfNecessary):
      (WebKit::PluginInfoStore::plugins):
      (WebKit::PluginInfoStore::findPluginForMIMEType):
      (WebKit::PluginInfoStore::findPluginForExtension):
      (WebKit::PluginInfoStore::findPlugin):
      (WebKit::PluginInfoStore::infoForPluginWithPath):
      * UIProcess/Plugins/PluginInfoStore.h:
      (PluginInfoStore):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143124 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      23fe8056
    • ap@apple.com's avatar
      Identifier generated twice in FrameLoader::loadResourceSynchronously() · 5f1388a7
      ap@apple.com authored
              https://bugs.webkit.org/show_bug.cgi?id=110022
      
              Reviewed by Darin Adler.
      
              * loader/FrameLoader.cpp: (WebCore::FrameLoader::loadResourceSynchronously):
              Fix an apparent refactoring mistake.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143123 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5f1388a7
    • fpizlo@apple.com's avatar
      Remove support for bytecode comments, since it doesn't build, and hasn't been used in a while. · 105ea9bf
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=110035
      
      Rubber stamped by Andreas Kling.
              
      There are other ways of achieving the same effect, like adding print statements to the bytecode generator.
      The fact that this feature doesn't build and nobody noticed implies that it's probably not a popular
      feature. As well, the amount of wiring that was required for it was quite big considering its relatively
      modest utility.
      
      * GNUmakefile.list.am:
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * bytecode/CodeBlock.cpp:
      (JSC):
      (JSC::CodeBlock::dumpBytecode):
      (JSC::CodeBlock::CodeBlock):
      * bytecode/CodeBlock.h:
      (CodeBlock):
      * bytecode/Comment.h: Removed.
      * bytecompiler/BytecodeGenerator.cpp:
      (JSC::BytecodeGenerator::BytecodeGenerator):
      (JSC::BytecodeGenerator::emitOpcode):
      (JSC):
      * bytecompiler/BytecodeGenerator.h:
      (BytecodeGenerator):
      (JSC::BytecodeGenerator::symbolTable):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143122 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      105ea9bf
    • bfulgham@webkit.org's avatar
      [Windows] Unreviewed Visual Studio 2010 build fix after r143117 · 26b3c99f
      bfulgham@webkit.org authored
      * JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor/LLIntOffsetsExtractorDebug.props: Reference new path to property sheets.
      * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:
      Build correction after new operator == added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143120 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      26b3c99f
    • akling@apple.com's avatar
      [JSC] Remove custom mark function for NamedNodeMap. · 4c7487fc
      akling@apple.com authored
      <http://webkit.org/b/110029>
      
      Reviewed by Darin Adler.
      
      NamedNodeMap refs and unrefs its Element owner, so there's no need for the wrapper to keep the Element alive.
      
      Covered by fast/dom/Attr/access-after-element-destruction.html
      
      * bindings/js/JSNamedNodeMapCustom.cpp:
      * dom/NamedNodeMap.idl:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143118 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4c7487fc
    • weinig@apple.com's avatar
      Fix non-production builds. · 7bfe5eaf
      weinig@apple.com authored
      * WebKit2.xcodeproj/project.pbxproj:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143117 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7bfe5eaf
    • darin@apple.com's avatar
      Remove redundant use of inline keyword in StringHasher.h · e9c6f142
      darin@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=110036
      
      Reviewed by Geoffrey Garen.
      
      I have some other improvements for StringHasher.h, but wanted to get the simplest ones
      out of the way first.
      
      * wtf/StringHasher.h: Remove inline keyword on functions inside the class definition,
      since functions defined inside the class are automatically inline.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143116 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e9c6f142
    • akling@apple.com's avatar
      REGRESSION(r143076): Crash when calling removeNamedItem or removeNamedItemNS... · 00c87727
      akling@apple.com authored
      REGRESSION(r143076): Crash when calling removeNamedItem or removeNamedItemNS with a non-existent attribute of newly created element.
      <http://webkit.org/b/110019>
      
      Patch by Peter Nelson <peter@peterdn.com> on 2013-02-16
      Reviewed by Andreas Kling.
      
      Now checks Element::hasAttributes() before calling Element::getAttributeItemIndex().
      
      Test: http/tests/misc/acid3.html
      
      * dom/NamedNodeMap.cpp:
      (WebCore::NamedNodeMap::removeNamedItem):
      (WebCore::NamedNodeMap::removeNamedItemNS):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143115 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      00c87727
    • akling@apple.com's avatar
      Element: Devirtualize attribute synchronization functions. · 82cfd35e
      akling@apple.com authored
      <http://webkit.org/b/110033>
      
      Reviewed by Darin Adler.
      
      Devirtualize the functions that perform re-serialization of lazy attributes and give
      them "synchronize"-style names:
      
          - SVGElement::synchronizeAnimatedSVGAttribute()
          - StyledElement::synchronizeStyleAttributeInternal()
      
      * dom/Element.cpp:
      (WebCore::Element::synchronizeAllAttributes):
      (WebCore::Element::synchronizeAttribute):
      * dom/Element.h:
      * dom/StyledElement.cpp:
      (WebCore::StyledElement::synchronizeStyleAttribute):
      * dom/StyledElement.h:
      (StyledElement):
      * rendering/svg/RenderSVGResourceGradient.cpp:
      (WebCore::RenderSVGResourceGradient::applyResource):
      * rendering/svg/RenderSVGResourcePattern.cpp:
      (WebCore::RenderSVGResourcePattern::buildPattern):
      * svg/SVGElement.cpp:
      (WebCore::SVGElement::synchronizeAnimatedSVGAttribute):
      * svg/SVGElement.h:
      (SVGElement):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143114 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      82cfd35e
    • weinig@apple.com's avatar
      The Plugin.32 target does not build · fd5c2482
      weinig@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=110032
      
      Reviewed by Anders Carlsson.
      
      * PluginProcess/EntryPoint/mac/XPCService/PluginService.32/PluginService.32.Main.mm: Removed.
      This was meant to be removed already.
      
      * WebKit2.xcodeproj/project.pbxproj:
      Add Plugin.32 as dependency in All as it should be.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143113 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fd5c2482
    • akling@apple.com's avatar
      Element: Avoid unrelated attribute synchronization on other attribute access. · cb6a925a
      akling@apple.com authored
      <http://webkit.org/b/110025>
      
      Reviewed by Darin Adler.
      
      We've been extremely trigger happy with re-serializing the style attribute (and SVG animatables)
      whenever any Element attribute API was used. This patch narrows this down to (almost always)
      only synchronizing an attribute when someone specifically wants to read/update it.
      
      Also removed two more confusing ElementData accessors:
      
          - Element::elementDataWithSynchronizedAttributes()
          - Element::ensureElementDataWithSynchronizedAttributes()
      
      * dom/Element.h:
      * dom/Element.cpp:
      (WebCore::Element::hasAttributes):
      (WebCore::Element::hasEquivalentAttributes):
      (WebCore::Element::cloneAttributesFromElement):
      (WebCore::Element::synchronizeAllAttributes):
      
          Renamed updateInvalidAttributes() to synchronizeAllAttributes().
          This function should only be used when we need every single attribute to be up-to-date.
      
      (WebCore::Element::synchronizeAttribute):
      
          Broke out logic for synchronizing a specific attribute, given either a full QualifiedName
          or a localName.
      
      (WebCore::Element::setSynchronizedLazyAttribute):
      
          Don't call ensureUniqueElementData() indisciminately here. This avoids converting the attribute
          storage when re-serializing the inline style yields the same CSS text that was already in the
          style attribute.
      
      (WebCore::Element::hasAttribute):
      (WebCore::Element::hasAttributeNS):
      (WebCore::Element::getAttribute):
      (WebCore::Element::getAttributeNode):
      (WebCore::Element::getAttributeNodeNS):
      (WebCore::Element::setAttribute):
      (WebCore::Element::setAttributeNode):
      (WebCore::Element::removeAttributeNode):
      
          Only synchronize the attribute in question.
      
      * dom/Node.cpp:
      (WebCore::Node::compareDocumentPosition):
      
          Call synchronizeAllAttributes() when comparing two Attr nodes on the same Element instead
          of relying on the side-effects of another function doing this.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143112 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cb6a925a
    • darin@apple.com's avatar
      Fix WKDOMRangePrivate.h mistakes · 3e9bd7f8
      darin@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=110028
      
      Reviewed by Ryosuke Niwa.
      
      * WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:
      Added include of WKDOMRangePrivate.h.
      
      * WebProcess/InjectedBundle/API/mac/WKDOMRangePrivate.h:
      Fixed class name and include to be WKDOMRange.
      Fixed method name, _copyBundleRangeHandleRef, to match the
      name in the source file.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143111 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3e9bd7f8
    • commit-queue@webkit.org's avatar
      Fix build warnings after r139853 · 41cc8703
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=109929
      
      Patch by Seokju Kwon <seokju.kwon@gmail.com> on 2013-02-16
      Reviewed by Alexey Proskuryakov.
      
      Use UNUSED_PARAM macro to fix build warning -Wunused-parameter
      when INSPECTOR is disabled.
      
      No new tests, no behavior change.
      
      * inspector/InspectorInstrumentation.h:
      (WebCore::InspectorInstrumentation::frameStartedLoading):
      (WebCore::InspectorInstrumentation::frameStoppedLoading):
      (WebCore::InspectorInstrumentation::frameScheduledNavigation):
      (WebCore::InspectorInstrumentation::frameClearedScheduledNavigation):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143108 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      41cc8703
    • fpizlo@apple.com's avatar
      Fix indentation of Structure.h · 34cee208
      fpizlo@apple.com authored
      Rubber stamped by Mark Hahnenberg.
      
      * runtime/Structure.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143107 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      34cee208
    • commit-queue@webkit.org's avatar
      Unreviewed, rolling out r142734. · 31e57aeb
      commit-queue@webkit.org authored
      http://trac.webkit.org/changeset/142734
      https://bugs.webkit.org/show_bug.cgi?id=110018
      
      "Triggered crashes on lots of websites" (Requested by ggaren
      on #webkit).
      
      Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2013-02-16
      
      Source/WebCore:
      
      * bindings/js/JSLocationCustom.cpp:
      (WebCore::JSLocation::getOwnPropertySlotDelegate):
      
      LayoutTests:
      
      * http/tests/plugins/resources/cross-frame-object-access.html:
      * http/tests/security/cross-frame-access-callback-explicit-domain-DENY-expected.txt:
      * http/tests/security/cross-frame-access-location-get-expected.txt:
      * http/tests/security/cross-frame-access-location-get.html:
      * http/tests/security/resources/cross-frame-access.js:
      * http/tests/security/resources/cross-frame-iframe-callback-explicit-domain-DENY.html:
      * http/tests/security/resources/cross-frame-iframe-for-location-get-test.html:
      * http/tests/security/sandboxed-iframe-blocks-access-from-parent-expected.txt:
      * platform/chromium/http/tests/security/cross-frame-access-callback-explicit-domain-DENY-expected.txt: Removed.
      * platform/chromium/http/tests/security/cross-frame-access-location-get-expected.txt: Removed.
      * platform/chromium/http/tests/security/sandboxed-iframe-blocks-access-from-parent-expected.txt: Removed.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143104 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      31e57aeb
    • robert@webkit.org's avatar
      percentage top value of position:relative element not calculated using... · 3d44aefd
      robert@webkit.org authored
      percentage top value of position:relative element not calculated using parent's min-height unless height set
      https://bugs.webkit.org/show_bug.cgi?id=14762
      
      Reviewed by Julien Chaffraix.
      
      Source/WebCore:
      
      Percentage height "is calculated with respect to the height of the generated box's containing block" says
      http://www.w3.org/TR/CSS21/visudet.html#the-height-property and "If the height of the containing block is not
      specified explicitly (i.e., it depends on content height), and this element is not absolutely positioned, the
      value computes to 'auto'." So when calculating the used height of a replaced element do not crawl through ancestor
      blocks except when traversing anonymous blocks. Ensure that anonymous table cells are not skipped through though.
      
      http://www.w3.org/TR/CSS21/tables.html#height-layout adds "In CSS 2.1, the height of a cell box is the minimum
      height required by the content." This height is decided by allowing table cells to report their height as auto.
      It's not clear why http://trac.webkit.org/changeset/91242 decided it should no longer do this - doing so caused
      us to regress in our rendering of computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor.html.
      
      Tests: fast/block/percent-top-parent-respects-min-height.html
             fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor-vertical-lr.html
             fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor.html
             fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor-vertical-lr.html
             fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor.html
      
      * rendering/RenderBoxModelObject.cpp:
      (WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight):
      (WebCore):
      (WebCore::RenderBoxModelObject::relativePositionOffset):
      * rendering/RenderBoxModelObject.h:
      (RenderBoxModelObject):
      * rendering/RenderReplaced.cpp:
      (WebCore::RenderReplaced::hasReplacedLogicalHeight):
      
      LayoutTests:
      
      * fast/block/percent-top-parent-respects-min-height-expected.txt: Added.
      * fast/block/percent-top-parent-respects-min-height.html: Added.
      * fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor-expected.txt: Added.
      * fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor-vertical-lr-expected.txt: Added.
      * fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor-vertical-lr.html: Added.
      * fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor.html: Added.
      * fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor-expected.txt: Added.
      * fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor-vertical-lr-expected.txt: Added.
      * fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor-vertical-lr.html: Added.
      * fast/replaced/computed-image-width-with-percent-height-inside-table-cell-and-fixed-ancestor.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143102 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3d44aefd
    • senorblanco@chromium.org's avatar
      [skia] FEOffset should have a Skia implementation. · 5b3ca179
      senorblanco@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=109831
      
      Reviewed by James Robinson.
      
      Source/WebCore:
      
      Covered by css3/filters/effect-reference.html and -hw.html.
      
      * WebCore.gypi:
      * platform/graphics/filters/FEOffset.h:  Implement createImageFilter()
      for the Skia path.
      * platform/graphics/filters/skia/FEOffsetSkia.cpp: Added.
      (WebCore::FEOffset::createImageFilter):
      Instantiate an SkOffsetImageFilter when building the Skia DAG.
      
      LayoutTests:
      
      * css3/filters/effect-reference-hw.html:
      * css3/filters/effect-reference.html:
      * platform/chromium/TestExpectations:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143101 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5b3ca179
    • vsevik@chromium.org's avatar
      Web Inspector: Create separate project for each domain for UISourceCode based on browser resources. · 3dddcdf9
      vsevik@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=109691
      
      Reviewed by Pavel Feldman.
      
      Source/WebCore:
      
      Separate project of certain type is now created for each domain.
      UISourceCode path represents a path in the project now.
      UISourceCode uri is now calculated based on project id and path.
      It is also possible to calculate path based on projectId and URI, which is used for uiSourceCodeForURI() methods.
      
      * inspector/front-end/ScriptSnippetModel.js:
      (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
      * inspector/front-end/SimpleWorkspaceProvider.js:
      (WebInspector.SimpleProjectDelegate):
      (WebInspector.SimpleProjectDelegate.projectId):
      (WebInspector.SimpleProjectDelegate.prototype.id):
      (WebInspector.SimpleProjectDelegate.prototype.displayName):
      (WebInspector.SimpleProjectDelegate.prototype.addFile):
      (WebInspector.SimpleWorkspaceProvider):
      (WebInspector.SimpleWorkspaceProvider.splitURL):
      (WebInspector.SimpleWorkspaceProvider._pathForSplittedURL):
      (WebInspector.SimpleWorkspaceProvider.uriForURL):
      (WebInspector.SimpleWorkspaceProvider.prototype._projectDelegate):
      (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
      (WebInspector.SimpleWorkspaceProvider.prototype.addFileByName):
      (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFile):
      (WebInspector.SimpleWorkspaceProvider.prototype.removeFileByName):
      (WebInspector.SimpleWorkspaceProvider.prototype.reset):
      * inspector/front-end/UISourceCode.js:
      (WebInspector.UISourceCode.uri):
      (WebInspector.UISourceCode.path):
      (WebInspector.UISourceCode.prototype.uri):
      * inspector/front-end/Workspace.js:
      (WebInspector.Project.prototype._fileAdded):
      (WebInspector.Project.prototype._fileRemoved):
      (WebInspector.Project.prototype.uiSourceCodeForURI):
      
      LayoutTests:
      
      * inspector/debugger/live-edit-breakpoints-expected.txt:
      * inspector/debugger/live-edit-breakpoints.html:
      * inspector/uisourcecode-revisions.html:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143100 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3dddcdf9
    • ch.dumez@sisa.samsung.com's avatar
      Unreviewed build fix. · 535c0908
      ch.dumez@sisa.samsung.com authored
      Export symbol for new CString operator== operator to fix Windows build.
      
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143099 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      535c0908
  3. 15 Feb, 2013 7 commits
    • cfleizach@apple.com's avatar
      AX: Split WebAccessibilityObjectWrapper so code can be shared with iOS · 67fe1a26
      cfleizach@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=109849
      
      Reviewed by David Kilzer.
      
      Split up the WebAccessibilityObjectWrapper so that iOS can share more
      code with MacOS. I imagine over time, more code will move into this base class,
      but for now this will be a good start.
      
      A base class called WebAccessibilityObjectWrapper now exists, and Mac has a subclass
      of that. iOS will be able to do the same.
      
      * WebCore.xcodeproj/project.pbxproj:
      * accessibility/mac/AXObjectCacheMac.mm:
      (WebCore::AXObjectCache::attachWrapper):
      * accessibility/mac/WebAccessibilityObjectWrapper.h:
      * accessibility/mac/WebAccessibilityObjectWrapper.mm:
      (-[WebAccessibilityObjectWrapper detach]):
      (-[WebAccessibilityObjectWrapper attachmentView]):
      (-[WebAccessibilityObjectWrapper accessibilityObject]):
      (-[WebAccessibilityObjectWrapper accessibilityPostedNotification:]):
      (-[WebAccessibilityObjectWrapper titleTagShouldBeUsedInDescriptionField]):
      (-[WebAccessibilityObjectWrapper accessibilityTitle]):
      (-[WebAccessibilityObjectWrapper accessibilityDescription]):
      (-[WebAccessibilityObjectWrapper accessibilityHelpText]):
      * accessibility/mac/WebAccessibilityObjectWrapperMac.h: Added.
      * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: Added.
      (std):
      (-[WebAccessibilityObjectWrapperMac detach]):
      (-[WebAccessibilityObjectWrapperMac attachmentView]):
      (CFAutoreleaseHelper):
      (AXObjectIsTextMarker):
      (AXObjectIsTextMarkerRange):
      (AXTextMarkerRange):
      (AXTextMarkerRangeStart):
      (AXTextMarkerRangeEnd):
      (SearchKeyEntry):
      (createAccessibilitySearchKeyMap):
      (accessibilitySearchKeyForString):
      (textMarkerForVisiblePosition):
      (-[WebAccessibilityObjectWrapperMac textMarkerForVisiblePosition:]):
      (visiblePositionForTextMarker):
      (-[WebAccessibilityObjectWrapperMac visiblePositionForTextMarker:]):
      (visiblePositionForStartOfTextMarkerRange):
      (visiblePositionForEndOfTextMarkerRange):
      (textMarkerRangeFromMarkers):
      (AXAttributedStringRangeIsValid):
      (AXAttributeStringSetFont):
      (CreateCGColorIfDifferent):
      (AXAttributeStringSetColor):
      (AXAttributeStringSetNumber):
      (AXAttributeStringSetStyle):
      (AXAttributeStringSetBlockquoteLevel):
      (AXAttributeStringSetSpelling):
      (AXAttributeStringSetHeadingLevel):
      (AXAttributeStringSetElement):
      (AXAttributedStringAppendText):
      (nsStringForReplacedNode):
      (-[WebAccessibilityObjectWrapperMac doAXAttributedStringForTextMarkerRange:]):
      (textMarkerRangeFromVisiblePositions):
      (-[WebAccessibilityObjectWrapperMac textMarkerRangeFromVisiblePositions:endPosition:]):
      (-[WebAccessibilityObjectWrapperMac accessibilityActionNames]):
      (-[WebAccessibilityObjectWrapperMac additionalAccessibilityAttributeNames]):
      (-[WebAccessibilityObjectWrapperMac accessibilityAttributeNames]):
      (-[WebAccessibilityObjectWrapperMac visiblePositionRangeForTextMarkerRange:]):
      (-[WebAccessibilityObjectWrapperMac renderWidgetChildren]):
      (-[WebAccessibilityObjectWrapperMac remoteAccessibilityParentObject]):
      (convertToVector):
      (convertToNSArray):
      (-[WebAccessibilityObjectWrapperMac textMarkerRangeForSelection]):
      (-[WebAccessibilityObjectWrapperMac position]):
      (createAccessibilityRoleMap):
      (roleValueToNSString):
      (-[WebAccessibilityObjectWrapperMac role]):
      (-[WebAccessibilityObjectWrapperMac subrole]):
      (-[WebAccessibilityObjectWrapperMac roleDescription]):
      (-[WebAccessibilityObjectWrapperMac scrollViewParent]):
      (-[WebAccessibilityObjectWrapperMac titleTagShouldBeUsedInDescriptionField]):
      (-[WebAccessibilityObjectWrapperMac accessibilityTitle]):
      (-[WebAccessibilityObjectWrapperMac accessibilityDescription]):
      (-[WebAccessibilityObjectWrapperMac accessibilityHelpText]):
      (-[WebAccessibilityObjectWrapperMac accessibilityAttributeValue:]):
      (-[WebAccessibilityObjectWrapperMac accessibilityFocusedUIElement]):
      (-[WebAccessibilityObjectWrapperMac accessibilityHitTest:]):
      (-[WebAccessibilityObjectWrapperMac accessibilityIsAttributeSettable:]):
      (-[WebAccessibilityObjectWrapperMac accessibilityIsIgnored]):
      (-[WebAccessibilityObjectWrapperMac accessibilityParameterizedAttributeNames]):
      (-[WebAccessibilityObjectWrapperMac accessibilityPerformPressAction]):
      (-[WebAccessibilityObjectWrapperMac accessibilityPerformIncrementAction]):
      (-[WebAccessibilityObjectWrapperMac accessibilityPerformDecrementAction]):
      (-[WebAccessibilityObjectWrapperMac accessibilityPerformShowMenuAction]):
      (-[WebAccessibilityObjectWrapperMac accessibilityShowContextMenu]):
      (-[WebAccessibilityObjectWrapperMac accessibilityPerformAction:]):
      (-[WebAccessibilityObjectWrapperMac accessibilitySetValue:forAttribute:]):
      (rendererForView):
      (-[WebAccessibilityObjectWrapperMac _accessibilityParentForSubview:]):
      (-[WebAccessibilityObjectWrapperMac accessibilityActionDescription:]):
      (-[WebAccessibilityObjectWrapperMac doAXAttributedStringForRange:]):
      (-[WebAccessibilityObjectWrapperMac _convertToNSRange:]):
      (-[WebAccessibilityObjectWrapperMac _indexForTextMarker:]):
      (-[WebAccessibilityObjectWrapperMac _textMarkerForIndex:]):
      (-[WebAccessibilityObjectWrapperMac doAXRTFForRange:]):
      (-[WebAccessibilityObjectWrapperMac accessibilityAttributeValue:forParameter:]):
      (-[WebAccessibilityObjectWrapperMac accessibilitySupportsOverriddenAttributes]):
      (-[WebAccessibilityObjectWrapperMac accessibilityShouldUseUniqueId]):
      (-[WebAccessibilityObjectWrapperMac accessibilityIndexOfChild:]):
      (-[WebAccessibilityObjectWrapperMac accessibilityArrayAttributeCount:]):
      (-[WebAccessibilityObjectWrapperMac accessibilityArrayAttributeValues:index:maxCount:]):
      ([WebAccessibilityObjectWrapperMac accessibilitySetShouldRepostNotifications:]):
      (-[WebAccessibilityObjectWrapperMac accessibilityPostedNotification:]):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143098 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      67fe1a26
    • fpizlo@apple.com's avatar
      Structure should be more methodical about the relationship between m_offset and m_propertyTable · 31be38f6
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=109978
      
      Reviewed by Mark Hahnenberg.
              
      Allegedly, the previous relationship was that either m_propertyTable or m_offset
      would be set, and if m_propertyTable was not set you could rebuild it.  In reality,
      we would sometimes "reset" both: some transitions wouldn't set m_offset, and other
      transitions would clear the previous structure's m_propertyTable.  So, in a
      structure transition chain of A->B->C you could have:
      
      A transitions to B: B doesn't copy m_offset but does copy m_propertyTable, because
          that seemed like a good idea at the time (this was a common idiom in the code).
      B transitions to C: C steals B's m_propertyTable, leaving B with neither a
          m_propertyTable nor a m_offset.
      
      Then we would ask for the size of the property storage of B and get the answer
      "none".  That's not good.
      
      Now, there is a new relationship, which, hopefully, should fix things: m_offset is
      always set and always refers to the maximum offset ever used by the property table.
      From this, you can infer both the inline and out-of-line property size, and
      capacity.  This is accomplished by having PropertyTable::add() take a
      PropertyOffset reference, which must be Structure::m_offset.  It will update this
      offset.  As well, all transitions now copy m_offset.  And we frequently assert
      (using RELEASE_ASSERT) that the m_offset matches what m_propertyTable would tell
      you.  Hence if you ever modify the m_propertyTable, you'll also update the offset.
      If you ever copy the property table, you'll also copy the offset.  Life should be
      good, I think.
      
      * runtime/PropertyMapHashTable.h:
      (JSC::PropertyTable::add):
      * runtime/Structure.cpp:
      (JSC::Structure::materializePropertyMap):
      (JSC::Structure::addPropertyTransition):
      (JSC::Structure::removePropertyTransition):
      (JSC::Structure::changePrototypeTransition):
      (JSC::Structure::despecifyFunctionTransition):
      (JSC::Structure::attributeChangeTransition):
      (JSC::Structure::toDictionaryTransition):
      (JSC::Structure::sealTransition):
      (JSC::Structure::freezeTransition):
      (JSC::Structure::preventExtensionsTransition):
      (JSC::Structure::nonPropertyTransition):
      (JSC::Structure::flattenDictionaryStructure):
      (JSC::Structure::checkConsistency):
      (JSC::Structure::putSpecificValue):
      (JSC::Structure::createPropertyMap):
      (JSC::PropertyTable::checkConsistency):
      * runtime/Structure.h:
      (JSC):
      (JSC::Structure::putWillGrowOutOfLineStorage):
      (JSC::Structure::outOfLineCapacity):
      (JSC::Structure::outOfLineSize):
      (JSC::Structure::isEmpty):
      (JSC::Structure::materializePropertyMapIfNecessary):
      (JSC::Structure::materializePropertyMapIfNecessaryForPinning):
      (Structure):
      (JSC::Structure::checkOffsetConsistency):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143097 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      31be38f6
    • benjamin@webkit.org's avatar
      [Mac] remove wkCaptionAppearance from WebKitSystemInterface · 5ff01304
      benjamin@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=109996
      
      Patch by Eric Carlson <eric.carlson@apple.com> on 2013-02-15
      Reviewed by Simon Fraser.
      
      Source/WebCore: 
      
      * platform/mac/WebCoreSystemInterface.h:
      * platform/mac/WebCoreSystemInterface.mm:
      
      Source/WebKit/mac: 
      
      * WebCoreSupport/WebSystemInterface.mm:
      (InitWebCoreSystemInterface):
      
      Source/WebKit2: 
      
      * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
      (InitWebCoreSystemInterface):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143096 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5ff01304
    • commit-queue@webkit.org's avatar
      Unreviewed, rolling out r143088. · 04402ce5
      commit-queue@webkit.org authored
      http://trac.webkit.org/changeset/143088
      https://bugs.webkit.org/show_bug.cgi?id=110000
      
      Breaks the build (Requested by dgorbik on #webkit).
      
      Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2013-02-15
      
      Source/WebCore:
      
      * platform/mac/WebCoreSystemInterface.h:
      * platform/mac/WebCoreSystemInterface.mm:
      
      Source/WebKit/mac:
      
      * WebCoreSupport/WebSystemInterface.mm:
      (InitWebCoreSystemInterface):
      
      Source/WebKit2:
      
      * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
      (InitWebCoreSystemInterface):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143095 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      04402ce5
    • crogers@google.com's avatar
      Enhance AudioBus copyFrom() and sumFrom() to be able to handle discrete and... · 1ce0c5b3
      crogers@google.com authored
      Enhance AudioBus copyFrom() and sumFrom() to be able to handle discrete and speakers up and down-mixing
      https://bugs.webkit.org/show_bug.cgi?id=109983
      
      Reviewed by Kenneth Russell.
      
      The Web Audio spec has a more detailed explanation for how channels are to be up and down-mixed:
      https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#UpMix
      
      This patch adds the initial support for handling ChannelInterpretation, although no
      new JS API is yet implemented.
      
      No new tests since no new APIs have yet been exposed.
      
      * platform/audio/AudioBus.cpp:
      (WebCore::AudioBus::copyFrom):
      (WebCore):
      (WebCore::AudioBus::sumFrom):
      (WebCore::AudioBus::speakersCopyFrom):
      (WebCore::AudioBus::speakersSumFrom):
      (WebCore::AudioBus::discreteCopyFrom):
      (WebCore::AudioBus::discreteSumFrom):
      * platform/audio/AudioBus.h:
      (AudioBus):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143094 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1ce0c5b3
    • mrobinson@webkit.org's avatar
      [GTK] Spread the gyp build files throughout the tree · f7e20b15
      mrobinson@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=109960
      
      Reviewed by Dirk Pranke.
      
      Source/JavaScriptCore:
      
      * JavaScriptCore.gyp/JavaScriptCoreGTK.gyp: Renamed from Source/WebKit/gtk/gyp/JavaScriptCore.gyp.
      * JavaScriptCore.gyp/generate-derived-sources.sh: Renamed from Source/WebKit/gtk/gyp/generate-derived-sources.sh.
      
      Source/WebKit/gtk:
      
      * gyp/Configuration.gypi.in: Remove the 'Source', since now it cannot be shared.
      * gyp/run-gyp: Update the path to the JavaScriptCore gypfile.
      
      Source/WTF:
      
      * WTF.gyp/WTFGTK.gyp: Renamed from Source/WebKit/gtk/gyp/WTF.gyp.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143093 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f7e20b15
    • tony@chromium.org's avatar
      Padding and border changes doesn't trigger relayout of children · 5ffe0bc3
      tony@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=109639
      
      Reviewed by Kent Tamura.
      
      Source/WebCore:
      
      In RenderBlock::layoutBlock, we only relayout our children if our logical width
      changes. This misses cases where our logical width doesn't change (i.e., padding
      or border changes), but our content width does change.
      
      Also convert the needsLayout ASSERT into the if statement. This is because
      RenderScrollbarPart can change border widths and not need a layout if the scrollbar
      doesn't have a parent. In this case, we don't need to set any children for layout.
      
      This is a more general case of bug 104997.
      
      Test: fast/block/dynamic-padding-border.html
      
      * rendering/RenderBox.cpp:
      (WebCore::borderOrPaddingLogicalWidthChanged): Only check if the logical width changed.
      (WebCore::RenderBox::styleDidChange): Drop the border-box condition since this can happen
      even without border-box box sizing.
      
      LayoutTests:
      
      * fast/block/dynamic-padding-border-expected.txt: Added.
      * fast/block/dynamic-padding-border.html: Added.
      * fast/table/border-collapsing/cached-change-row-border-width-expected.txt: We should have been relaying
      out the table when the border changed. The pixel results in this case is the same, but the
      render tree shows the difference.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143092 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5ffe0bc3