[GTK][WK2] A plugin dirtyRect within iframe remains after moving to a different page.
https://bugs.webkit.org/show_bug.cgi?id=121600

Reviewed by Gustavo Noronha Silva.

Nowhere to destroy NetscapePlugin::m_platformPluginWidget even after destroying
an instance of NetscapePlugin. So the created GtkWidget remains visible.

* WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
(WebKit::NetscapePlugin::platformDestroy):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156287 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Poor rendering opening a Google map short link
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
CTTE: htmlediting.h Element creation function should take a Document&
https://bugs.webkit.org/show_bug.cgi?id=121800

Reviewed by Antti Koivisto.

Thread the Document&!


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156289 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Added --64-bit option for Windows build.
https://bugs.webkit.org/show_bug.cgi?id=121799

Reviewed by Brent Fulgham.

* Scripts/webkitdirs.pm:
(determinePassedConfiguration): Add "|x64" for 64-bit configuration.
(isWin64): Added.
(determineIsWin64): Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156290 268f45cc-cd09-0410-ab3c-d52691b4dbfc
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
Web Inspector: [CSS Regions] Display CSS Regions flow name in the inspector overlay
https://bugs.webkit.org/show_bug.cgi?id=121794

Reviewed by Joseph Pecoraro.

Source/WebCore:

No new tests, the previous test for CSS Regions highlighting covers the flow name.

This patch adds the "Flow" property in the inspector overlay. The region
chain is already displayed with numbers, so it makes sense to have the flow
name around when a CSS region is highlighted.

I've consolidated the flow information into "elementInfo.flowInfo".
Flow info has two properties: "name" and "regions".

* inspector/InspectorOverlay.cpp:
(WebCore::buildObjectForCSSRegionsHighlight):
(WebCore::InspectorOverlay::buildObjectForHighlightedNode):
* inspector/InspectorOverlayPage.css:
(.css-property): Added the CSS property font color that the Inspector uses.
* inspector/InspectorOverlayPage.html: Added a new element to be used to display the flow-from property.
* inspector/InspectorOverlayPage.js:
(_drawElementTitle):
(drawNodeHighlight):

LayoutTests:

Updated the expected results after moving the regions to the elementInfo.flowInfo property.
Also, the test is now logging the name of the flow container in the output.

* http/tests/inspector/elements-test.js:
* inspector/elements/highlight-node-regions-expected.txt:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156292 268f45cc-cd09-0410-ab3c-d52691b4dbfc
video-object-fit tests are flaky
https://bugs.webkit.org/show_bug.cgi?id=121803

Rubber-stamped by Simon Fraser.

Removing an ad hoc 1.5 second timeout that these tests had. Loading video can take
longer.

* compositing/video/video-object-fit.html:
* media/video-object-fit-change.html:
* media/video-object-fit.html:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156293 268f45cc-cd09-0410-ab3c-d52691b4dbfc
ListHashSet should work with move-only types
https://bugs.webkit.org/show_bug.cgi?id=121802

Reviewed by Andreas Kling.

Source/WTF:

Add rvalue reference overloads and calls to std::forward and std::move where appropriate.

* wtf/ListHashSet.h:
(WTF::::removeFirst):
Implement this in terms of takeFirst.

(WTF::::takeFirst):
Look up the iterator before we move out the value so we won't break the hash invariant.

(WTF::::removeLast):
Implement this in terms of takeLast.

(WTF::::takeLast):
Look up the iterator before we move out the value so we won't break the hash invariant.

Tools:

* TestWebKitAPI/Tests/WTF/ListHashSet.cpp:
(TestWebKitAPI::TEST):
Add a test for move-only types.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156294 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Try to fix GTK build.
        
Not reviewed.

* accessibility/atk/AccessibilityObjectAtk.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(textForRenderer):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156295 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move LevelDB specific IDB files into their own subdirectory.
https://bugs.webkit.org/show_bug.cgi?id=121804

Rubberstamped by Alexey Proskuryakov.

* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:

* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp: Renamed from Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp.
(WebCore::recordInternalError):
(WebCore::putBool):
(WebCore::getInt):
(WebCore::putInt):
(WebCore::getVarInt):
(WebCore::putVarInt):
(WebCore::getString):
(WebCore::putString):
(WebCore::putIDBKeyPath):
(WebCore::compareKeys):
(WebCore::compareIndexKeys):
(WebCore::Comparator::compare):
(WebCore::Comparator::name):
(WebCore::isSchemaKnown):
(WebCore::setUpMetadata):
(WebCore::getMaxObjectStoreId):
(WebCore::DefaultLevelDBFactory::openLevelDB):
(WebCore::DefaultLevelDBFactory::destroyLevelDB):
(WebCore::IDBBackingStore::IDBBackingStore):
(WebCore::IDBBackingStore::~IDBBackingStore):
(WebCore::IDBBackingStore::open):
(WebCore::IDBBackingStore::openInMemory):
(WebCore::IDBBackingStore::create):
(WebCore::IDBBackingStore::getDatabaseNames):
(WebCore::IDBBackingStore::getIDBDatabaseMetaData):
(WebCore::getNewDatabaseId):
(WebCore::IDBBackingStore::createIDBDatabaseMetaData):
(WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
(WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
(WebCore::deleteRange):
(WebCore::IDBBackingStore::deleteDatabase):
(WebCore::checkObjectStoreAndMetaDataType):
(WebCore::IDBBackingStore::getObjectStores):
(WebCore::setMaxObjectStoreId):
(WebCore::IDBBackingStore::createObjectStore):
(WebCore::IDBBackingStore::deleteObjectStore):
(WebCore::IDBBackingStore::getRecord):
(WebCore::getNewVersionNumber):
(WebCore::IDBBackingStore::putRecord):
(WebCore::IDBBackingStore::clearObjectStore):
(WebCore::IDBBackingStore::deleteRecord):
(WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStore::keyExistsInObjectStore):
(WebCore::checkIndexAndMetaDataKey):
(WebCore::IDBBackingStore::getIndexes):
(WebCore::setMaxIndexId):
(WebCore::IDBBackingStore::createIndex):
(WebCore::IDBBackingStore::deleteIndex):
(WebCore::IDBBackingStore::putIndexDataForRecord):
(WebCore::findGreatestKeyLessThanOrEqual):
(WebCore::versionExists):
(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):
(WebCore::ObjectStoreKeyCursorImpl::clone):
(WebCore::ObjectStoreKeyCursorImpl::value):
(WebCore::ObjectStoreKeyCursorImpl::encodeKey):
(WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
(WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
(WebCore::ObjectStoreCursorImpl::create):
(WebCore::ObjectStoreCursorImpl::clone):
(WebCore::ObjectStoreCursorImpl::value):
(WebCore::ObjectStoreCursorImpl::encodeKey):
(WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
(WebCore::ObjectStoreCursorImpl::loadCurrentRow):
(WebCore::IndexKeyCursorImpl::create):
(WebCore::IndexKeyCursorImpl::clone):
(WebCore::IndexKeyCursorImpl::value):
(WebCore::IndexKeyCursorImpl::primaryKey):
(WebCore::IndexKeyCursorImpl::recordIdentifier):
(WebCore::IndexKeyCursorImpl::encodeKey):
(WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
(WebCore::IndexKeyCursorImpl::loadCurrentRow):
(WebCore::IndexCursorImpl::create):
(WebCore::IndexCursorImpl::clone):
(WebCore::IndexCursorImpl::value):
(WebCore::IndexCursorImpl::primaryKey):
(WebCore::IndexCursorImpl::recordIdentifier):
(WebCore::IndexCursorImpl::encodeKey):
(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/leveldb/IDBLevelDBCoding.cpp: Renamed from Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.cpp.
(WebCore::IDBLevelDBCoding::encodeByte):
(WebCore::IDBLevelDBCoding::decodeByte):
(WebCore::IDBLevelDBCoding::maxIDBKey):
(WebCore::IDBLevelDBCoding::minIDBKey):
(WebCore::IDBLevelDBCoding::encodeBool):
(WebCore::IDBLevelDBCoding::decodeBool):
(WebCore::IDBLevelDBCoding::encodeInt):
(WebCore::IDBLevelDBCoding::decodeInt):
(WebCore::IDBLevelDBCoding::compareInts):
(WebCore::IDBLevelDBCoding::encodeVarInt):
(WebCore::IDBLevelDBCoding::decodeVarInt):
(WebCore::IDBLevelDBCoding::encodeString):
(WebCore::IDBLevelDBCoding::decodeString):
(WebCore::IDBLevelDBCoding::encodeStringWithLength):
(WebCore::IDBLevelDBCoding::decodeStringWithLength):
(WebCore::IDBLevelDBCoding::compareEncodedStringsWithLength):
(WebCore::IDBLevelDBCoding::encodeDouble):
(WebCore::IDBLevelDBCoding::decodeDouble):
(WebCore::IDBLevelDBCoding::encodeIDBKey):
(WebCore::IDBLevelDBCoding::decodeIDBKey):
(WebCore::IDBLevelDBCoding::extractEncodedIDBKey):
(WebCore::IDBLevelDBCoding::keyTypeByteToKeyType):
(WebCore::IDBLevelDBCoding::compareEncodedIDBKeys):
(WebCore::IDBLevelDBCoding::encodeIDBKeyPath):
(WebCore::IDBLevelDBCoding::decodeIDBKeyPath):
(WebCore::IDBLevelDBCoding::compare):
(WebCore::IDBLevelDBCoding::KeyPrefix::KeyPrefix):
(WebCore::IDBLevelDBCoding::KeyPrefix::createWithSpecialIndex):
(WebCore::IDBLevelDBCoding::KeyPrefix::isValidDatabaseId):
(WebCore::IDBLevelDBCoding::KeyPrefix::isValidObjectStoreId):
(WebCore::IDBLevelDBCoding::KeyPrefix::isValidIndexId):
(WebCore::IDBLevelDBCoding::KeyPrefix::decode):
(WebCore::IDBLevelDBCoding::KeyPrefix::encodeEmpty):
(WebCore::IDBLevelDBCoding::KeyPrefix::encode):
(WebCore::IDBLevelDBCoding::KeyPrefix::encodeInternal):
(WebCore::IDBLevelDBCoding::KeyPrefix::compare):
(WebCore::IDBLevelDBCoding::KeyPrefix::type):
(WebCore::IDBLevelDBCoding::SchemaVersionKey::encode):
(WebCore::IDBLevelDBCoding::MaxDatabaseIdKey::encode):
(WebCore::IDBLevelDBCoding::DataVersionKey::encode):
(WebCore::IDBLevelDBCoding::DatabaseFreeListKey::DatabaseFreeListKey):
(WebCore::IDBLevelDBCoding::DatabaseFreeListKey::decode):
(WebCore::IDBLevelDBCoding::DatabaseFreeListKey::encode):
(WebCore::IDBLevelDBCoding::DatabaseFreeListKey::encodeMaxKey):
(WebCore::IDBLevelDBCoding::DatabaseFreeListKey::databaseId):
(WebCore::IDBLevelDBCoding::DatabaseFreeListKey::compare):
(WebCore::IDBLevelDBCoding::DatabaseNameKey::decode):
(WebCore::IDBLevelDBCoding::DatabaseNameKey::encode):
(WebCore::IDBLevelDBCoding::DatabaseNameKey::encodeMinKeyForOrigin):
(WebCore::IDBLevelDBCoding::DatabaseNameKey::encodeStopKeyForOrigin):
(WebCore::IDBLevelDBCoding::DatabaseNameKey::compare):
(WebCore::IDBLevelDBCoding::DatabaseMetaDataKey::encode):
(WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::ObjectStoreMetaDataKey):
(WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::decode):
(WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::encode):
(WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::encodeMaxKey):
(WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::objectStoreId):
(WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::metaDataType):
(WebCore::IDBLevelDBCoding::ObjectStoreMetaDataKey::compare):
(WebCore::IDBLevelDBCoding::IndexMetaDataKey::IndexMetaDataKey):
(WebCore::IDBLevelDBCoding::IndexMetaDataKey::decode):
(WebCore::IDBLevelDBCoding::IndexMetaDataKey::encode):
(WebCore::IDBLevelDBCoding::IndexMetaDataKey::encodeMaxKey):
(WebCore::IDBLevelDBCoding::IndexMetaDataKey::compare):
(WebCore::IDBLevelDBCoding::IndexMetaDataKey::indexId):
(WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::ObjectStoreFreeListKey):
(WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::decode):
(WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::encode):
(WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::encodeMaxKey):
(WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::objectStoreId):
(WebCore::IDBLevelDBCoding::ObjectStoreFreeListKey::compare):
(WebCore::IDBLevelDBCoding::IndexFreeListKey::IndexFreeListKey):
(WebCore::IDBLevelDBCoding::IndexFreeListKey::decode):
(WebCore::IDBLevelDBCoding::IndexFreeListKey::encode):
(WebCore::IDBLevelDBCoding::IndexFreeListKey::encodeMaxKey):
(WebCore::IDBLevelDBCoding::IndexFreeListKey::compare):
(WebCore::IDBLevelDBCoding::IndexFreeListKey::objectStoreId):
(WebCore::IDBLevelDBCoding::IndexFreeListKey::indexId):
(WebCore::IDBLevelDBCoding::ObjectStoreNamesKey::decode):
(WebCore::IDBLevelDBCoding::ObjectStoreNamesKey::encode):
(WebCore::IDBLevelDBCoding::ObjectStoreNamesKey::compare):
(WebCore::IDBLevelDBCoding::IndexNamesKey::IndexNamesKey):
(WebCore::IDBLevelDBCoding::IndexNamesKey::decode):
(WebCore::IDBLevelDBCoding::IndexNamesKey::encode):
(WebCore::IDBLevelDBCoding::IndexNamesKey::compare):
(WebCore::IDBLevelDBCoding::ObjectStoreDataKey::decode):
(WebCore::IDBLevelDBCoding::ObjectStoreDataKey::encode):
(WebCore::IDBLevelDBCoding::ObjectStoreDataKey::compare):
(WebCore::IDBLevelDBCoding::ObjectStoreDataKey::userKey):
(WebCore::IDBLevelDBCoding::ExistsEntryKey::decode):
(WebCore::IDBLevelDBCoding::ExistsEntryKey::encode):
(WebCore::IDBLevelDBCoding::ExistsEntryKey::compare):
(WebCore::IDBLevelDBCoding::ExistsEntryKey::userKey):
(WebCore::IDBLevelDBCoding::IndexDataKey::IndexDataKey):
(WebCore::IDBLevelDBCoding::IndexDataKey::decode):
(WebCore::IDBLevelDBCoding::IndexDataKey::encode):
(WebCore::IDBLevelDBCoding::IndexDataKey::encodeMinKey):
(WebCore::IDBLevelDBCoding::IndexDataKey::encodeMaxKey):
(WebCore::IDBLevelDBCoding::IndexDataKey::compare):
(WebCore::IDBLevelDBCoding::IndexDataKey::databaseId):
(WebCore::IDBLevelDBCoding::IndexDataKey::objectStoreId):
(WebCore::IDBLevelDBCoding::IndexDataKey::indexId):
(WebCore::IDBLevelDBCoding::IndexDataKey::userKey):
(WebCore::IDBLevelDBCoding::IndexDataKey::primaryKey):
* Modules/indexeddb/leveldb/IDBLevelDBCoding.h: Renamed from Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.h.
(WebCore::IDBLevelDBCoding::encodeIntSafely):
(WebCore::IDBLevelDBCoding::KeyPrefix::validIds):
(WebCore::IDBLevelDBCoding::DatabaseNameKey::origin):
(WebCore::IDBLevelDBCoding::DatabaseNameKey::databaseName):
(WebCore::IDBLevelDBCoding::IndexMetaDataKey::metaDataType):
(WebCore::IDBLevelDBCoding::ObjectStoreNamesKey::objectStoreName):
(WebCore::IDBLevelDBCoding::IndexNamesKey::indexName):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156296 268f45cc-cd09-0410-ab3c-d52691b4dbfc
iframe and scrollbar with "overflow:auto" should support autoscroll with mousedrag
https://bugs.webkit.org/show_bug.cgi?id=40981

Patch by Antonio Gomes <a1.gomes@sisa.samsung.com> on 2013-09-23
Reviewed by Darin Adler.

Source/WebCore:

RenderBox::calculateAutoscrollDirection does not properly translate
inner frames' coordinates in order to determine its auto-scrollability.
By coincidence, if the inner frame box it placed near to page's 0, 0 position
(upper left corner), it might work.

Patch fixes it by changing ::calculateAutoscrollDirection algorithm to operate
with window coordinates, taking inner frames offset and scroll position into account.
The behavior of auto-scrollable non-frame overflow boxes, including divs, still works
as it is used to.

Test: fast/events/drag-and-drop-autoscroll-inner-frame.html

* rendering/RenderBox.cpp:
(WebCore::RenderBox::calculateAutoscrollDirection):

LayoutTests:

Test ensures that dragging an element close to the boundary of
scrollable Frames, scroll its content in that direction.

* fast/events/drag-and-drop-autoscroll-inner-frame-expected.txt: Added.
* fast/events/drag-and-drop-autoscroll-inner-frame.html: Added.

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