Correct scroll adjustment for touchEvent.clientX/clientY
https://bugs.webkit.org/show_bug.cgi?id=101800

Patch by Tien-Ren Chen <trchen@chromium.org> on 2012-11-09
Reviewed by Adam Barth.

FrameView::scrollX/scrollY returns scroll offset in (scaled) frame coordinate.
Convert to document coordinate before passing to JavaScript.

Source/WebCore:

Test: fast/events/touch/touch-scaled-scrolled.html

* dom/Touch.cpp:
(WebCore::contentsX):
(WebCore::contentsY):

LayoutTests:

* fast/events/touch/touch-scaled-scrolled-expected.txt: Added.
* fast/events/touch/touch-scaled-scrolled.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134127 268f45cc-cd09-0410-ab3c-d52691b4dbfc
IndexedDB: Combine IDBBackingStore and IDBLevelDBBackingStore
https://bugs.webkit.org/show_bug.cgi?id=101415

Reviewed by Tony Chang.

Source/WebCore:

Combine abstract interface IDBBackingStore with its only
implementation, IDBLevelDBBackingStore, to reduce code
complexity. The legacy structure existed to support a SQLLite
IDBBackingStore, but it is no longer worth the complexity to
support this abstraction.

Changes include:
1) Merging IDBLevelDBBackingStore into IDBBackingStore.

2) Merge together IDBBackingStore's inner classes: Cursor,
Transaction, and ObjectStoreRecordIdentfier with their respective
subclasses in IDBLevelDBBackingStore.

3) Simplifying the inner Transaction class to not be refcounted or
virtualized, to allow it to be a simple concrete member of its
owner, IDBTransactionBackendImpl.

No new tests as this is purely a refactor.

* Modules/indexeddb/IDBBackingStore.cpp:
(WebCore::recordInternalError):
(WebCore::setUpMetadata):
(WebCore::IDBBackingStore::IDBBackingStore):
(WebCore):
(WebCore::IDBBackingStore::~IDBBackingStore):
(WebCore::IDBBackingStore::open):
(WebCore::IDBBackingStore::getDatabaseNames):
(WebCore::IDBBackingStore::getIDBDatabaseMetaData):
(WebCore::IDBBackingStore::createIDBDatabaseMetaData):
(WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
(WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
(WebCore::deleteRange):
(WebCore::IDBBackingStore::deleteDatabase):
(WebCore::IDBBackingStore::getObjectStores):
(WebCore::setMaxObjectStoreId):
(WebCore::IDBBackingStore::createObjectStore):
(WebCore::IDBBackingStore::deleteObjectStore):
(WebCore::IDBBackingStore::getRecord):
(WebCore::IDBBackingStore::putRecord):
(WebCore::IDBBackingStore::clearObjectStore):
(WebCore::IDBBackingStore::deleteRecord):
(WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStore::keyExistsInObjectStore):
(WebCore::IDBBackingStore::getIndexes):
(WebCore::setMaxIndexId):
(WebCore::IDBBackingStore::createIndex):
(WebCore::IDBBackingStore::deleteIndex):
(WebCore::IDBBackingStore::putIndexDataForRecord):
(WebCore::IDBBackingStore::deleteIndexDataForRecord):
(WebCore::IDBBackingStore::findKeyInIndex):
(WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
(WebCore::IDBBackingStore::keyExistsInIndex):
(WebCore::IDBBackingStore::Cursor::Cursor):
(WebCore::IDBBackingStore::Cursor::firstSeek):
(WebCore::IDBBackingStore::Cursor::advance):
(WebCore::IDBBackingStore::Cursor::continueFunction):
(WebCore::IDBBackingStore::Cursor::haveEnteredRange):
(WebCore::IDBBackingStore::Cursor::isPastBounds):
(WebCore::ObjectStoreKeyCursorImpl::create):
(ObjectStoreKeyCursorImpl):
(WebCore::ObjectStoreKeyCursorImpl::value):
(WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
(WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
(WebCore::ObjectStoreCursorImpl::create):
(ObjectStoreCursorImpl):
(WebCore::ObjectStoreCursorImpl::value):
(WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
(WebCore::ObjectStoreCursorImpl::loadCurrentRow):
(WebCore::IndexKeyCursorImpl::create):
(IndexKeyCursorImpl):
(WebCore::IndexKeyCursorImpl::value):
(WebCore::IndexKeyCursorImpl::primaryKey):
(WebCore::IndexKeyCursorImpl::recordIdentifier):
(WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
(WebCore::IndexKeyCursorImpl::loadCurrentRow):
(WebCore::IndexCursorImpl::create):
(IndexCursorImpl):
(WebCore::IndexCursorImpl::value):
(WebCore::IndexCursorImpl::primaryKey):
(WebCore::IndexCursorImpl::recordIdentifier):
(WebCore::IndexCursorImpl::IndexCursorImpl):
(WebCore::IndexCursorImpl::loadCurrentRow):
(WebCore::objectStoreCursorOptions):
(WebCore::indexCursorOptions):
(WebCore::IDBBackingStore::openObjectStoreCursor):
(WebCore::IDBBackingStore::openObjectStoreKeyCursor):
(WebCore::IDBBackingStore::openIndexKeyCursor):
(WebCore::IDBBackingStore::openIndexCursor):
(WebCore::IDBBackingStore::Transaction::Transaction):
(WebCore::IDBBackingStore::Transaction::begin):
(WebCore::IDBBackingStore::Transaction::commit):
(WebCore::IDBBackingStore::Transaction::rollback):
* Modules/indexeddb/IDBBackingStore.h:
(WebCore):
(IDBBackingStore):
(RecordIdentifier):
(WebCore::IDBBackingStore::RecordIdentifier::create):
(WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
(WebCore::IDBBackingStore::RecordIdentifier::isValid):
(WebCore::IDBBackingStore::RecordIdentifier::primaryKey):
(WebCore::IDBBackingStore::RecordIdentifier::setPrimaryKey):
(WebCore::IDBBackingStore::RecordIdentifier::version):
(WebCore::IDBBackingStore::RecordIdentifier::setVersion):
(WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
(Transaction):
(WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom):
(CursorOptions):
(Cursor):
(WebCore::IDBBackingStore::Cursor::Cursor):
(WebCore::IDBBackingStore::Cursor::key):
(WebCore::IDBBackingStore::Cursor::primaryKey):
(WebCore::IDBBackingStore::Cursor::~Cursor):
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
(WebCore::IDBFactoryBackendImpl::openBackingStore):
* Modules/indexeddb/IDBIndexBackendImpl.cpp:
(WebCore::IDBIndexBackendImpl::countInternal):
* Modules/indexeddb/IDBLevelDBBackingStore.h: Removed.
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::putInternal):
(WebCore::IDBObjectStoreBackendImpl::deleteInternal):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
(WebCore::IDBTransactionBackendImpl::abort):
(WebCore::IDBTransactionBackendImpl::commit):
(WebCore::IDBTransactionBackendImpl::taskTimerFired):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
* WebCore.xcodeproj/project.pbxproj:

Source/WebKit/chromium:

Remove method that is no longer in the base class.

* tests/IDBFakeBackingStore.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134129 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Unreviewed gardening.

Skip fast/canvas/canvas-resize-reset-pixelRatio.html since
HIGH_DPI_CANVAS is disabled by default.

* platform/efl/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134130 268f45cc-cd09-0410-ab3c-d52691b4dbfc
PDFPlugin should support clicking on external links
https://bugs.webkit.org/show_bug.cgi?id=101647
<rdar://problem/12555222>

Reviewed by Alexey Proskuryakov.

* WebProcess/Plugins/PDF/PDFLayerControllerDetails.h: Add details about clickedLinkWithURL: callback.
* WebProcess/Plugins/PDF/PDFPlugin.h:
(PDFPlugin): Add clickedLink() and storage for the last mouse event that was dispatched.
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(-[WKPDFLayerControllerDelegate pdfLayerController:clickedLinkWithURL:]): Forward the URL to PDFPlugin.
(WebKit::PDFPlugin::handleMouseEvent): Store the last mouse event that was dispatched.
We use this to get the correct mouse button and modifier keys, so that command-clicking, etc. links works.
(WebKit::PDFPlugin::clickedLink): Request a load given the new URL.

* PluginProcess/PluginControllerProxy.h:
(PluginControllerProxy):
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::shouldAllowScripting):
* WebProcess/Plugins/Netscape/NetscapePlugin.h:
* WebProcess/Plugins/PDF/PDFLayerControllerDetails.h:
* WebProcess/Plugins/Plugin.h:
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::shouldAllowScripting):
* WebProcess/Plugins/PluginProxy.h:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::shouldAllowScripting):
* WebProcess/Plugins/PluginView.h:
Add shouldAllowScripting() function to Plugin (and plumb through PluginProxy and PluginView, etc.)

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::allowScript): Override allowScript(); if the frame is hosting a PluginDocument,
ask its plugin whether it should allow execution of JavaScript and JavaScript URLs or not.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

* WebProcess/Plugins/PDF/SimplePDFPlugin.h: Disable scripting for SimplePDFPlugin (and, by inheritance, PDFPlugin).


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134131 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] More gardening.

media/video-seek-past-end-playing.html is still flaky on WK2, skip
it on both WK1 and WK2.

* platform/efl-wk1/TestExpectations:
* platform/efl/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134132 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix indentation of BooleanObject.h

Rubber stamped by Mark Hahnenberg.

* runtime/BooleanObject.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134133 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix indentation of BooleanPrototype.h

Rubber stamped by Mark Hahnenberg.

* runtime/BooleanPrototype.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134134 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Correct hit-test point scaling for document.elementFromPoint
https://bugs.webkit.org/show_bug.cgi?id=101798

Patch by Tien-Ren Chen <trchen@chromium.org> on 2012-11-09
Reviewed by Adam Barth.

The hit-test point come from user JavaScript is in the document coordinate.
Convert to the frame coordinate with correct scale factor for hit test.

Source/WebCore:

Test: fast/dom/elementFromPoint-scaled-scrolled.html

* dom/Document.cpp:
(WebCore::nodeFromPoint):

LayoutTests:

* fast/dom/elementFromPoint-scaled-scrolled-expected.txt: Added.
* fast/dom/elementFromPoint-scaled-scrolled.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134135 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Unreviewed gardening. One more baseline following 134112.

* platform/chromium-linux/platform/chromium/virtual/softwarecompositing/iframes/composited-iframe-alignment-expected.png: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134136 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Implement NetworkProcess willSendRequest
https://bugs.webkit.org/show_bug.cgi?id=101812

Reviewed by Alexey Proskuryakov.

Message to the WebProcess to get the new request, if any.

Because network callbacks are coming in on a background thread we have to jump through hoops to synchronously
ask the WebProcess, but these hoops follow an established pattern of using async messaging with BlockingResourceMap.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::willSendRequestHandled): Pass the new request back to NetworkRequest for handling.
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:

* NetworkProcess/NetworkRequest.cpp:
(WebKit::NetworkRequest::didFail):
(WebKit::responseMap):
(WebKit::generateWillSendRequestID):
(WebKit::didReceiveWillSendRequestHandled):
(WebKit::NetworkRequest::willSendRequest): Asynchronously message the WebProcess but synchronous wait for a reply back.
* NetworkProcess/NetworkRequest.h:

* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::willSendRequest): Ask the WebResourceLoadScheduler for the new request then
  message back to the NetworkProcess with the reply.
* WebProcess/Network/NetworkProcessConnection.h:

* WebProcess/Network/NetworkProcessConnection.messages.in:

* WebProcess/Network/WebResourceLoadScheduler.cpp:
(WebKit::WebResourceLoadScheduler::willSendRequest):
* WebProcess/Network/WebResourceLoadScheduler.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134137 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Should pass fast/images/paletted-png-with-color-profile.html
https://bugs.webkit.org/show_bug.cgi?id=101551

Reviewed by Adam Barth.

Source/WebCore:

Support decoding color PALETTE images that have an ICC color profile.

Covered by fast/images/png-suite/test.html and many other fast/image tests.

* platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageDecoder::headerAvailable): Move the color profile code after the
transparency (tRNS) reader. Allow color PNG images: RGB, RGBA, PALLETE to be color
corrected. Use the transparency count from the tRNS reader to detect the expansion
of RGB and PALLETE image pixels to RGBA.

LayoutTests:

Update fast/images/paletted-png-with-color-profile.html image results for
Mac and Win (Chromium Android and Linux don't support color profiles).

* platform/chromium-mac/fast/images/paletted-png-with-color-profile-expected.png: Added.
* platform/chromium-win/fast/images/paletted-png-with-color-profile-expected.png: Added.
* platform/chromium/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134138 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Support list of tracks in caption media controls
https://bugs.webkit.org/show_bug.cgi?id=101669

Reviewed by Eric Carlson.

Add some new elements to the media control shadow DOM that display the list of available
tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
where it is given a very basic design. At the moment only the list of available tracks
are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670

No new tests - this doesn't expose any testable surface.

* css/mediaControls.css: Added default rules that hide the new elements.
* css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
(WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
(WebCore::MediaControlClosedCaptionsContainerElement::create):
(WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
(WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
(WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
* html/shadow/MediaControlElements.h:
(MediaControlElement):
(MediaControlToggleClosedCaptionsButtonElement):
(MediaControlClosedCaptionsContainerElement):
(MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
* html/shadow/MediaControlRootElement.cpp:
(WebCore::MediaControlRootElement::MediaControlRootElement):
(WebCore::MediaControlRootElement::create): New track container and list elements created.
(WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
(WebCore::MediaControlRootElement::hide):
(WebCore::MediaControlRootElement::makeTransparent):
(WebCore::MediaControlRootElement::reset):
(WebCore::MediaControlRootElement::reportedError):
(WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
(WebCore):
* html/shadow/MediaControlRootElement.h:
(WebCore):
(MediaControlRootElement):
* html/shadow/MediaControlRootElementChromium.cpp:
(WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
* html/shadow/MediaControls.h:
(MediaControls):
* platform/Language.cpp:
(WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
* platform/Language.h:
(WebCore):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134139 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[TexMap] Initialize m_compositedNativeImagePtr in GraphicsLayerTextureMapper.
https://bugs.webkit.org/show_bug.cgi?id=101675

Patch by Huang Dongsung <luxtella@company100.net> on 2012-11-09
Reviewed by Noam Rosenthal.

Fix a potential bug in GraphicsLayerTextureMapper. If the member's uninitialized
value equals image->nativeImageForCurrentFrame() by change, we can encounter
undefined behavior.

* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::setContentsToImage):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134140 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r134139.
http://trac.webkit.org/changeset/134139
https://bugs.webkit.org/show_bug.cgi?id=101823

breaks chromium (android) build (Requested by thorton on
#webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-11-09

* css/mediaControls.css:
* css/mediaControlsQuickTime.css:
(audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
(audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
* html/shadow/MediaControlElements.h:
(MediaControlElement):
(MediaControlToggleClosedCaptionsButtonElement):
* html/shadow/MediaControlRootElement.cpp:
(WebCore::MediaControlRootElement::MediaControlRootElement):
(WebCore::MediaControlRootElement::create):
(WebCore::MediaControlRootElement::setMediaController):
(WebCore::MediaControlRootElement::hide):
(WebCore::MediaControlRootElement::makeTransparent):
(WebCore::MediaControlRootElement::reset):
(WebCore::MediaControlRootElement::reportedError):
* html/shadow/MediaControlRootElement.h:
(WebCore):
(MediaControlRootElement):
* html/shadow/MediaControlRootElementChromium.cpp:
(WebCore::MediaControlRootElementChromium::initializeControls):
* html/shadow/MediaControls.h:
(MediaControls):
* platform/Language.cpp:
(WebCore):
* platform/Language.h:
(WebCore):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134141 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Coordinated Graphics: Amend CoordinatedBackingStore::paintToTextureMapper to fit its own semantic.
https://bugs.webkit.org/show_bug.cgi?id=101701

Patch by Huang Dongsung <luxtella@company100.net> on 2012-11-09
Reviewed by Noam Rosenthal.

Source/WebCore:

Add TiledBackingStore::rect() because CoordinatedTile needs to know
m_rect of TiledBackingStore.

* platform/graphics/TiledBackingStore.h:
(WebCore::TiledBackingStore::rect):

Source/WebKit2:

Currently, all subclasses of TextureMapperPlatformLayer implement
paintToTextureMapper to draw its own texture on the given targetRect. Subclasses
can scale the texture to fit the size of the targetRect. However, only
CoordinatedBackingStore::paintToTextureMapper draws its texture using its own
texture size. There is no bug yet, because TextureMapperLayer uses
CoordinatedBackingStore only as a backing store, not a content layer. So,
TextureMapperLayer always request CoordinatedBackingStore to draw using its own
texture size. However, we can use CoordinatedBackingStore as a content layer in
the future. So this patch fixes this potential bug.

* UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp:
(WebKit::CoordinatedBackingStore::setSize):
(WebKit):
(WebKit::mapToContents):
(WebKit::paintTilesToTextureMapper):
(WebKit::CoordinatedBackingStore::paintToTextureMapper):
* UIProcess/CoordinatedGraphics/CoordinatedBackingStore.h:
(CoordinatedBackingStore):
* UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:
(WebKit::LayerTreeCoordinatorProxy::createTileForLayer):
* UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.h:
(LayerTreeCoordinatorProxy):
* UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.messages.in:
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
(WebKit::LayerTreeRenderer::createTile):
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:
(LayerTreeRenderer):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::createTile):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:
(CoordinatedGraphicsLayerClient):
(CoordinatedGraphicsLayer):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedTile.cpp:
(WebKit::CoordinatedTile::updateBackBuffer):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedTile.h:
(CoordinatedTileClient):
* WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:
(WebKit::LayerTreeCoordinator::createTile):
* WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h:
(LayerTreeCoordinator):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134142 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add missing exports setMediaTypeOverride, setResolutionOverride and layerTreeAsText to WebKit2CFLite.def
https://bugs.webkit.org/show_bug.cgi?id=101816

Patch by Vivek Galatage <vivekgalatage@gmail.com> on 2012-11-09
Reviewed by Anders Carlsson.

Add missing exports setMediaTypeOverride, setResolutionOverride and layerTreeAsText to WebKit2CFLite.def to fix win-cairo build.

* win/WebKit2CFLite.def:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134143 268f45cc-cd09-0410-ab3c-d52691b4dbfc
No tests for changing mouse cursors
https://bugs.webkit.org/show_bug.cgi?id=100550

Patch by Rick Byers <rbyers@chromium.org> on 2012-11-09
Reviewed by Adam Barth.

.:

Add necessary exports for Internals::getCurrentCursorInfo

* Source/autotools/symbols.filter:

Source/WebCore:

Add infrastructure to keep track of the last set mouse cursor,
and then to query it from DumpRenderTree.

Test: fast/events/mouse-cursor.html

* WebCore.exp.in: Add Cursor copy ctor export
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
* page/EventHandler.h:
(WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
* testing/Internals.cpp:
(WebCore::cursorTypeToString): Helper to convert cursor type to enum
(WebCore):
(WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
* testing/Internals.h: Declare getCurrentCursorInfo
* testing/Internals.idl: Declare getCurrentCursorInfo

Source/WebKit2:

Add necessary exports for Internals::getCurrentCursorInfo

* win/WebKit2.def:
* win/WebKit2CFLite.def:

LayoutTests:

Add a simple test covering the basic scenarios of changing a mouse
cursor with CSS.  This includes most of the cases currently covered
by ManualTests/*cursor*.

* fast/events/mouse-cursor-expected.txt: Added.
* fast/events/mouse-cursor.html: Added.
* platform/chromium/TestExpectations: Add failure expectation.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134144 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Coordinated Graphics: Antialias the edge-tiles of CoordinatedBackingStore.
https://bugs.webkit.org/show_bug.cgi?id=101818

Patch by Huang Dongsung <luxtella@company100.net> on 2012-11-09
Reviewed by Noam Rosenthal.

Since we now have the entire surfaceRect, we can antialias the edge-tiles.

* UIProcess/CoordinatedGraphics/CoordinatedBackingStore.cpp:
(WebKit::CoordinatedBackingStore::paintTilesToTextureMapper):
(WebKit::CoordinatedBackingStore::paintToTextureMapper):
* UIProcess/CoordinatedGraphics/CoordinatedBackingStore.h:
(CoordinatedBackingStore):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134145 268f45cc-cd09-0410-ab3c-d52691b4dbfc
SimpleFontData::getCFStringAttributes sets some attributes to their default values, but shouldn’t
https://bugs.webkit.org/show_bug.cgi?id=101799

Reviewed by Alexey Proskuryakov.

In some configurations, setting kCTLigatureAttributeName to its default value of 1 yields
different behavior from not setting it at all. We can get the correct behavior and greatly
simplify the code by not setting attributes to their default values.

* platform/graphics/mac/SimpleFontDataCoreText.cpp:
Removed redundant #import directives and changed the remaining ones to #include.
(WebCore::SimpleFontData::getCFStringAttributes): Changed to use a mutable dictionary and
only add attributes that have non-default values.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134146 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Allow ports to decide whether an image should be directly composited
https://bugs.webkit.org/show_bug.cgi?id=101827

Reviewed by Simon Fraser.

Source/WebCore:

Tested by compositing/tiling/huge-layer-img.html.

* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::shouldDirectlyCompositeImage):
    Allow the GraphicsLayer implementation to decide if the image can be composited.

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::isDirectlyCompositedImage):
    Take onto account the new shouldDirectlyCompositeImage check.

Source/WebKit2:

Implement shouldDirectlyCompositeImage for coordinated graphics, effectively disabling direct
compositing of images with width or height larger than 2000 pixels.

* WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::shouldDirectlyCompositeImage):
(WebCore):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:
(CoordinatedGraphicsLayer):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134147 268f45cc-cd09-0410-ab3c-d52691b4dbfc