1. 01 Oct, 2013 7 commits
    • jer.noble@apple.com's avatar
      Unreviewed build fix; The addedFunction and removedFunction arguments to... · 1c81affb
      jer.noble@apple.com authored
      Unreviewed build fix; The addedFunction and removedFunction arguments to determineChangedTracksFromNewTracksAndOldItems
      were reversed, exposing an underlying, existing bug in AudioTrackPrivate and VideoTrack private. Give a default (null)
      value to AudioTrackPrivate::m_client and VideoTrackPrivate::m_client and fix the ordering of arguments in
      determineChangedTracksFromNewTracksAndOldItems.
      
      * platform/graphics/AudioTrackPrivate.h:
      (WebCore::AudioTrackPrivate::AudioTrackPrivate):
      * platform/graphics/VideoTrackPrivate.h:
      (WebCore::VideoTrackPrivate::VideoTrackPrivate):
      * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
      (WebCore::determineChangedTracksFromNewTracksAndOldItems):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156726 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1c81affb
    • jer.noble@apple.com's avatar
      [Mac] Add support for VideoTrack to MediaPlayerPrivateAVFObjC · c5046445
      jer.noble@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=122122
      
      Reviewed by Eric Carlson.
      
      Source/WebCore:
      
      Test: media/track/video-track.html
      
      Refactor the methods which query AVAssetTrack and AVPlayerItemTrack into an Impl class, and
      use that class to reset the properties of both AudioTrackAVFObjC and the new VideoTrackAVFObjC.
      
      Add new files to project:
      * WebCore.xcodeproj/project.pbxproj:
      
      Add the new implementation class, shared by AudioTrackAVFObjC and VideoTrackAVFObjC:
      * platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.h: Added.
      (WebCore::AVTrackPrivateAVFObjCImpl::create): Simple factory.
      (WebCore::AVTrackPrivateAVFObjCImpl::playerItemTrack): Simple getter.
      * platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm: Added.
      (WebCore::AVTrackPrivateAVFObjCImpl::AVTrackPrivateAVFObjCImpl): Simple constructor.
      (WebCore::AVTrackPrivateAVFObjCImpl::enabled): Pass to AVPlayerItemTrack.
      (WebCore::AVTrackPrivateAVFObjCImpl::setEnabled): Ditto.
      (WebCore::AVTrackPrivateAVFObjCImpl::audioKind): Distinguish between Alternative and Main content.
      (WebCore::AVTrackPrivateAVFObjCImpl::videoKind): Distinguish between Alternative, Main, Caption,
          and Description content.
      (WebCore::AVTrackPrivateAVFObjCImpl::id): Pass to AVAssetTrack.
      (WebCore::AVTrackPrivateAVFObjCImpl::label): Retrieve the Title metadata in the user's preferred
          language.
      (WebCore::AVTrackPrivateAVFObjCImpl::language): Pass to languageForAVAssetTrack.
      (WebCore::AVTrackPrivateAVFObjCImpl::languageForAVAssetTrack): Moved from AudioTrackPrivateAVFObjC.
      * platform/graphics/avfoundation/VideoTrackPrivateAVF.h: Copied from Source/WebCore/platform/graphics/avfoundation/AudioTrackPrivateAVF.h.
      (WebCore::VideoTrackPrivateAVF::kind): Simple getter.
      (WebCore::VideoTrackPrivateAVF::id): Ditto.
      (WebCore::VideoTrackPrivateAVF::label): Ditto.
      (WebCore::VideoTrackPrivateAVF::language): Ditto.
      (WebCore::VideoTrackPrivateAVF::setKind): Simple setter.
      (WebCore::VideoTrackPrivateAVF::setId): Ditto.
      (WebCore::VideoTrackPrivateAVF::setLabel): Ditto.
      (WebCore::VideoTrackPrivateAVF::setLanguage): Ditto.
      (WebCore::VideoTrackPrivateAVF::VideoTrackPrivateAVF): Simple constructor.
      * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.h:
      * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:
      (WebCore::AudioTrackPrivateAVFObjC::AudioTrackPrivateAVFObjC): Create a AVTrackPrivateAVFObjCImpl.
      (WebCore::AudioTrackPrivateAVFObjC::resetPropertiesFromTrack): Retrieve properties from m_impl.
      (WebCore::AudioTrackPrivateAVFObjC::setPlayerItemTrack): Create a new AVTrackPrivateAVFObjCImpl.
      (WebCore::AudioTrackPrivateAVFObjC::playerItemTrack): Pass to m_impl.
      (WebCore::AudioTrackPrivateAVFObjC::setEnabled): Ditto.
      * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
      * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
      (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Refactor implementation into
          template method determineChangedTracksFromNewTracksAndOldItems().
      (WebCore::determineChangedTracksFromNewTracksAndOldItems): Refactored.
      (WebCore::MediaPlayerPrivateAVFoundationObjC::updateAudioTracks): Pass to determineChangedTracksFromNewTracksAndOldItems.
      (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks): Ditto.
      (WebCore::MediaPlayerPrivateAVFoundationObjC::languageOfPrimaryAudioTrack): Changed class hosting
          languageForAVAssetTrack.
      * platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp: Added.
      (WebCore::VideoTrackPrivateAVFObjC::VideoTrackPrivateAVFObjC): Create a AVTrackPrivateAVFObjCImpl.
      (WebCore::VideoTrackPrivateAVFObjC::resetPropertiesFromTrack): Retrieve properties from m_impl.
      (WebCore::VideoTrackPrivateAVFObjC::setPlayerItemTrack): Create a new AVTrackPrivateAVFObjCImpl.
      (WebCore::VideoTrackPrivateAVFObjC::playerItemTrack): Pass to m_impl.
      (WebCore::VideoTrackPrivateAVFObjC::setSelected): Ditto.
      * platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.h: Added.
      (WebCore::VideoTrackPrivateAVFObjC::create): Simple factory.
      
      LayoutTests:
      
      * media/track/video-track-expected.txt: Added.
      * media/track/video-track.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156722 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c5046445
    • commit-queue@webkit.org's avatar
      Center misspelling dots across width of word · e3e46d22
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=122046
      
      Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2013-10-01
      Reviewed by Darin Adler.
      
      Source/WebCore:
      
      Test: editing/spelling/spelling.html
      
      * platform/graphics/GraphicsContext.h:
      * platform/graphics/mac/GraphicsContextMac.mm:
      (WebCore::GraphicsContext::drawLineForDocumentMarker):
      
      LayoutTests:
      
      This patch only rebaselines a single test. I would have rebaselined
      the rest of the tests, but they seem to be affected by
      webkit.org/b/122146. I don't want to commit incorrect expected results.
      
      * platform/mac/editing/spelling/spelling-expected.png:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156716 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e3e46d22
    • commit-queue@webkit.org's avatar
      [GStreamer] Support "chapter" text tracks · ab2cf3d7
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=122000
      
      Patch by Brendan Long <b.long@cablelabs.com> on 2013-10-01
      Reviewed by Eric Carlson.
      
      Source/WebCore:
      
      Test: media/track/in-band/track-in-band-mkv-chapters.html
      
      * platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h: New class, needed for cues that aren't associated with GstPads.
      * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
      (WebCore::MediaPlayerPrivateGStreamer::handleMessage): Check for table of contents messages.
      (WebCore::MediaPlayerPrivateGStreamer::processTableOfContents): Parse table of contents messages into text tracks.
      (WebCore::MediaPlayerPrivateGStreamer::processTableOfContentsEntry): Recursive method for parsing all of the TOC entries.
      * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Add the processTableOfContents functions.
      
      LayoutTests:
      
      * media/content/counting-subtitled-srt.mkv: Added chapters metadata.
      * media/track/in-band/track-in-band-mkv-chapters-expected.txt: New test, similar to cues-added-one, but uses "chapters" track.
      * media/track/in-band/track-in-band-mkv-chapters.html: Same.
      * media/in-band-cues.js: Updated tests to handle the new "chapters" track.
      * media/track/in-band/track-in-band-kate-ogg-cues-added-once-expected.txt: Same.
      * media/track/in-band/track-in-band-kate-ogg-cues-added-once.html: Same.
      * media/track/in-band/track-in-band-kate-ogg-mode-expected.txt: Same.
      * media/track/in-band/track-in-band-kate-ogg-mode.html: Same.
      * media/track/in-band/track-in-band-kate-ogg-style-expected.txt: Same.
      * media/track/in-band/track-in-band-kate-ogg-track-order-expected.txt: Same.
      * media/track/in-band/track-in-band-kate-ogg-track-order.html: Same.
      * media/track/in-band/track-in-band-srt-mkv-cues-added-once-expected.txt: Same.
      * media/track/in-band/track-in-band-srt-mkv-cues-added-once.html: Same.
      * media/track/in-band/track-in-band-srt-mkv-kind-expected.txt: Same.
      * media/track/in-band/track-in-band-srt-mkv-kind.html: Same.
      * media/track/in-band/track-in-band-srt-mkv-language-expected.txt: Same.
      * media/track/in-band/track-in-band-srt-mkv-language.html: Same.
      * media/track/in-band/track-in-band-srt-mkv-mode-expected.txt: Same.
      * media/track/in-band/track-in-band-srt-mkv-mode.html: Same.
      * media/track/in-band/track-in-band-srt-mkv-style-expected.txt: Same.
      * media/track/in-band/track-in-band-srt-mkv-track-order-expected.txt: Same.
      * media/track/in-band/track-in-band-srt-mkv-track-order.html: Same.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156713 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ab2cf3d7
    • allan.jensen@digia.com's avatar
      [Texmap] CSS filter not working on software composited layers · 48545b58
      allan.jensen@digia.com authored
      https://bugs.webkit.org/show_bug.cgi?id=122159
      
      Reviewed by Noam Rosenthal.
      
      Tell the rendering layer we do not support CSS filters when we do not. This
      will make RenderLayer fall back to using its own software implementation.
      
      * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
      (WebCore::GraphicsLayerTextureMapper::setFilters):
      * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
      (WebCore::BitmapTextureImageBuffer::applyFilters):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156710 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      48545b58
    • darin@apple.com's avatar
      Try to fix AVFoundation crashes seen on Lion bot. · 4fb2cbf7
      darin@apple.com authored
      * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:
      Four AVFoundation string constants used in this file were new to 10.8.
      For older versions of OS X, use hard-coded string constants instead.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156703 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4fb2cbf7
    • ryuan.choi@samsung.com's avatar
      Build fix for EFL, Qt, Gtk port after r156688 · e46de4d5
      ryuan.choi@samsung.com authored
      https://bugs.webkit.org/show_bug.cgi?id=122139
      
      Reviewed by Anders Carlsson.
      
      Get rid of more uses of OwnPtr and PassOwnPtr.
      
      Source/WebCore:
      
      * platform/graphics/surfaces/GraphicsSurface.cpp:
      (WebCore::GraphicsSurface::beginPaint):
      * platform/graphics/surfaces/GraphicsSurface.h:
      * platform/graphics/surfaces/efl/GraphicsSurfaceCommon.cpp:
      (WebCore::GraphicsSurface::platformBeginPaint):
      * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
      (WebCore::GraphicsSurface::platformBeginPaint):
      * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
      (WebCore::GraphicsSurface::platformBeginPaint):
      
      Source/WebKit2:
      
      * Shared/API/c/cairo/WKImageCairo.cpp:
      (WKImageCreateFromCairoSurface):
      * Shared/API/c/qt/WKImageQt.cpp:
      (WKImageCreateFromQImage):
      * Shared/CoordinatedGraphics/WebCoordinatedSurface.cpp:
      (WebKit::WebCoordinatedSurface::createGraphicsContext):
      (WebKit::WebCoordinatedSurface::paintToSurface):
      * Shared/CoordinatedGraphics/WebCoordinatedSurface.h:
      * Shared/cairo/ShareableBitmapCairo.cpp:
      (WebKit::ShareableBitmap::createGraphicsContext):
      * Shared/gtk/ArgumentCodersGtk.cpp:
      (CoreIPC::encodeImage):
      * UIProcess/API/gtk/PageClientImpl.cpp:
      (WebKit::PageClientImpl::createDrawingAreaProxy):
      * UIProcess/API/gtk/PageClientImpl.h:
      * UIProcess/CoordinatedGraphics/WebView.cpp:
      (WebKit::WebView::createDrawingAreaProxy):
      * UIProcess/CoordinatedGraphics/WebView.h:
      * WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp:
      (WebKit::convertCairoSurfaceToShareableBitmap):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156700 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e46de4d5
  2. 30 Sep, 2013 4 commits
    • commit-queue@webkit.org's avatar
      Don't attempt to destroy decoded frame if a BitmapImage doesn't have encoded raw data. · 18b1da9f
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=122115
      
      Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2013-09-30
      Reviewed by Daniel Bates.
      
      With BitmapImage::create(PassNativeImagePtr, ImageObserver*), a BitmapImage could be created by
      passing a native image.  If this image is added to memory cache, we shouldn't attempt to destroy
      its decoded frames since there is no encoded raw data and we won't be able to reconstruct the image again.
      
      No new tests for now. Currently there isn't a code path to add to the memory cache a BitmapImage
      that was created by adopting a native image. We'll add such a code path in a subsequent patch.
      
      * platform/graphics/BitmapImage.cpp:
      (WebCore::BitmapImage::destroyDecodedDataIfNecessary):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156681 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      18b1da9f
    • antti@apple.com's avatar
      Remove FontTranscoder · 7530ae1f
      antti@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=122088
      
      Reviewed by Andreas Kling.
      
      This overly generic class just implements mapping of backslash to yen symbol for some legacy Japanese fonts.
      
      * CMakeLists.txt:
      * GNUmakefile.am:
      * GNUmakefile.list.am:
      * Target.pri:
      * WebCore.pri:
      * WebCore.vcxproj/WebCore.vcxproj:
      * WebCore.xcodeproj/project.pbxproj:
      * platform/graphics/Font.cpp:
      (WebCore::useBackslashAsYenSignForFamily):
              
          Move the family set to Font.cpp.
      
      (WebCore::Font::Font):
      (WebCore::Font::operator=):
      (WebCore::Font::update):
              
          Keep the cached boolean up to date.
      
      * platform/graphics/Font.h:
      (WebCore::Font::useBackslashAsYenSymbol):
              
          Use descriptive name instead of talking about "transcoding".
      
      * platform/text/transcoder: Removed.
      * platform/text/transcoder/FontTranscoder.cpp: Removed.
      * platform/text/transcoder/FontTranscoder.h: Removed.
      * rendering/RenderText.cpp:
      (WebCore::RenderText::RenderText):
      (WebCore::RenderText::computeUseBackslashAsYenSymbol):
              
          Rename for clarity. 
          Avoid unnecessary hash lookup, just check the cached bit in Font.
      
      (WebCore::RenderText::styleDidChange):
      (WebCore::RenderText::setTextInternal):
              
          "Transcoding" here was just a simple character replacement.
      
      (WebCore::RenderText::textWithoutConvertingBackslashToYenSymbol):
              
          Renamed.
      
      * rendering/RenderText.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156657 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7530ae1f
    • jer.noble@apple.com's avatar
      Unreviewed Mac-Lion build fix. · b8dfb66a
      jer.noble@apple.com authored
      Use metadataItemsFromArray:withLocale: instead of
      metadataItemsFromArray:filteredAndSortedAccordingToPreferredLanguages:
      on Lion and earlier.
      
      * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:
      (WebCore::AudioTrackPrivateAVFObjC::resetPropertiesFromTrack):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156653 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b8dfb66a
    • jer.noble@apple.com's avatar
      [Mac] Add AudioTrack support to MediaPlayerPrivateAVFObC. · 876b8519
      jer.noble@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=122043
      
      Reviewed by Eric Carlson.
      
      Source/WebCore:
      
      Test: media/track/audio-track.html
      
      Add a new class AudioTrackPrivateAVF and subclass AudioTrackPrivateAVFObjC
      which are backed by a AVPlayerItemTrack. Create one of these tracks when
      we are notified that the list of available tracks has changed.
      
      * WebCore.xcodeproj/project.pbxproj:
      * html/track/AudioTrack.cpp:
      (WebCore::AudioTrack::setEnabled): Pass through to the AudioTrackPrivate
          so that the underlying media track can be (dis|en)abled.
      * platform/graphics/avfoundation/AudioTrackPrivateAVF.h: Added.
      (WebCore::AudioTrackPrivateAVF::kind): Simple getter.
      (WebCore::AudioTrackPrivateAVF::id): Ditto.
      (WebCore::AudioTrackPrivateAVF::label): Ditto.
      (WebCore::AudioTrackPrivateAVF::language): Ditto.
      (WebCore::AudioTrackPrivateAVF::setKind): Simple Setter.
      (WebCore::AudioTrackPrivateAVF::setId): Ditto.
      (WebCore::AudioTrackPrivateAVF::setLabel): Ditto.
      (WebCore::AudioTrackPrivateAVF::setLanguage): Ditto.
      (WebCore::AudioTrackPrivateAVF::AudioTrackPrivateAVF): Simple constructor.
      * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.h: Added.
      (WebCore::AudioTrackPrivateAVFObjC::create): Simple factory.
      (WebCore::AudioTrackPrivateAVFObjC::playerItemTrack): Simple getter.
      * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm: Added.
      (WebCore::AudioTrackPrivateAVFObjC::AudioTrackPrivateAVFObjC): Call resetPropertiesFromTrack.
      (WebCore::AudioTrackPrivateAVFObjC::resetPropertiesFromTrack): Fill out the values from
          the associated AVPlayerItemTrack and its AVAssetTrack.
      (WebCore::AudioTrackPrivateAVFObjC::setPlayerItemTrack): Call resetPropertiesFromTrack.
      (WebCore::AudioTrackPrivateAVFObjC::setEnabled): (En|Dis)able the AVPlayerItemTrack.
      (WebCore::AudioTrackPrivateAVFObjC::languageForAVAssetTrack): Refactored from
          MediaPlayerPrivateAVFoundationObjC::languageOfPrimaryAudioTrack.
      * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
      * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
      (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Determine which tracks
          have been added or removed and notify the clients accordingly.
      (WebCore::MediaPlayerPrivateAVFoundationObjC::languageOfPrimaryAudioTrack): Refactor into
          AudioTrackPrivateAVFObjC::languageForAVAssetTrack.
      
      LayoutTests:
      
      * media/track/audio-track-expected.txt: Added.
      * media/track/audio-track.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156652 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      876b8519
  3. 29 Sep, 2013 1 commit
    • darin@apple.com's avatar
      Use RenderElement instead of RenderObject in many places · 8cdf7124
      darin@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=122078
      
      Reviewed by Andreas Kling.
      
      Source/ThirdParty/ANGLE:
      
      * ANGLE.xcodeproj/project.pbxproj: Let Xcode do its thing to this file.
      
      Source/WebCore:
      
      * WebCore.exp.in: Updated for name changes.
      
      * dom/ContainerNode.h: Moved renderer() here from Element.
      * dom/Element.h: Moved renderer() from here to ContainerNode.
      * render/RenderElement.h: Moved renderer() from Element to ContainerNode.
      
      * accessibility/AccessibilityImageMapLink.cpp:
      (WebCore::AccessibilityImageMapLink::imageMapLinkRenderer):
      (WebCore::AccessibilityImageMapLink::detachFromParent):
      (WebCore::AccessibilityImageMapLink::elementPath):
      (WebCore::AccessibilityImageMapLink::elementRect):
      * accessibility/AccessibilityImageMapLink.h:
      * accessibility/AccessibilityRenderObject.cpp:
      (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
      * bindings/objc/DOM.mm:
      (-[DOMElement image]):
      (-[DOMElement _font]):
      (-[DOMElement _imageTIFFRepresentation]):
      * css/CSSCanvasValue.cpp:
      (WebCore::CSSCanvasValue::canvasChanged):
      (WebCore::CSSCanvasValue::canvasResized):
      (WebCore::CSSCanvasValue::canvasDestroyed):
      (WebCore::CSSCanvasValue::fixedSize):
      (WebCore::CSSCanvasValue::image):
      * css/CSSCanvasValue.h:
      * css/CSSComputedStyleDeclaration.cpp:
      (WebCore::computeRenderStyleForProperty):
      * css/CSSCrossfadeValue.cpp:
      (WebCore::subimageKnownToBeOpaque):
      (WebCore::CSSCrossfadeValue::fixedSize):
      (WebCore::CSSCrossfadeValue::knownToBeOpaque):
      (WebCore::CSSCrossfadeValue::image):
      (WebCore::CSSCrossfadeValue::crossfadeChanged):
      * css/CSSCrossfadeValue.h:
      * css/CSSFilterImageValue.cpp:
      (WebCore::CSSFilterImageValue::fixedSize):
      (WebCore::CSSFilterImageValue::knownToBeOpaque):
      (WebCore::CSSFilterImageValue::image):
      (WebCore::CSSFilterImageValue::filterImageChanged):
      * css/CSSFilterImageValue.h:
      * css/CSSFontSelector.cpp:
      * css/CSSGradientValue.cpp:
      (WebCore::CSSGradientValue::image):
      (WebCore::CSSGradientValue::addStops):
      (WebCore::CSSGradientValue::knownToBeOpaque):
      (WebCore::CSSLinearGradientValue::createGradient):
      (WebCore::CSSRadialGradientValue::createGradient):
      * css/CSSGradientValue.h:
      (WebCore::CSSGradientValue::fixedSize):
      * css/CSSImageGeneratorValue.cpp:
      (WebCore::CSSImageGeneratorValue::addClient):
      (WebCore::CSSImageGeneratorValue::removeClient):
      (WebCore::CSSImageGeneratorValue::image):
      (WebCore::CSSImageGeneratorValue::fixedSize):
      (WebCore::CSSImageGeneratorValue::knownToBeOpaque):
      * css/CSSImageGeneratorValue.h:
      (WebCore::CSSImageGeneratorValue::clients):
      * css/CSSImageValue.cpp:
      (WebCore::CSSImageValue::knownToBeOpaque):
      * css/CSSImageValue.h:
      * css/DeprecatedStyleBuilder.cpp:
      * dom/DocumentMarkerController.cpp:
      (WebCore::DocumentMarkerController::removeMarkersFromList):
      (WebCore::DocumentMarkerController::repaintMarkers):
      * dom/Element.cpp:
      (WebCore::localZoomForRenderer):
      (WebCore::adjustForLocalZoom):
      (WebCore::Element::offsetParent):
      (WebCore::Element::updateExistingPseudoElement):
      * dom/ElementRareData.h:
      (WebCore::ElementRareData::create):
      (WebCore::ElementRareData::ElementRareData):
      * dom/Node.cpp:
      (WebCore::Node::ensureRareData):
      * editing/DeleteButtonController.cpp:
      (WebCore::isDeletableElement):
      * editing/Editor.cpp:
      (WebCore::Editor::hasBidiSelection):
      (WebCore::Editor::baseWritingDirectionForSelectionStart):
      * editing/EditorCommand.cpp:
      (WebCore::verticalScrollDistance):
      * editing/htmlediting.cpp:
      (WebCore::directionOfEnclosingBlock):
      * editing/ios/EditorIOS.mm:
      (WebCore::Editor::fontForSelection):
      (WebCore::getImage):
      * editing/mac/EditorMac.mm:
      (WebCore::Editor::fontForSelection):
      (WebCore::getImage):
      * editing/markup.cpp:
      * html/HTMLAreaElement.cpp:
      (WebCore::HTMLAreaElement::computePath):
      (WebCore::HTMLAreaElement::computeRect):
      (WebCore::HTMLAreaElement::setFocus):
      * html/HTMLAreaElement.h:
      * html/HTMLCanvasElement.cpp:
      (WebCore::HTMLCanvasElement::reset):
      * html/HTMLElement.cpp:
      (WebCore::HTMLElement::setInnerText):
      * html/HTMLFormControlElement.cpp:
      (WebCore::updateFromElementCallback):
      * html/HTMLFormElement.cpp:
      (WebCore::HTMLFormElement::rendererIsNeeded):
      * html/HTMLFrameOwnerElement.h:
      * html/HTMLImageElement.cpp:
      (WebCore::HTMLImageElement::x):
      (WebCore::HTMLImageElement::y):
      (WebCore::HTMLImageElement::willRespondToMouseClickEvents):
      * html/HTMLMapElement.cpp:
      * html/HTMLMediaElement.cpp:
      (WebCore::HTMLMediaElement::defaultEventHandler):
      * html/HTMLMeterElement.cpp:
      (WebCore::HTMLMeterElement::renderMeter):
      * html/HTMLOptionElement.cpp:
      (WebCore::HTMLOptionElement::didRecalcStyle):
      * html/HTMLPlugInElement.cpp:
      (WebCore::HTMLPlugInElement::willRespondToMouseClickEvents):
      (WebCore::HTMLPlugInElement::defaultEventHandler):
      (WebCore::HTMLPlugInElement::isKeyboardFocusable):
      * html/HTMLPlugInImageElement.cpp:
      (WebCore::HTMLPlugInImageElement::defaultEventHandler):
      * html/HTMLProgressElement.cpp:
      (WebCore::HTMLProgressElement::renderProgress):
      * html/HTMLSelectElement.cpp:
      (WebCore::HTMLSelectElement::scrollToSelection):
      (WebCore::HTMLSelectElement::setOptionsChangedOnRenderer):
      (WebCore::HTMLSelectElement::selectOption):
      * html/HTMLTableCellElement.cpp:
      (WebCore::HTMLTableCellElement::cellAbove):
      * html/HTMLTextFormControlElement.cpp:
      (WebCore::hasVisibleTextArea):
      (WebCore::HTMLTextFormControlElement::setSelectionRange):
      * html/InputType.h:
      * html/parser/HTMLResourcePreloader.cpp:
      * html/shadow/MediaControlElementTypes.cpp:
      (WebCore::MediaControlElement::setDisplayType):
      * html/shadow/MediaControlElements.cpp:
      (WebCore::MediaControlPanelElement::startDrag):
      (WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
      * html/shadow/MeterShadowElement.cpp:
      (WebCore::MeterShadowElement::rendererIsNeeded):
      (WebCore::MeterInnerElement::rendererIsNeeded):
      * inspector/InspectorOverlay.cpp:
      * inspector/InspectorTimelineAgent.cpp:
      * inspector/InspectorTimelineAgent.h:
      * loader/ImageLoader.cpp:
      (WebCore::ImageLoader::renderImageResource):
      * loader/cache/CachedImage.cpp:
      (WebCore::CachedImage::currentFrameKnownToBeOpaque):
      * loader/cache/CachedImage.h:
      * mathml/MathMLElement.cpp:
      * page/ContextMenuController.cpp:
      * page/DragController.cpp:
      (WebCore::DragController::draggableElement):
      * page/EventHandler.cpp:
      (WebCore::EventHandler::EventHandler):
      (WebCore::EventHandler::clear):
      (WebCore::EventHandler::startPanScrolling):
      (WebCore::EventHandler::autoscrollRenderer):
      (WebCore::EventHandler::scrollOverflow):
      (WebCore::EventHandler::logicalScrollOverflow):
      (WebCore::EventHandler::subframeForTargetNode):
      (WebCore::EventHandler::selectCursor):
      (WebCore::layerForNode):
      (WebCore::EventHandler::handleWheelEvent):
      (WebCore::EventHandler::clearGestureScrollNodes):
      * page/EventHandler.h:
      * page/FocusController.cpp:
      * page/Frame.cpp:
      (WebCore::Frame::ownerRenderer):
      (WebCore::Frame::visiblePositionForPoint):
      (WebCore::Frame::nodeImage):
      * page/FrameView.cpp:
      (WebCore::FrameView::applyOverflowToViewport):
      (WebCore::FrameView::applyPaginationToViewport):
      (WebCore::FrameView::calculateScrollbarModesForLayout):
      (WebCore::FrameView::isEnclosedInCompositingLayer):
      (WebCore::FrameView::embeddedContentBox):
      (WebCore::FrameView::addSlowRepaintObject):
      (WebCore::FrameView::removeSlowRepaintObject):
      (WebCore::FrameView::addViewportConstrainedObject):
      (WebCore::FrameView::removeViewportConstrainedObject):
      (WebCore::FrameView::scrollContentsFastPath):
      (WebCore::FrameView::repaintSlowRepaintObjects):
      (WebCore::FrameView::setViewportConstrainedObjectsNeedLayout):
      (WebCore::FrameView::updateOverflowStatus):
      (WebCore::FrameView::updateScrollCorner):
      (WebCore::FrameView::paintContents):
      (WebCore::FrameView::convertFromRenderer):
      (WebCore::FrameView::convertToRenderer):
      * page/FrameView.h:
      * page/PageSerializer.cpp:
      (WebCore::PageSerializer::addImageToResources):
      * page/PageSerializer.h:
      * page/animation/AnimationBase.cpp:
      (WebCore::AnimationBase::AnimationBase):
      (WebCore::AnimationBase::updateStateMachine):
      * page/animation/AnimationBase.h:
      (WebCore::AnimationBase::renderer):
      * page/animation/AnimationController.cpp:
      (WebCore::AnimationControllerPrivate::ensureCompositeAnimation):
      (WebCore::AnimationControllerPrivate::clear):
      (WebCore::AnimationControllerPrivate::updateAnimations):
      (WebCore::AnimationControllerPrivate::updateAnimationTimerForRenderer):
      (WebCore::AnimationControllerPrivate::isRunningAnimationOnRenderer):
      (WebCore::AnimationControllerPrivate::isRunningAcceleratedAnimationOnRenderer):
      (WebCore::AnimationControllerPrivate::suspendAnimationsForDocument):
      (WebCore::AnimationControllerPrivate::resumeAnimationsForDocument):
      (WebCore::AnimationControllerPrivate::pauseAnimationAtTime):
      (WebCore::AnimationControllerPrivate::pauseTransitionAtTime):
      (WebCore::AnimationControllerPrivate::getAnimatedStyleForRenderer):
      (WebCore::AnimationControllerPrivate::numberOfActiveAnimations):
      (WebCore::AnimationController::cancelAnimations):
      (WebCore::AnimationController::updateAnimations):
      (WebCore::AnimationController::getAnimatedStyleForRenderer):
      (WebCore::AnimationController::notifyAnimationStarted):
      (WebCore::AnimationController::pauseAnimationAtTime):
      (WebCore::AnimationController::pauseTransitionAtTime):
      (WebCore::AnimationController::isRunningAnimationOnRenderer):
      (WebCore::AnimationController::isRunningAcceleratedAnimationOnRenderer):
      * page/animation/AnimationController.h:
      * page/animation/AnimationControllerPrivate.h:
      * page/animation/CSSPropertyAnimation.cpp:
      (WebCore::crossfadeBlend):
      * page/animation/CompositeAnimation.cpp:
      (WebCore::CompositeAnimation::updateTransitions):
      (WebCore::CompositeAnimation::updateKeyframeAnimations):
      (WebCore::CompositeAnimation::animate):
      * page/animation/CompositeAnimation.h:
      * page/animation/ImplicitAnimation.cpp:
      (WebCore::ImplicitAnimation::ImplicitAnimation):
      (WebCore::ImplicitAnimation::animate):
      (WebCore::ImplicitAnimation::pauseAnimation):
      (WebCore::ImplicitAnimation::sendTransitionEvent):
      * page/animation/ImplicitAnimation.h:
      (WebCore::ImplicitAnimation::create):
      * page/animation/KeyframeAnimation.cpp:
      (WebCore::KeyframeAnimation::KeyframeAnimation):
      (WebCore::KeyframeAnimation::animate):
      (WebCore::KeyframeAnimation::pauseAnimation):
      (WebCore::KeyframeAnimation::endAnimation):
      (WebCore::KeyframeAnimation::sendAnimationEvent):
      * page/animation/KeyframeAnimation.h:
      * page/mac/EventHandlerMac.mm:
      (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
      (WebCore::EventHandler::passSubframeEventToSubframe):
      * page/mac/FrameSnapshottingMac.mm:
      (WebCore::snapshotDragImage):
      * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
      (WebCore::MediaPlayerPrivateQTKit::paint):
      * rendering/CounterNode.cpp:
      (WebCore::CounterNode::CounterNode):
      (WebCore::CounterNode::create):
      * rendering/CounterNode.h:
      (WebCore::CounterNode::owner):
      * rendering/FilterEffectRenderer.cpp:
      (WebCore::FilterEffectRenderer::buildReferenceFilter):
      (WebCore::FilterEffectRenderer::build):
      * rendering/FilterEffectRenderer.h:
      * rendering/HitTestResult.cpp:
      (WebCore::HitTestResult::spellingToolTip):
      (WebCore::HitTestResult::title):
      (WebCore::HitTestResult::innerTextIfTruncated):
      (WebCore::HitTestResult::image):
      * rendering/LayoutRepainter.cpp:
      (WebCore::LayoutRepainter::LayoutRepainter):
      * rendering/LayoutRepainter.h:
      * rendering/LayoutState.h:
      (WebCore::LayoutState::LayoutState):
      * rendering/LineWidth.h:
      * rendering/LogicalSelectionOffsetCaches.h:
      (WebCore::isContainingBlockCandidateForAbsolutelyPositionedObject):
      (WebCore::isNonRenderBlockInline):
      (WebCore::containingBlockForFixedPosition):
      (WebCore::containingBlockForAbsolutePosition):
      (WebCore::containingBlockForObjectInFlow):
      (WebCore::LogicalSelectionOffsetCaches::LogicalSelectionOffsetCaches):
      * rendering/PaintInfo.h:
      (WebCore::PaintInfo::PaintInfo):
      (WebCore::PaintInfo::updateSubtreePaintRootForChildren):
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::paintFillLayers):
      (WebCore::RenderBox::paintFillLayer):
      * rendering/RenderBox.h:
      * rendering/RenderBoxModelObject.cpp:
      (WebCore::RenderBoxModelObject::paintFillLayerExtended):
      (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
      * rendering/RenderBoxModelObject.h:
      * rendering/RenderCounter.cpp:
      (WebCore::nextInPreOrder):
      (WebCore::planCounter):
      (WebCore::makeCounterNode):
      (WebCore::RenderCounter::originalText):
      * rendering/RenderElement.cpp:
      (WebCore::RenderElement::~RenderElement):
      (WebCore::RenderElement::insertChildInternal):
      (WebCore::RenderElement::removeChildInternal):
      (WebCore::RenderElement::willBeDestroyed):
      (WebCore::RenderElement::rendererForRootBackground):
      * rendering/RenderImageResource.cpp:
      (WebCore::RenderImageResource::initialize):
      * rendering/RenderImageResource.h:
      * rendering/RenderImageResourceStyleImage.cpp:
      (WebCore::RenderImageResourceStyleImage::initialize):
      * rendering/RenderImageResourceStyleImage.h:
      (WebCore::RenderImageResourceStyleImage::create):
      * rendering/RenderLayerCompositor.cpp:
      (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame):
      (WebCore::RenderLayerCompositor::requiresCompositingLayer):
      (WebCore::RenderLayerCompositor::canBeComposited):
      (WebCore::RenderLayerCompositor::requiresOwnBackingStore):
      (WebCore::RenderLayerCompositor::reasonsForCompositing):
      (WebCore::RenderLayerCompositor::requiresCompositingForTransform):
      (WebCore::RenderLayerCompositor::requiresCompositingForVideo):
      (WebCore::RenderLayerCompositor::requiresCompositingForCanvas):
      (WebCore::RenderLayerCompositor::requiresCompositingForPlugin):
      (WebCore::RenderLayerCompositor::requiresCompositingForFrame):
      (WebCore::RenderLayerCompositor::requiresCompositingForAnimation):
      (WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason):
      (WebCore::RenderLayerCompositor::requiresCompositingForFilters):
      (WebCore::RenderLayerCompositor::requiresCompositingForBlending):
      (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
      (WebCore::RenderLayerCompositor::isRunningAcceleratedTransformAnimation):
      * rendering/RenderLayerCompositor.h:
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::containingBlock):
      (WebCore::mustRepaintFillLayers):
      (WebCore::RenderObject::borderImageIsLoadedAndCanBeRendered):
      (WebCore::RenderObject::willBeDestroyed):
      * rendering/RenderScrollbarPart.cpp:
      (WebCore::RenderScrollbarPart::rendererOwningScrollbar):
      * rendering/RenderScrollbarPart.h:
      * rendering/RenderTableCell.cpp:
      (WebCore::RenderTableCell::paintBackgroundsBehindCell):
      * rendering/RenderTableCell.h:
      * rendering/RenderView.cpp:
      (WebCore::RenderView::RenderView):
      * rendering/style/FillLayer.cpp:
      (WebCore::FillLayer::hasOpaqueImage):
      * rendering/style/FillLayer.h:
      * rendering/style/KeyframeList.h:
      (WebCore::KeyframeList::KeyframeList):
      * rendering/style/StyleCachedImage.cpp:
      (WebCore::StyleCachedImage::imageSize):
      (WebCore::StyleCachedImage::computeIntrinsicDimensions):
      (WebCore::StyleCachedImage::setContainerSizeForRenderer):
      (WebCore::StyleCachedImage::addClient):
      (WebCore::StyleCachedImage::removeClient):
      (WebCore::StyleCachedImage::image):
      (WebCore::StyleCachedImage::knownToBeOpaque):
      * rendering/style/StyleCachedImage.h:
      * rendering/style/StyleCachedImageSet.cpp:
      (WebCore::StyleCachedImageSet::imageSize):
      (WebCore::StyleCachedImageSet::computeIntrinsicDimensions):
      (WebCore::StyleCachedImageSet::setContainerSizeForRenderer):
      (WebCore::StyleCachedImageSet::addClient):
      (WebCore::StyleCachedImageSet::removeClient):
      (WebCore::StyleCachedImageSet::image):
      (WebCore::StyleCachedImageSet::knownToBeOpaque):
      * rendering/style/StyleCachedImageSet.h:
      * rendering/style/StyleGeneratedImage.cpp:
      (WebCore::StyleGeneratedImage::imageSize):
      (WebCore::StyleGeneratedImage::computeIntrinsicDimensions):
      (WebCore::StyleGeneratedImage::addClient):
      (WebCore::StyleGeneratedImage::removeClient):
      (WebCore::StyleGeneratedImage::image):
      (WebCore::StyleGeneratedImage::knownToBeOpaque):
      * rendering/style/StyleGeneratedImage.h:
      * rendering/style/StyleImage.h:
      (WebCore::StyleImage::imagesEquivalent):
      * rendering/style/StylePendingImage.h:
      (WebCore::StylePendingImage::cssImageValue):
      (WebCore::StylePendingImage::cssImageGeneratorValue):
      (WebCore::StylePendingImage::cssCursorImageValue):
      (WebCore::StylePendingImage::cssImageSetValue):
      (WebCore::StylePendingImage::computeIntrinsicDimensions):
      * testing/Internals.cpp:
      (WebCore::Internals::boundingBox):
      (WebCore::Internals::isSelectPopupVisible):
      (WebCore::Internals::isPluginUnavailabilityIndicatorObscured):
      Use RenderElement instead of RenderObject where it was easy to do so.
      For local variables holding the return value of renderer() functions,
      use auto instead, so the most-specific possible type will be used,
      without having to figure out what that is in each case. Also use some
      more OVERRIDE and FINAL and use nullptr instead of 0. And replace some
      cryptic short local variable names with words.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156622 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8cdf7124
  4. 28 Sep, 2013 1 commit
  5. 27 Sep, 2013 5 commits
    • commit-queue@webkit.org's avatar
      [Nix] Updating Nix trunk files · b4b8227d
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=121752
      
      Patch by Thiago de Barros Lacerda <thiago.lacerda@openbossa.org> on 2013-09-27
      Reviewed by Benjamin Poulain.
      
      Source/WebCore:
      
      No new tests needed.
      
      * page/nix/EventHandlerNix.cpp:
      (WebCore::EventHandler::focusDocumentView):
      (WebCore::EventHandler::passWheelEventToWidget):
      (WebCore::EventHandler::passMousePressEventToSubframe):
      (WebCore::EventHandler::passMouseMoveEventToSubframe):
      (WebCore::EventHandler::passMouseReleaseEventToSubframe):
      * platform/DragImage.h:
      * platform/graphics/GraphicsContext3D.h:
      * platform/nix/DragImageNix.cpp:
      (WebCore::createDragImageFromImage):
      * platform/nix/GamepadsNix.cpp:
      (WebCore::sampleGamepads):
      * platform/nix/LanguageNix.cpp:
      (WebCore::platformLanguage):
      * platform/nix/LocalizedStringsNix.cpp:
      (WebCore::unacceptableTLSCertificate):
      * platform/nix/PasteboardNix.cpp:
      (WebCore::Pasteboard::types):
      * platform/nix/RenderThemeNix.cpp:
      (WebCore::toColor):
      (WebCore::themeEngine):
      (WebCore::webCanvas):
      (WebCore::getWebThemeState):
      (WebCore::RenderThemeNix::paintButton):
      (WebCore::RenderThemeNix::paintTextField):
      (WebCore::RenderThemeNix::paintCheckbox):
      (WebCore::RenderThemeNix::paintRadio):
      (WebCore::RenderThemeNix::paintMenuList):
      (WebCore::RenderThemeNix::paintProgressBar):
      (WebCore::RenderThemeNix::paintInnerSpinButton):
      (WebCore::RenderThemeNix::paintMeter):
      
      Source/WTF:
      
      * wtf/nix/FeatureDefinesNix.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156567 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b4b8227d
    • andersca@apple.com's avatar
      Use std::unique_ptr for GraphicsLayer creation · cc3b2dc6
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=122020
      
      Reviewed by Antti Koivisto.
      
      Source/WebCore:
      
      * platform/graphics/GraphicsLayer.h:
      * platform/graphics/GraphicsLayerFactory.h:
      * platform/graphics/ca/GraphicsLayerCA.cpp:
      (WebCore::GraphicsLayer::create):
      * platform/graphics/ca/GraphicsLayerCA.h:
      * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
      (WebCore::CompositingCoordinator::createGraphicsLayer):
      * platform/graphics/texmap/coordinated/CompositingCoordinator.h:
      * rendering/RenderLayerBacking.cpp:
      (WebCore::RenderLayerBacking::createGraphicsLayer):
      (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
      (WebCore::RenderLayerBacking::paintIntoLayer):
      * rendering/RenderLayerBacking.h:
      (WebCore::RenderLayerBacking::hasScrollingLayer):
      * rendering/RenderLayerCompositor.cpp:
      (WebCore::RenderLayerCompositor::updateRootLayerPosition):
      * rendering/RenderLayerCompositor.h:
      
      Source/WebKit2:
      
      * UIProcess/mac/RemoteLayerTreeHost.h:
      * UIProcess/mac/RemoteLayerTreeHost.mm:
      (WebKit::RemoteLayerTreeHost::getOrCreateLayer):
      * WebProcess/WebPage/mac/LayerTreeHostMac.h:
      * WebProcess/WebPage/mac/LayerTreeHostMac.mm:
      (WebKit::LayerTreeHostMac::paintContents):
      (WebKit::LayerTreeHostMac::createPageOverlayLayer):
      (WebKit::LayerTreeHostMac::destroyPageOverlayLayer):
      * WebProcess/WebPage/mac/RemoteGraphicsLayer.h:
      * WebProcess/WebPage/mac/RemoteGraphicsLayer.mm:
      * WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
      * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
      (WebKit::RemoteLayerTreeContext::createGraphicsLayer):
      * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
      * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
      (WebKit::TiledCoreAnimationDrawingArea::paintContents):
      (WebKit::TiledCoreAnimationDrawingArea::createPageOverlayLayer):
      (WebKit::TiledCoreAnimationDrawingArea::destroyPageOverlayLayer):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156560 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cc3b2dc6
    • dino@apple.com's avatar
      Provide 2D Matrix decomposition for animation · 3a0b736f
      dino@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=112824
      <rdar://problem/15091882>
      
      Reviewed by Eric Carlson (and Ian Henderson offline).
      
      Source/WebCore:
      
      Implement a new 2d matrix blend, which is triggered
      when animating between two affine 3d matrices. This
      is intended to be the official algorithm that gets
      put into the W3C Transforms specification.
      
      The old code is renamed with a 4 prefix (indicating
      it is a blend between 3d matrices using quaternions),
      and new methods and structures for 2d blending were added.
      
      I also took the opportunity to clean up a lot of
      bad WebKit style.
      
      * platform/graphics/ca/GraphicsLayerCA.cpp:
      (WebCore::maxScaleFromTransform): Use 3d decomposition.
      * platform/graphics/transforms/PerspectiveTransformOperation.cpp:
      (WebCore::PerspectiveTransformOperation::blend): Ditto.
      * platform/graphics/transforms/RotateTransformOperation.cpp:
      (WebCore::RotateTransformOperation::blend): Ditto.
      
      * platform/graphics/transforms/TransformationMatrix.cpp:
      (WebCore::decompose2): New method to decompose an affine 3d matrix
      into X/Y scale + translate, a rotation angle, plus some extracted
      a,b,c,d fields from the affine section.
      (WebCore::decompose4): New name for the old function.
      (WebCore::TransformationMatrix::blend2): Perform linear interpolation
      between two 2d decompositions.
      (WebCore::TransformationMatrix::blend4): New name for the old function.
      (WebCore::TransformationMatrix::blend): Call blend2 or blend4 depending
      on the type of matrix.
      (WebCore::TransformationMatrix::decompose2): Calls into the decompose2
      method above.
      (WebCore::TransformationMatrix::decompose4): New name.
      (WebCore::TransformationMatrix::recompose2): Recomposes a 3d matrix from
      a 2d decomposition.
      (WebCore::TransformationMatrix::recompose4): New name.
      * platform/graphics/transforms/TransformationMatrix.h: All the changes
      for the new methods above.
      
      LayoutTests:
      
      This test was only exercising the fact that our
      software decomposition did not match our hardware
      decomposition (although that required visual inspection).
      Now that our 2d decomposition is correct, update the
      test and its expected result.
      
      * animations/transform-non-accelerated-expected.txt:
      * animations/transform-non-accelerated.html:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156553 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3a0b736f
    • darin@apple.com's avatar
      rename KURL to URL · 5ffbb5c7
      darin@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=16214
      
      Reviewed by Andreas Kling.
      
      Source/WebCore:
      
      * many files: Renamed, using script.
      
      Source/WebKit:
      
      * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
      Let the script to try to rename here.
      
      Source/WebKit/blackberry:
      
      * many files: Renamed, using script.
      
      Source/WebKit/efl:
      
      * many files: Renamed, using script.
      
      Source/WebKit/gtk:
      
      * many files: Renamed, using script.
      
      Source/WebKit/mac:
      
      * many files: Renamed, using script.
      
      Source/WebKit/qt:
      
      * many files: Renamed, using script.
      
      Source/WebKit/win:
      
      * many files: Renamed, using script.
      
      Source/WebKit/wince:
      
      * many files: Renamed, using script.
      
      Source/WebKit2:
      
      * many files: Renamed, using script.
      
      Tools:
      
      * many files: Renamed, using script.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156550 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5ffbb5c7
    • darin@apple.com's avatar
      Add empty MainFrame class · ade301ac
      darin@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=121770
      
      Reviewed by Andreas Kling.
      
      Source/WebCore:
      
      For now, MainFrame simply derives from Frame and adds nothing.
      Next, we will make each Frame point back to its MainFrame.
      
      * CMakeLists.txt: Added MainFrame.cpp/h.
      * GNUmakefile.list.am: Ditto.
      * Target.pri: Ditto.
      * WebCore.exp.in: Ditto.
      * WebCore.vcxproj/WebCore.vcxproj: Ditto.
      * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
      * WebCore.xcodeproj/project.pbxproj: Ditto.
      
      * page/Frame.cpp:
      (WebCore::Frame::Frame): Use references instead of pointers for constructor.
      (WebCore::Frame::create): Pass references instead of pointers to constructor.
      * page/Frame.h: Made constructor protected instead of private, and marked
      destructor virtual explicitly. Also marked virtual functions OVERRIDE and FINAL.
      
      * page/MainFrame.cpp: Added.
      * page/MainFrame.h: Added.
      
      * page/Page.cpp:
      (WebCore::Page::Page): Use MainFrame::create instead of Frame::create.
      (WebCore::Page::frameIsMainFrame): Moved here, no longer inline.
      (WebCore::Page::renderTreeSize): Use const Frame* instead of Frame*.
      (WebCore::Page::checkSubframeCountConsistency): Ditto.
      * page/Page.h: Changed mainFrame() to return MainFrame& and m_mainFrame to
      be a RefPtr<MainFrame>.
      
      * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
      * bindings/js/PageScriptDebugServer.cpp:
      * bindings/js/ScriptProfiler.cpp:
      * bindings/js/ScriptState.cpp:
      * css/MediaQueryEvaluator.cpp:
      * dom/Document.cpp:
      * history/CachedFrame.cpp:
      * history/CachedPage.cpp:
      * history/PageCache.cpp:
      * html/HTMLPlugInImageElement.cpp:
      * inspector/InspectorAgent.cpp:
      * inspector/InspectorCanvasAgent.cpp:
      * inspector/InspectorClient.cpp:
      * inspector/InspectorDOMAgent.cpp:
      * inspector/InspectorFrontendClientLocal.cpp:
      * inspector/InspectorFrontendHost.cpp:
      * inspector/InspectorInputAgent.cpp:
      * inspector/InspectorInstrumentation.cpp:
      * inspector/InspectorOverlay.cpp:
      * inspector/InspectorPageAgent.cpp:
      * inspector/PageRuntimeAgent.cpp:
      * loader/FrameLoader.cpp:
      * loader/HistoryController.cpp:
      * loader/archive/mhtml/MHTMLArchive.cpp:
      * page/AutoscrollController.cpp:
      * page/Chrome.cpp:
      * page/ContextMenuController.cpp:
      * page/DOMWindow.cpp:
      * page/DragController.cpp:
      * page/EventHandler.cpp:
      * page/FocusController.cpp:
      * page/FrameTree.cpp:
      * page/FrameView.cpp:
      * page/GestureTapHighlighter.cpp:
      * page/PageGroup.cpp:
      * page/PageGroupLoadDeferrer.cpp:
      * page/PageSerializer.cpp:
      * page/PageThrottler.cpp:
      * page/Settings.cpp:
      * page/SpatialNavigation.cpp:
      * page/mac/DragControllerMac.mm:
      * page/mac/PageMac.cpp:
      * page/scrolling/ScrollingCoordinator.cpp:
      * page/scrolling/mac/ScrollingCoordinatorMac.mm:
      * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
      * plugins/DOMMimeType.cpp:
      * storage/StorageEventDispatcher.cpp:
      * svg/graphics/SVGImage.cpp:
      * testing/InternalSettings.cpp:
      * testing/Internals.cpp:
      Include MainFrame.h instead of Frame.h as needed.
      
      Source/WebKit/efl:
      
      * WebCoreSupport/AcceleratedCompositingContextEfl.cpp:
      * WebCoreSupport/InspectorClientEfl.cpp:
      * ewk/ewk_view.cpp:
      Include MainFrame.h instead of Frame.h as needed.
      
      Source/WebKit/gtk:
      
      * WebCoreSupport/AcceleratedCompositingContextGL.cpp:
      * WebCoreSupport/ChromeClientGtk.cpp:
      * WebCoreSupport/FrameLoaderClientGtk.cpp:
      * WebCoreSupport/GtkAdjustmentWatcher.cpp:
      * webkit/webkitwebframe.cpp:
      * webkit/webkitwebview.cpp:
      * webkit/webkitviewportattributes.cpp:
      Include MainFrame.h instead of Frame.h as needed.
      
      Source/WebKit/mac:
      
      * WebCoreSupport/WebDragClient.mm:
      * WebCoreSupport/WebInspectorClient.mm:
      * WebCoreSupport/WebPlatformStrategies.mm:
      * WebView/WebFrame.mm:
      * WebView/WebHTMLView.mm:
      * WebView/WebView.mm:
      Include MainFrame.h instead of Frame.h as needed.
      
      Source/WebKit/qt:
      
      * Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp:
      * Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp:
      * Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp:
      * Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp:
      * Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:
      * Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp:
      Include MainFrame.h instead of Frame.h as needed.
      
      Source/WebKit/win:
      
      * win/WebCoreSupport/WebDragClient.cpp:
      * win/WebCoreSupport/WebContextMenuClient.cpp:
      * win/WebDropSource.cpp:
      * win/WebFrame.cpp:
      * win/WebView.cpp:
      Include MainFrame.h instead of Frame.h as needed.
      
      Source/WebKit2:
      
      * WebProcess/FullScreen/WebFullScreenManager.cpp:
      * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
      * WebProcess/InjectedBundle/InjectedBundle.cpp:
      * WebProcess/Plugins/PluginView.cpp:
      * WebProcess/Storage/StorageAreaMap.cpp:
      * WebProcess/WebCoreSupport/WebChromeClient.cpp:
      * WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
      * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
      * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
      * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
      * WebProcess/WebPage/FindController.cpp:
      * WebProcess/WebPage/PageOverlay.cpp:
      * WebProcess/WebPage/WebInspector.cpp:
      * WebProcess/WebPage/WebPage.cpp:
      * WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp:
      * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
      * WebProcess/WebPage/mac/LayerTreeHostMac.mm:
      * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
      * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
      * WebProcess/WebPage/mac/WKAccessibilityWebPageObject.mm:
      * WebProcess/WebPage/mac/WebPageMac.mm:
      Include MainFrame.h instead of Frame.h as needed.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156543 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ade301ac
  6. 26 Sep, 2013 3 commits
  7. 25 Sep, 2013 4 commits
    • allan.jensen@digia.com's avatar
      REGRESSION(r156393): Build with !ENABLE(SVG_FONTS) broken · 941517f2
      allan.jensen@digia.com authored
      Unreviewed build-fix.
      
      Protect SVG font code with #ifdef ENABLE(SVG_FONTS).
      
      * platform/graphics/WidthIterator.cpp:
      (WebCore::applyFontTransforms):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      941517f2
    • commit-queue@webkit.org's avatar
      Unreviewed, rolling out r156272. · e1b7bc27
      commit-queue@webkit.org authored
      http://trac.webkit.org/changeset/156272
      https://bugs.webkit.org/show_bug.cgi?id=121909
      
      Has no real effect (Requested by carewolf on #webkit).
      
      * platform/graphics/qt/TileQt.cpp:
      (WebCore::TileQt::updateBackBuffer):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156398 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e1b7bc27
    • allan.jensen@digia.com's avatar
      Support kerning with SVG web fonts · 8981a572
      allan.jensen@digia.com authored
      https://bugs.webkit.org/show_bug.cgi?id=117540
      
      Source/WebCore:
      
      Reviewed by Stephen Chenney.
      
      Adds the glue to WidthIterator to take advantage of kerning in SVG web fonts.
      To supply SVG font kerning with its required text input, the signature of
      applyFontTransforms has been extended.
      
      Since SVG font kerning was extremely slow, it has been sped up by replacing
      the iteration over all possible kerning definitions with a hash-map based
      lookup of the leading symbol to be kerned. The new algorithm provides a
      roughly 100x speed-up in SVG font kerning.
      
      Test: fast/text/svg-font-face-with-kerning.html
      
      * platform/graphics/TextRun.h:
      (WebCore::TextRun::string):
      * platform/graphics/WidthIterator.cpp:
      (WebCore::applyFontTransforms):
      (WebCore::WidthIterator::advanceInternal):
      * rendering/svg/SVGTextRunRenderingContext.cpp:
      (WebCore::SVGTextRunRenderingContext::applySVGKerning):
      * rendering/svg/SVGTextRunRenderingContext.h:
      * svg/SVGFontElement.cpp:
      (WebCore::SVGFontElement::invalidateGlyphCache):
      (WebCore::SVGFontElement::ensureGlyphCache):
      (WebCore::SVGKerningMap::clear):
      (WebCore::SVGKerningMap::insert):
      (WebCore::stringMatchesUnicodeRange):
      (WebCore::stringMatchesGlyphName):
      (WebCore::stringMatchesUnicodeName):
      (WebCore::matches):
      (WebCore::kerningForPairOfStringsAndGlyphs):
      (WebCore::SVGFontElement::horizontalKerningForPairOfStringsAndGlyphs):
      (WebCore::SVGFontElement::verticalKerningForPairOfStringsAndGlyphs):
      * svg/SVGFontElement.h:
      (WebCore::SVGKerning::SVGKerning):
      (WebCore::SVGKerningMap::isEmpty):
      * svg/SVGHKernElement.cpp:
      (WebCore::SVGHKernElement::buildHorizontalKerningPair):
      * svg/SVGHKernElement.h:
      * svg/SVGVKernElement.cpp:
      (WebCore::SVGVKernElement::buildVerticalKerningPair):
      * svg/SVGVKernElement.h:
      
      LayoutTests:
      
      Added test of SVG web font kerning.
      
      Reviewed by Stephen Chenney.
      
      * fast/text/svg-font-face-with-kerning-expected.png: Added.
      * fast/text/svg-font-face-with-kerning-expected.txt: Added.
      * fast/text/svg-font-face-with-kerning.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156393 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8981a572
    • commit-queue@webkit.org's avatar
      <https://webkit.org/b/120476> [CSS Masking] Implement luminance masking · 9b43190b
      commit-queue@webkit.org authored
      Source/WebCore:
      
      Added implementation for luminance masking. A luminance mask is applied by transforming its RGB values into
      an alpha value, using luminance-to-alpha coefficients. Because this conversion is already implemented in
      the ImageBuffer class, we used it in our implementation.
      
      Patch by Andrei Parvu <parvu@adobe.com> on 2013-09-25
      Reviewed by Dirk Schulze.
      
      Tests: css3/masking/mask-luminance-gradient.html
             css3/masking/mask-luminance-png.html
             css3/masking/mask-luminance-svg.html
      
      * platform/graphics/BitmapImage.cpp: Add a drawPattern method, in which an ImageBuffer is created and converted from alpha to luminance, if there is a luminance mask.
      (WebCore::BitmapImage::BitmapImage):
      (WebCore::BitmapImage::drawPattern):
      * platform/graphics/BitmapImage.h:
      * platform/graphics/GeneratorGeneratedImage.cpp: Convert the ImageBuffer to luminance, if necessary.
      (WebCore::GeneratorGeneratedImage::drawPattern):
      * platform/graphics/GraphicsContext.cpp: Add methods which set and check if a luminance mask is drawn.
      (WebCore::GraphicsContext::setDrawLuminanceMask):
      (WebCore::GraphicsContext::drawLuminanceMask):
      * platform/graphics/GraphicsContext.h: Add property to ContextState for luminance drawing.
      (WebCore::GraphicsContextState::GraphicsContextState):
      * rendering/RenderBoxModelObject.cpp: Set the luminance property of the mask, if the layer has a mask source type of luminance.
      (WebCore::RenderBoxModelObject::paintFillLayerExtended):
      * svg/graphics/SVGImage.cpp: Convert the ImageBuffer to luminance, if necessary.
      (WebCore::SVGImage::drawPatternForContainer):
      * svg/graphics/SVGImageForContainer.cpp: Pass the luminance property to the SVG image.
      (WebCore::SVGImageForContainer::drawPattern):
      
      LayoutTests:
      
      Added tests to verify the implementation of luminance masking.
      
      Patch by Andrei Parvu <parvu@adobe.com> on 2013-09-25
      Reviewed by Dirk Schulze.
      
      * css3/masking/mask-luminance-gradient-expected.html: Added.
      * css3/masking/mask-luminance-gradient.html: Added.
      * css3/masking/mask-luminance-png.html: Added.
      * css3/masking/mask-luminance-svg-expected.html: Added.
      * css3/masking/mask-luminance-svg.html: Added.
      * css3/masking/resources/circle-alpha.svg: Added.
      * css3/masking/resources/circle2.svg: Added.
      * css3/masking/resources/dice.png: Added.
      * platform/mac/css3/masking/mask-luminance-png-expected.txt: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156391 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9b43190b
  8. 24 Sep, 2013 3 commits
    • dino@apple.com's avatar
      Implement symbol name hashing for WebGL shaders · d80a65d3
      dino@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=121849
      
      Reviewed by Anders Carlsson.
      
      Turn on ANGLE's symbol name mapping for shader programs.
      This avoids compilation failures (or worse, crashers)
      on some hardware that doesn't like it when shaders redefine
      symbols like "sin", even though that is valid.
      
      The way ANGLE exposes this is via setting a pointer
      to a char* -> uint64_t hash function. Since we only have
      a 32-bit hash in WebKit, I combine the 32-bit value with
      a counter value that exists over the lifetime of a GC3D context.
      Before calling ANGLE, I point the global hash map to the local
      hash map, and then clean up after we're done. This introduces
      a memory hit, in that the symbol table will build up until
      the context is released.
      
      Covered by Khronos WebGL tests, including
      conformance/glsl/misc/shader-with-non-reserved-words.html
      
      * platform/graphics/GraphicsContext3D.h: Define a ShaderNameHash type,
      and add an OwnPtr to one as a member variable.
      * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
      (WebCore::nameHashForShader): Global function used for ANGLE hashing.
      (WebCore::GraphicsContext3D::compileShader): Set up the ANGLE properties,
      point to the local hash map, and call compile/translate.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156352 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d80a65d3
    • dino@apple.com's avatar
      Use mapped name in attribute location binding · 587d9714
      dino@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=121847
      <rdar://problem/15067526>
      
      Reviewed by Eric Carlson.
      
      Source/WebCore:
      
      The shader that we send down to OpenGL to compile
      may have been translated by ANGLE, so we keep a
      table around that maps input symbols to output symbols.
      We used the table when binding to and looking up
      uniforms, and when looking up attributes, but not
      when actually binding to attribute locations.
      
      Test: fast/canvas/webgl/gl-bind-attrib-mapped-names.html
      
      * platform/graphics/ANGLEWebKitBridge.cpp:
      (WebCore::getSymbolInfo): Add logging of symbol mapping.
      * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
      (WebCore::GraphicsContext3D::bindAttribLocation): Used the mapped name.
      (WebCore::GraphicsContext3D::getAttribLocation): Remove comment since
      we do the lookup everywhere.
      (WebCore::GraphicsContext3D::getUniformLocation): Ditto.
      
      LayoutTests:
      
      New test that has an attribute name long enough
      to trigger symbol mapping in all cases.
      
      * fast/canvas/webgl/gl-bind-attrib-mapped-names-expected.txt: Added.
      * fast/canvas/webgl/gl-bind-attrib-mapped-names.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156351 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      587d9714
    • commit-queue@webkit.org's avatar
      [WinCairo] Compile error. · b998fdb2
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=121839
      
      Patch by peavo@outlook.com <peavo@outlook.com> on 2013-09-24
      Reviewed by Brent Fulgham.
      
      * platform/graphics/GraphicsContext3DPrivate.cpp:
      (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate): Added missing guard.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156336 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b998fdb2
  9. 23 Sep, 2013 6 commits
    • bfulgham@apple.com's avatar
      [Windows] Moving back in history from a page with <video>, then moving forward causes crash. · d89c38d5
      bfulgham@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120475
      
      Reviewed by Anders Carlsson.
      
      * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
      (WebCore::AVFWrapper::AVFWrapper): Add assertion that creation is on main thread.
      (WebCore::AVFWrapper::~AVFWrapper): Add assertion that destruction is on main thread.
      (WebCore::destroyAVFWrapper): Helper function to dispatch on main queue.
      (WebCore::AVFWrapper::disconnectAndDeleteAVFWrapper): Spawn AVFoundationCF destruction to
      main queue.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156315 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d89c38d5
    • simon.fraser@apple.com's avatar
      REGRESSION (r155998): when zooming in, tiles are too small · 95454835
      simon.fraser@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=121765
      
      Source/WebCore:
      
      Reviewed by Dean Jackson.
      
      In r155998 I made GraphicsLayerCA take root-relative transforms
      into account when computing contentsScale, and landed a bunch of
      new results which should actually have told me that I broke page
      scaling.
      
      We don't want to take page scale into account when computing contentsScale,
      because we already do so, so ignore the transform on the layer that
      applies page scale (the only transform it should ever has is the page scale).
      
      * platform/graphics/ca/GraphicsLayerCA.cpp:
      (WebCore::GraphicsLayerCA::updateRootRelativeScale):
      
      LayoutTests:
      
      Reviewed by Dean Jackson.
      
      Fix results of tests that showed that we had incorrect tiling
      behavior on zooming.
      
      * platform/mac-wk2/tiled-drawing/fixed-background/fixed-body-background-zoomed-expected.txt:
      * platform/mac-wk2/tiled-drawing/tile-size-slow-zoomed-expected.txt:
      * platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-expected.txt:
      * platform/mac-wk2/tiled-drawing/tiled-drawing-zoom-scrolled-expected.txt:
      * platform/mac/compositing/tiling/tile-cache-zoomed-expected.txt:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156301 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      95454835
    • simon.fraser@apple.com's avatar
      Rapidly loading pages can result in !needsLayout() assertions in... · b9919523
      simon.fraser@apple.com authored
      Rapidly loading pages can result in !needsLayout() assertions in FrameView::paintContents() and RenderView::paint()
      https://bugs.webkit.org/show_bug.cgi?id=121725
      <rdar://problem/13982161> ASSERT(!needsLayout()) in WebCore::RenderView::paint (121196)
      
      Reviewed by Dean Jackson.
      
      Layout has to be up-to-date before we paint, and when composited we rely on a
      CFRunLoopObserver owned by LayerFlushScheduler to enforce this. The contract is
      that changes to GraphicsLayers accumulate in those layers, and are all pushed to
      CALayers only inside of flushCompositingState(). CALayers must not be touched
      directly outside of flushCompositingState(), since this may trigger a CA commit
      and resultant painting without us having updated layout.
      
      In addition, we rely on the CA commits only happening after our runloop observer
      has fired in order for LayerFlushScheduler's suspend/resume to work (these are used
      for freezing the layer tree during page transitions).
      
      However, TileController was violating this contract. It called revalidateTiles()
      at random times, and on a timer. This would result in CA commits happening when
      layer flushing was suspended at the LayerFlushScheduler level, and thus before
      we'd had a chance to do layout.
      
      Fix by only ever revalidatingTiles inside of flushCompositingState(). Calls
      that used to result in revalidateTiles() at other times now just set a bit
      on GraphicsLayerCA to indicate that revalidation is required, and this triggers
      a later flush like any other GraphicsLayerCA change.
      
      There is one exception to the revalidate-inside-flush rule: when purging
      files for background tabs on a timer, we are only dealing with an unparented
      layer tree, so CALayer manipulation is safe at any time.
      
      Very timing dependent, so hard to test.
      
      * platform/graphics/TiledBacking.h: Expose revalidateTiles()
      * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp: Remove
      platformCALayerDidCreateTiles() override.
      * platform/graphics/ca/GraphicsLayerCA.h: Keep track of m_isCommittingChanges
      so we can assert. Add TilingAreaChanged flag.
      * platform/graphics/ca/GraphicsLayerCA.cpp:
      (WebCore::GraphicsLayerCA::GraphicsLayerCA):
      (WebCore::GraphicsLayerCA::recursiveCommitChanges): noteSublayersChanged() is
      used inside of a commit in some cases to trigger a parent layer to update
      children after the children have been processed. To avoid trying to pointlessly
      schedule the flusher inside a flush, and for strong assertions, use a new flag
      that indicates that flushing is not required in this situation.
      Set the m_isCommittingChanges flag around committing state.
      (WebCore::GraphicsLayerCA::platformCALayerSetNeedsToRevalidateTiles): We used
      to use platformCALayerDidCreateTiles() to ensure that we would flush after adding
      new tiles to avoid garbage flashes. Now that we only ever create tiles inside
      a flush, this is no longer necessary.
      The new platformCALayerSetNeedsToRevalidateTiles() function just sets the
      TilingAreaChanged flag and triggers a flush.
      (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): After updating
      visible rect, we look for the TilingAreaChanged flag to tell us whether to
      revalidate TiledBacking tiles.
      (WebCore::GraphicsLayerCA::ensureStructuralLayer): Use DontScheduleFlush when
      telling a parent layer that it needs to reconsider sublayers.
      (WebCore::GraphicsLayerCA::updateTiles): The caller of revalidateTiles().
      (WebCore::GraphicsLayerCA::updateContentsRects): DontScheduleFlush again.
      (WebCore::GraphicsLayerCA::noteSublayersChanged): Pass scheduleFlush along.
      (WebCore::GraphicsLayerCA::noteLayerPropertyChanged): Handle scheduleFlush.
      * platform/graphics/ca/PlatformCALayerClient.h:
      (WebCore::PlatformCALayerClient::platformCALayerSetNeedsToRevalidateTiles): Added
      so that TileController can call back out to GraphicsLayerCA.
      (WebCore::PlatformCALayerClient::isCommittingChanges):
      * platform/graphics/ca/mac/TileController.h: Need to keep track of secondary
      coverage rects in m_secondaryTileCoverageRects.
      * platform/graphics/ca/mac/TileController.mm:
      (WebCore::TileController::tileCacheLayerBoundsChanged): Just trigger a tile revalidate,
      which will happen later in this same commit.
      (WebCore::TileController::setScale): This is called inside the commit. Does an extra
      revalidate, which is needed to prune tiles. This could be optimized in future.
      (WebCore::TileController::setVisibleRect): Assert that we're inside a commit,
      and trigger a revalidate.
      (WebCore::TileController::setExposedRect): Trigger a revalidate.
      (WebCore::TileController::setClipsToExposedRect): Ditto.
      (WebCore::TileController::prepopulateRect): Save the rect and trigger a revalidate.
      (WebCore::TileController::setIsInWindow): If we're in the window, trigger a revalidate
      otherwise schedule the timer.
      (WebCore::TileController::revalidateTiles): Wrapper for the real revalidateTiles().
      (WebCore::TileController::tileRevalidationTimerFired): If we're in the window,
      schedule a revalidate. Otherwise our layer tree is disconnected, and it's OK to call revalidateTiles().
      (WebCore::TileController::setNeedsRevalidateTiles): Call through the client to GraphicsLayerCA
      which will schedule a layer tree flush.
      (WebCore::TileController::revalidateTiles):
      (WebCore::TileController::ensureTilesForRect): Move code from prepopulateRect
      into here; ensureTilesForRect() for each secondary rect, then clear the rects.
      No need to call platformCALayerDidCreateTiles() at the end.
      * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: Remove
      platformCALayerDidCreateTiles() override.
      * rendering/RenderLayerCompositor.cpp:
      (WebCore::RenderLayerCompositor::scheduleLayerFlush): This should only be
      called when we're not inside a flush, otherwise it will fail to schedule
      another one.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156291 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b9919523
    • zhajiang@rim.com's avatar
      [BlackBerry] Poor rendering opening a Google map short link · 80497fe4
      zhajiang@rim.com authored
      https://bugs.webkit.org/show_bug.cgi?id=121687
      
      Source/WebCore:
      
      Patch by Jacky Jiang <zhajiang@blackberry.com> on 2013-09-23.
      Reviewed by Yong Li.
      Internally reviewed by Liam Quinn and Joe Mason.
      
      Fix a regression. It turns out that LayerCompositingThread already has
      an API named isVisible() which by default returns false. So rename the
      one in the LayerData to isLayerVisible().
      
      * platform/graphics/blackberry/LayerData.h:
      (WebCore::LayerData::isLayerVisible):
      * platform/graphics/blackberry/LayerRenderer.cpp:
      (WebCore::LayerRenderer::compositeLayersRecursive):
      
      Source/WebKit/blackberry:
      
      Patch by Jacky Jiang <zhajiang@blackberry.com> on 2013-09-23.
      Reviewed by Yong Li.
      Internally reviewed by Arvid Nilsson.
      
      Clean up m_isAcceleratedCompositingActive as it has been deprecated.
      
      * Api/WebPage_p.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156288 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      80497fe4
    • changseok.oh@collabora.com's avatar
      [Texmap] Reloading a webgl page doesn't work · ab65f29d
      changseok.oh@collabora.com authored
      https://bugs.webkit.org/show_bug.cgi?id=120593
      
      Reviewed by Noam Rosenthal.
      
      Source/WebCore:
      
      Let GraphicsLayerTextureMapper know it needs to detach the platform layer when a GraphicsContext3D is destroyed.
      
      Test: fast/canvas/webgl/webgl-reload-crash.html
      
      * platform/graphics/GraphicsContext3DPrivate.cpp:
      (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
      * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
      * platform/graphics/texmap/TextureMapperPlatformLayer.h:
      
      LayoutTests:
      
      Add a new test case to check if a crash occurs while reloading a page which contains webgl.
      
      * fast/canvas/webgl/webgl-reload-crash-expected.txt: Added.
      * fast/canvas/webgl/webgl-reload-crash.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156282 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ab65f29d
    • allan.jensen@digia.com's avatar
      [Qt] Tiled backing-store causes wrong translation · 11f1f9d7
      allan.jensen@digia.com authored
      https://bugs.webkit.org/show_bug.cgi?id=121789
      
      Reviewed by Noam Rosenthal.
      
      Move the translation inside save/restore of the GraphicsContext.
      
      * platform/graphics/qt/TileQt.cpp:
      (WebCore::TileQt::updateBackBuffer):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156272 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      11f1f9d7
  10. 21 Sep, 2013 1 commit
    • timothy_horton@apple.com's avatar
      GeneratorGeneratedImage should be called GradientImage · 992e3bc1
      timothy_horton@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=121085
      
      Reviewed by Simon Fraser.
      
      No new tests, just a refactor.
      
      r150053 removed the concept of a Generator, making GeneratorGeneratedImage
      take a Gradient. This leaves GeneratorGeneratedImage's name not making a
      whole lot of sense, so let's rename it to GradientImage.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * Target.pri:
      * WebCore.vcxproj/WebCore.vcxproj:
      * WebCore.vcxproj/WebCore.vcxproj.filters:
      * WebCore.xcodeproj/project.pbxproj:
      * css/CSSGradientValue.cpp:
      (WebCore::CSSGradientValue::image):
      * platform/graphics/BitmapImage.h:
      * platform/graphics/GradientImage.cpp: Renamed from Source/WebCore/platform/graphics/GeneratorGeneratedImage.cpp.
      (WebCore::GradientImage::draw):
      (WebCore::GradientImage::drawPattern):
      * platform/graphics/GradientImage.h: Renamed from Source/WebCore/platform/graphics/GeneratorGeneratedImage.h.
      * platform/graphics/Image.h:
      * platform/graphics/ImageBuffer.h:
      Rename.
      
      * css/CSSImageGeneratorValue.cpp:
      (WebCore::CSSImageGeneratorValue::cachedImageForSize):
      (WebCore::CSSImageGeneratorValue::saveCachedImageForSize):
      (WebCore::CSSImageGeneratorValue::CachedGeneratedImage::CachedGeneratedImage):
      * css/CSSImageGeneratorValue.h:
      (WebCore::CSSImageGeneratorValue::CachedGeneratedImage::image):
      Drive-by, the CSSImageGeneratorValue generated image cache should be
      in terms of GeneratedImage, not a random subclass, regardless
      of the fact that it's only used for GradientImage as of yet.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156226 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      992e3bc1
  11. 20 Sep, 2013 4 commits
  12. 19 Sep, 2013 1 commit