WebKit-https.git
8 years agoMake SvgCubics performance test more consistent
pdr@google.com [Fri, 22 Jun 2012 23:26:12 +0000 (23:26 +0000)]
Make SvgCubics performance test more consistent
https://bugs.webkit.org/show_bug.cgi?id=89778

Reviewed by Ryosuke Niwa.

Previously this test ran twice for each iteration, but this led to inconsistent repaints.
This change updates the test to only run once per iteration, and adds even more cubics
so that the test runs consistently in the 80ms range on my Linux desktop.

Performance results on my desktop:
    RESULT SVG: SvgCubics= 80.5 ms
    median= 82.0 ms, stdev= 3.04138126515 ms, min= 75.0 ms, max= 85.0 ms

    RESULT SVG: SvgCubics= 80.1 ms
    median= 81.0 ms, stdev= 4.27668095607 ms, min= 74.0 ms, max= 88.0 ms

    RESULT SVG: SvgCubics= 81.45 ms
    median= 83.0 ms, stdev= 4.01839520207 ms, min= 75.0 ms, max= 89.0 ms

    RESULT SVG: SvgCubics= 78.9 ms
    median= 80.0 ms, stdev= 4.75289385533 ms, min= 72.0 ms, max= 87.0 ms

* SVG/SvgCubics.html:

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

8 years ago[chromium] Notify the document if a plugin accepts touch input events
commit-queue@webkit.org [Fri, 22 Jun 2012 23:24:56 +0000 (23:24 +0000)]
[chromium] Notify the document if a plugin accepts touch input events
https://bugs.webkit.org/show_bug.cgi?id=89769

Patch by Sadrul Habib Chowdhury <sadrul@chromium.org> on 2012-06-22
Reviewed by Adam Barth.

The browser sends touch events to webkit only if webkit has any touch-event handlers. So it is
necessary to notify the document when a plugin starts accepting touch-events so that it can in
turn tell the browser to send it touch events.

* public/WebPluginContainer.h:
(WebPluginContainer):
* src/WebPluginContainerImpl.cpp:
(WebKit::WebPluginContainerImpl::setIsAcceptingTouchEvents):
(WebKit):
(WebKit::WebPluginContainerImpl::WebPluginContainerImpl):
(WebKit::WebPluginContainerImpl::~WebPluginContainerImpl):
* src/WebPluginContainerImpl.h:
(WebPluginContainerImpl):

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

8 years agoUnreviewed, rolling out r121064.
kbr@google.com [Fri, 22 Jun 2012 23:16:51 +0000 (23:16 +0000)]
Unreviewed, rolling out r121064.
http://trac.webkit.org/changeset/121064
https://bugs.webkit.org/show_bug.cgi?id=88268

Broke Chromium Mac build.

Source/Platform:

* Platform.gypi:
* chromium/public/WebLayerTreeView.h:
(WebKit):
(WebLayerTreeView):
* chromium/public/WebRenderingStats.h: Removed.

Source/WebCore:

* WebCore.gypi:
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::CCLayerTreeHost):
(WebCore::CCLayerTreeHost::updateAnimations):
(WebCore::CCLayerTreeHost::finishCommitOnImplThread):
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
(WebCore):
(WebCore::CCLayerTreeHost::frameNumber):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
(WebCore::CCLayerTreeHostImpl::drawLayers):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
(WebCore::CCLayerTreeHostImpl::frameNumber):
(CCLayerTreeHostImpl):
* platform/graphics/chromium/cc/CCProxy.h:
(WebCore):
(CCProxy):
* platform/graphics/chromium/cc/CCRenderingStats.h: Removed.
* platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
* platform/graphics/chromium/cc/CCSingleThreadProxy.h:
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
* platform/graphics/chromium/cc/CCThreadProxy.h:
(CCThreadProxy):

Source/WebKit/chromium:

* public/WebView.h:
(WebKit):
(WebView):
* src/WebLayerTreeView.cpp:
* src/WebViewImpl.cpp:
* src/WebViewImpl.h:
(WebViewImpl):
* tests/CCLayerTreeHostTest.cpp:
(WTF::CCLayerTreeHostTestScrollSimple::layout):
(WTF::CCLayerTreeHostTestScrollMultipleRedraw::drawLayersOnCCThread):
(WTF::CCLayerTreeHostTestVisibilityAndAllocationControlDrawing::didCommitAndDrawFrame):
(WTF::CCLayerTreeHostTestVisibilityAndAllocationControlDrawing::didCommit):

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

8 years ago[EFL][WK2] Support keyboard event
ryuan.choi@samsung.com [Fri, 22 Jun 2012 23:13:42 +0000 (23:13 +0000)]
[EFL][WK2] Support keyboard event
https://bugs.webkit.org/show_bug.cgi?id=89268

Reviewed by Chang Shu.

Source/WebCore:

Extract keyDownCommandsMap and keyPressCommandsMap to share WebKit1/Efl and WebKit2/Efl.

* platform/efl/EflKeyboardUtilities.cpp:
(WebCore):
(WebCore::keyDownCommandsMap):
(WebCore::keyPressCommandsMap):
(KeyDownEntry):
(KeyPressEntry):
(WebCore::createKeyDownCommandMap):
(WebCore::createKeyPressCommandMap):
(WebCore::getKeyDownCommandName):
(WebCore::getKeyPressCommandName):
* platform/efl/EflKeyboardUtilities.h:
(WebCore):

Source/WebKit/efl:

Extract keyDownCommandsMap and keyPressCommandsMap to share WebKit1/Efl and WebKit2/Efl.

* WebCoreSupport/EditorClientEfl.cpp:
(WebCore::EditorClientEfl::interpretKeyEvent):

Source/WebKit2:

* WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp:
(WebKit::WebEditorClient::handleKeyboardEvent): Implemented default behavior.
* WebProcess/WebPage/efl/WebPageEfl.cpp:
(WebKit::WebPage::interpretKeyEvent): Implemented like WebKit1/Efl did.

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

8 years agoSkipping this test because it's failing most of the time since
bdakin@apple.com [Fri, 22 Jun 2012 23:09:43 +0000 (23:09 +0000)]
Skipping this test because it's failing most of the time since
recent modifications.
https://bugs.webkit.org/show_bug.cgi?id=89790 will be used to
track fixing the real issue.

* platform/mac/Skipped:

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

8 years agoIndexedDB: refactor index-writing to be more self-contained
commit-queue@webkit.org [Fri, 22 Jun 2012 23:06:18 +0000 (23:06 +0000)]
IndexedDB: refactor index-writing to be more self-contained
https://bugs.webkit.org/show_bug.cgi?id=89607

Patch by Alec Flett <alecflett@chromium.org> on 2012-06-22
Reviewed by Tony Chang.

Refactor index-writing into the IndexWriter class. Does not change
existing behavior but begins migrating index-writing logic into a
self-contained class that can eventually be used in the
frontend (renderer) side of IndexedDB.

No new tests, behavior is unchanged.

* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore):
(WebCore::IDBObjectStoreBackendImpl::putInternal):
(WebCore::IDBObjectStoreBackendImpl::populateIndex):

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

8 years ago[Chromium] Layout test plugins/embed-attributes-style.html failing on Mac
kbr@google.com [Fri, 22 Jun 2012 22:58:42 +0000 (22:58 +0000)]
[Chromium] Layout test plugins/embed-attributes-style.html failing on Mac
https://bugs.webkit.org/show_bug.cgi?id=89789

Unreviewed; disabled now-failing test.

* platform/chromium/TestExpectations:

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

8 years ago[chromium] Expose rendering statistics to WebWidget.
commit-queue@webkit.org [Fri, 22 Jun 2012 22:44:46 +0000 (22:44 +0000)]
[chromium] Expose rendering statistics to WebWidget.
https://bugs.webkit.org/show_bug.cgi?id=88268

Patch by Dave Tu <dtu@chromium.org> on 2012-06-22
Reviewed by James Robinson.

The WebKit side of a basic framework for exposing rendering statistics
to Chromium's --enable-benchmarking extension.

Source/Platform:

* chromium/public/WebLayerTreeView.h:
(WebRenderingStatistics):
(WebKit):
(WebLayerTreeView):

Source/WebCore:

* platform/graphics/chromium/cc/CCLayerTreeHost.h:
(WebCore::CCLayerTreeHost::implFrameNumber):
* platform/graphics/chromium/cc/CCProxy.h:
(CCProxy):
* platform/graphics/chromium/cc/CCSingleThreadProxy.h:
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxy::implFrameNumber):
(WebCore):
(WebCore::CCThreadProxy::implFrameNumberOnImplThread):
* platform/graphics/chromium/cc/CCThreadProxy.h:
(CCThreadProxy):

Source/WebKit/chromium:

* src/WebLayerTreeView.cpp:
(WebKit::WebLayerTreeView::renderingStatistics):
(WebKit):

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

8 years agoFix the CSS grid layout tests added in r120984
tony@chromium.org [Fri, 22 Jun 2012 22:37:58 +0000 (22:37 +0000)]
Fix the CSS grid layout tests added in r120984
https://bugs.webkit.org/show_bug.cgi?id=89782

Reviewed by Julien Chaffraix.

We need to call testRunner.overridePreference("WebKitCSSGridLayoutEnabled", true)
to enable grid layout in tests. These tests were passing due to other bugs in the tests.

* fast/css-grid-layout/containing-block-grids-expected.html: Simplify expected results.
* fast/css-grid-layout/containing-block-grids.html: Set the display to none and override it with grid/inline-grid to make sure it's applying.
The default display of block would also produce the correct results.
* fast/css-grid-layout/floating-empty-grids-expected.html: Fix a missing close } which was causing the
other styles to be ignored. Also, one of the boxes wasn't showing up because it was a div instead of a span.
* fast/css-grid-layout/floating-empty-grids.html: Same fixes as for expected.

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

8 years agoApplicationCache - verify that an open network whitelist doesn't break online vs...
michaeln@google.com [Fri, 22 Jun 2012 22:30:31 +0000 (22:30 +0000)]
ApplicationCache - verify that an open network whitelist doesn't break online vs fallback layering.
https://bugs.webkit.org/show_bug.cgi?id=89714

An explicit online network namespace should trump a fallback namespace, the fallback should not be used.
Chrome had a bug where if a '*' was in the NETWORK section, explicit entries got ignored, and that
expected behavior was botched. See http://code.google.com/p/chromium/issues/detail?id=133816 for more
details about the chrome bug and code change this LayoutTest aims to verify.

Reviewed by Tony Chang.

* http/tests/appcache/resources/online-fallback-layering.manifest:

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

8 years agorun_webkit_tests.py failed with AttributeError(''NoneType' object has no attribute...
dpranke@chromium.org [Fri, 22 Jun 2012 22:25:50 +0000 (22:25 +0000)]
run_webkit_tests.py failed with AttributeError(''NoneType' object has no attribute 'pid'')
https://bugs.webkit.org/show_bug.cgi?id=89734

Reviewed by Ryosuke Niwa.

Fix a crash in ServerProcess if you called .pid() after it
crashed during a write(). We had a test for this case but the
test wasn't calling pid(), just has_crashed(). Fixed the problem
and the test.

* Scripts/webkitpy/layout_tests/port/server_process.py:
(ServerProcess.__init__):
(ServerProcess.pid):
(ServerProcess._start):
(ServerProcess.stop):
* Scripts/webkitpy/layout_tests/port/server_process_unittest.py:
(FakeServerProcess._start):
(TestServerProcess.test_broken_pipe):

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

8 years ago[chromium] Do not accumulate occlusion from 3d layers on the main thread
shawnsingh@chromium.org [Fri, 22 Jun 2012 22:24:04 +0000 (22:24 +0000)]
[chromium] Do not accumulate occlusion from 3d layers on the main thread
https://bugs.webkit.org/show_bug.cgi?id=89704

Reviewed by James Robinson.

Source/WebCore:

Layer iterators on the main thread may not iterate over 3d layers
in correct front-to-back or back-to-front order, because layer
sorting is not performed on the main thread. As a result,
occlusion tracking can accidentally think something is occluded if
a 3d layer is processed out of order. This patch choses to solve
this by avoiding accumulating occlusion for 3d layers. It may be
appropriate later to consider adding layer sorting on the main
thread, but for now that seemed like an unnecessary heavy-handed
approach.

In addition to a new unit test that covers this, other unit tests
were changed to work on the impl thread, so that the 3d layers
still accumulate occlusion as required.

Unit test added to CCOcclusionTrackerTest:
  CCOcclusionTrackerTestUnsorted3dLayers

* platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
(WebCore::layerIsInUnsorted3dRenderingContext):
(WebCore):
(WebCore::::markOccludedBehindLayer):

Source/WebKit/chromium:

* tests/CCOcclusionTrackerTest.cpp:
(WebKitTests::CCOcclusionTrackerTest::calcDrawEtc):
(WebKitTests):
(CCOcclusionTrackerTestUnsorted3dLayers):
(WebKitTests::CCOcclusionTrackerTestUnsorted3dLayers::runMyTest):
(WebKitTests::CCOcclusionTrackerTestLargePixelsOccludeInsideClipRect::runMyTest):

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

8 years agoIndexedDB: Snapshot metadata in front end to avoid IPC round-trips
jsbell@chromium.org [Fri, 22 Jun 2012 22:09:22 +0000 (22:09 +0000)]
IndexedDB: Snapshot metadata in front end to avoid IPC round-trips
https://bugs.webkit.org/show_bug.cgi?id=88467

Reviewed by Tony Chang.

Source/WebCore:

Define a new type (IDBDatabaseMetadata) that captures the "schema" of an
IDB database (name, version, properties of stores, properties of indexes).
Add a method for the front end to request this from the back end once up
front to avoid later calls (which may be slow IPC calls in ports). Implement
IDB spec logic that the metadata should be frozen for a particular IDBDatabase
connection, and only change within a version change transaction, and the spec's
funky requirement for aborted version change transactions.

Test: storage/indexeddb/metadata.html

* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::IDBDatabase): Fetch metadata from back end when connection is created.
(WebCore::IDBDatabase::transactionCreated):
(WebCore::IDBDatabase::transactionFinished): Update metadata at the end of a transaction in
case it was rolled back.
(WebCore::IDBDatabase::objectStoreNames): Move implementation to front-end.
(WebCore):
(WebCore::IDBDatabase::createObjectStore): Update local copy of metadata.
(WebCore::IDBDatabase::deleteObjectStore): Update local copy of metadata.
* Modules/indexeddb/IDBDatabase.h:
(WebCore::IDBDatabase::name): Move implementation to front-end.
(WebCore::IDBDatabase::version): Move implementation to front-end.
(IDBDatabase):
(WebCore::IDBDatabase::metadata):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::metadata): Construct a metadata snapshot.
(WebCore):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(WebCore):
(IDBDatabaseBackendInterface):
* Modules/indexeddb/IDBIndex.cpp: Store a copy of the metadata, which will never
change during the lifetime of the index.
(WebCore::IDBIndex::IDBIndex):
* Modules/indexeddb/IDBIndex.h:
(WebCore::IDBIndex::create):
(WebCore::IDBIndex::name): Move implementation to front-end.
(WebCore::IDBIndex::objectStore): Return RefPtr (unrelated tidying).
(WebCore::IDBIndex::keyPath): Move implementation to front-end.
(WebCore::IDBIndex::unique): Move implementation to front-end.
(WebCore::IDBIndex::multiEntry): Move implementation to front-end.
(IDBIndex):
* Modules/indexeddb/IDBIndexBackendImpl.cpp:
(WebCore::IDBIndexBackendImpl::metadata): Construct a metadata snapshot.
(WebCore):
* Modules/indexeddb/IDBIndexBackendImpl.h:
(IDBIndexBackendImpl):
* Modules/indexeddb/IDBMetadata.h: Added new structs.
(WebCore):
(WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
(IDBDatabaseMetadata):
(WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
(IDBObjectStoreMetadata):
(WebCore::IDBIndexMetadata::IDBIndexMetadata):
(IDBIndexMetadata):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::IDBObjectStore): Store a "live" copy of the metadata, and
and copy in case of an aborted version change transaction.
(WebCore::IDBObjectStore::indexNames): Move implementation to front-end.
(WebCore::IDBObjectStore::createIndex): Update metadata to include new index.
(WebCore::IDBObjectStore::index): Pass along metadata to instance constructor.
(WebCore::IDBObjectStore::deleteIndex): Delete index from metadata.
* Modules/indexeddb/IDBObjectStore.h:
(WebCore::IDBObjectStore::create):
(WebCore::IDBObjectStore::name): Move implementation to front-end.
(WebCore::IDBObjectStore::keyPath): Move implementation to front-end.
(WebCore::IDBObjectStore::transaction): Return RefPtr (unrelated tidying).
(WebCore::IDBObjectStore::autoIncrement): Move implementation to front-end.
(WebCore::IDBObjectStore::metadata): Allow copying the metadata, in case of abort.
(WebCore::IDBObjectStore::resetMetadata): Allow setting the metadata, in case of abort.
(IDBObjectStore):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::metadata): Construct a metadata snapshot.
(WebCore):
* Modules/indexeddb/IDBObjectStoreBackendImpl.h:
(WebCore):
(IDBObjectStoreBackendImpl):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::objectStore): Pass along metadata to instance constructor.
(WebCore::IDBTransaction::objectStoreCreated): Track stores changed during transaction.
(WebCore::IDBTransaction::objectStoreDeleted):Track stores changed during transaction.
(WebCore::IDBTransaction::onAbort): Revert stores metadata potentially changed during transaction.
* Modules/indexeddb/IDBTransaction.h:
(IDBTransaction):
* WebCore.gypi:

Source/WebKit/chromium:

Add conversions to/from WebCore IDB metadata type and plumbing for routing the
IDBDatabaseBackendInterface::metadata() call through the public API..

* WebKit.gyp: New file added.
* public/WebIDBMetadata.h: Conversion functions.
(WebCore):
(WebIDBMetadata):
* src/IDBDatabaseBackendProxy.cpp: Plumbing.
(WebKit::IDBDatabaseBackendProxy::metadata):
(WebKit):
* src/IDBDatabaseBackendProxy.h: Plumbing.
(IDBDatabaseBackendProxy):
* src/WebIDBDatabaseImpl.cpp: Plumbing.
(WebKit::WebIDBDatabaseImpl::metadata):
(WebKit):
* src/WebIDBDatabaseImpl.h: Plumbing.
(WebKit):
(WebIDBDatabaseImpl):
* src/WebIDBMetadata.cpp: Added - conversion functions.
(WebKit):
(WebKit::WebIDBMetadata::WebIDBMetadata):
(WebKit::WebIDBMetadata::operator IDBDatabaseMetadata):

LayoutTests:

* storage/indexeddb/metadata-expected.txt: Added.
* storage/indexeddb/metadata.html: Added.
* storage/indexeddb/resources/metadata.js: Added.
(test):
(firstOpen.request.onsuccess.request.onsuccess.trans.oncomplete):
(firstOpen.request.onsuccess.request.onsuccess):
(firstOpen.request.onsuccess):
(firstOpen):
(secondOpen.request.onsuccess.request.onsuccess.trans.oncomplete):
(secondOpen.request.onsuccess.request.onsuccess):
(secondOpen.request.onsuccess):
(secondOpen):
(thirdOpen.request.onsuccess.request.onsuccess.trans.onabort):
(thirdOpen.request.onsuccess.request.onsuccess):
(thirdOpen.request.onsuccess):
(thirdOpen):
(fourthOpen.request.onsuccess.request.onsuccess.trans.oncomplete):
(fourthOpen.request.onsuccess.request.onsuccess):
(fourthOpen.request.onsuccess):
(fourthOpen):
(checkState):

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

8 years agoJSLock should be per-JSGlobalData
mhahnenberg@apple.com [Fri, 22 Jun 2012 21:42:46 +0000 (21:42 +0000)]
JSLock should be per-JSGlobalData
https://bugs.webkit.org/show_bug.cgi?id=89123

Reviewed by Gavin Barraclough.

Source/JavaScriptCore:

* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
* API/APIShims.h:
(APIEntryShimWithoutLock):
(JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock): Added an extra parameter to the constructor to
determine whether we should ref the JSGlobalData or not. We want to ref all the time except for in the
HeapTimer class because timerDidFire could run after somebody has started to tear down that particular
JSGlobalData, so we wouldn't want to resurrect the ref count of that JSGlobalData from 0 back to 1 after
its destruction has begun.
(JSC::APIEntryShimWithoutLock::~APIEntryShimWithoutLock): Now derefs if it also refed.
(JSC::APIEntryShim::APIEntryShim):
(APIEntryShim):
(JSC::APIEntryShim::~APIEntryShim):
(JSC::APIEntryShim::init): Factored out common initialization code for the various APIEntryShim constructors.
Also moved the timeoutChecker stop and start here because we need to start after we've grabbed the API lock
and before we've released it, which can only done in APIEntryShim.
(JSC::APICallbackShim::~APICallbackShim): We no longer need to synchronize here.
* API/JSContextRef.cpp:
(JSGlobalContextCreate):
(JSGlobalContextCreateInGroup):
(JSGlobalContextRelease):
(JSContextCreateBacktrace):
* heap/CopiedSpace.cpp:
(JSC::CopiedSpace::tryAllocateSlowCase):
* heap/Heap.cpp:
(JSC::Heap::protect):
(JSC::Heap::unprotect):
(JSC::Heap::collect):
(JSC::Heap::setActivityCallback):
(JSC::Heap::activityCallback):
(JSC::Heap::sweeper):
* heap/Heap.h: Changed m_activityCallback and m_sweeper to be raw pointers rather than OwnPtrs because they
are now responsible for their own lifetime. Also changed the order of declaration of the GCActivityCallback
and the IncrementalSweeper to make sure they're the last things that get initialized during construction to
prevent any issues with uninitialized memory in the JSGlobalData/Heap they might care about.
(Heap):
* heap/HeapTimer.cpp: Refactored to allow for thread-safe operation and shutdown.
(JSC::HeapTimer::~HeapTimer):
(JSC::HeapTimer::invalidate):
(JSC):
(JSC::HeapTimer::didStartVMShutdown): Called at the beginning of ~JSGlobalData. If we're on the same thread
that the HeapTimer is running on, we kill the HeapTimer ourselves. If not, then we set some state in the
HeapTimer and schedule it to fire immediately so that it can notice and kill itself.
(JSC::HeapTimer::timerDidFire): We grab our mutex and check our JSGlobalData pointer. If it has been zero-ed
out, then we know the VM has started to shutdown and we should kill ourselves. Otherwise, grab the APIEntryShim,
but without ref-ing the JSGlobalData (we don't want to bring the JSGlobalData's ref-count from 0 to 1) in case
we were interrupted between releasing our mutex and trying to grab the APILock.
* heap/HeapTimer.h:
(HeapTimer):
* heap/IncrementalSweeper.cpp:
(JSC::IncrementalSweeper::doWork): We no longer need the API shim here since HeapTimer::timerDidFire handles
all of that for us.
(JSC::IncrementalSweeper::create):
* heap/IncrementalSweeper.h:
(IncrementalSweeper):
* heap/MarkedAllocator.cpp:
(JSC::MarkedAllocator::allocateSlowCase):
* heap/WeakBlock.cpp:
(JSC::WeakBlock::reap):
* jsc.cpp:
(functionGC):
(functionReleaseExecutableMemory):
(jscmain):
* runtime/Completion.cpp:
(JSC::checkSyntax):
(JSC::evaluate):
* runtime/GCActivityCallback.h:
(DefaultGCActivityCallback):
(JSC::DefaultGCActivityCallback::create):
* runtime/JSGlobalData.cpp:
(JSC::JSGlobalData::JSGlobalData):
(JSC::JSGlobalData::~JSGlobalData): Signals to the two HeapTimers (GCActivityCallback and IncrementalSweeper)
that the VM has started shutting down. It then waits until the HeapTimer is done with whatever activity
it needs to do before continuing with any further destruction. Also asserts that we do not currently hold the
APILock because this could potentially cause deadlock when we try to signal to the HeapTimers using their mutexes.
(JSC::JSGlobalData::sharedInstance): Protect the initialization for the shared instance with the GlobalJSLock.
(JSC::JSGlobalData::sharedInstanceInternal):
* runtime/JSGlobalData.h: Change to be ThreadSafeRefCounted so that we don't have to worry about refing and
de-refing JSGlobalDatas on separate threads since we don't do it that often anyways.
(JSGlobalData):
(JSC::JSGlobalData::apiLock):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::~JSGlobalObject):
(JSC::JSGlobalObject::init):
* runtime/JSLock.cpp:
(JSC):
(JSC::GlobalJSLock::GlobalJSLock): For accessing the shared instance.
(JSC::GlobalJSLock::~GlobalJSLock):
(JSC::JSLockHolder::JSLockHolder): MutexLocker for JSLock. Also refs the JSGlobalData to keep it alive so that
it can successfully unlock it later without it disappearing from underneath it.
(JSC::JSLockHolder::~JSLockHolder):
(JSC::JSLock::JSLock):
(JSC::JSLock::~JSLock):
(JSC::JSLock::lock): Uses the spin lock for guarding the lock count and owner thread fields. Uses the mutex for
actually waiting for long periods.
(JSC::JSLock::unlock):
(JSC::JSLock::currentThreadIsHoldingLock):
(JSC::JSLock::dropAllLocks):
(JSC::JSLock::dropAllLocksUnconditionally):
(JSC::JSLock::grabAllLocks):
(JSC::JSLock::DropAllLocks::DropAllLocks):
(JSC::JSLock::DropAllLocks::~DropAllLocks):
* runtime/JSLock.h:
(JSC):
(GlobalJSLock):
(JSLockHolder):
(JSLock):
(DropAllLocks):
* runtime/WeakGCMap.h:
(JSC::WeakGCMap::set):
* testRegExp.cpp:
(realMain):

Source/WebCore:

No new tests. Current regression tests are sufficient.

Changed all sites that used JSLock to instead use the new JSLockHolder
and pass in the correct JS context that the code is about to interact with that
needs protection. Also added a couple JSLocks to places that didn't already
have it that needed it.

* bindings/js/GCController.cpp:
(WebCore::collect):
(WebCore::GCController::garbageCollectSoon):
(WebCore::GCController::garbageCollectNow):
(WebCore::GCController::discardAllCompiledCode):
* bindings/js/JSCustomSQLStatementErrorCallback.cpp:
(WebCore::JSSQLStatementErrorCallback::handleEvent):
* bindings/js/JSCustomVoidCallback.cpp:
(WebCore::JSCustomVoidCallback::handleEvent):
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
* bindings/js/JSErrorHandler.cpp:
(WebCore::JSErrorHandler::handleEvent):
* bindings/js/JSEventCustom.cpp:
(WebCore::toJS):
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::InjectedScriptHost::nodeAsScriptValue):
(WebCore::JSInjectedScriptHost::inspectedObject):
* bindings/js/JSInjectedScriptManager.cpp:
(WebCore::InjectedScriptManager::createInjectedScript):
(WebCore::InjectedScriptManager::canAccessInspectedWindow):
* bindings/js/JSLazyEventListener.cpp:
(WebCore::JSLazyEventListener::initializeJSFunction):
* bindings/js/JSMainThreadExecState.h:
(WebCore::JSMainThreadExecState::evaluate):
* bindings/js/JSMutationCallbackCustom.cpp:
(WebCore::JSMutationCallback::handleEvent):
* bindings/js/JSNodeFilterCondition.cpp:
(WebCore::JSNodeFilterCondition::acceptNode):
* bindings/js/JSRequestAnimationFrameCallbackCustom.cpp:
(WebCore::JSRequestAnimationFrameCallback::handleEvent):
* bindings/js/JavaScriptCallFrame.cpp:
(WebCore::JavaScriptCallFrame::evaluate):
* bindings/js/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::recompileAllJSFunctions):
* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::executeFunctionInContext):
* bindings/js/ScriptCachedFrameData.cpp:
(WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
(WebCore::ScriptCachedFrameData::restore):
(WebCore::ScriptCachedFrameData::clear):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::evaluateInWorld):
(WebCore::ScriptController::clearWindowShell):
(WebCore::ScriptController::initScript):
(WebCore::ScriptController::updateDocument):
(WebCore::ScriptController::cacheableBindingRootObject):
(WebCore::ScriptController::bindingRootObject):
(WebCore::ScriptController::windowScriptNPObject):
(WebCore::ScriptController::jsObjectForPluginElement):
(WebCore::ScriptController::clearScriptObjects):
* bindings/js/ScriptControllerMac.mm:
(WebCore::ScriptController::windowScriptObject):
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::dispatchDidPause):
* bindings/js/ScriptEventListener.cpp:
(WebCore::eventListenerHandlerBody):
(WebCore::eventListenerHandlerLocation):
* bindings/js/ScriptFunctionCall.cpp:
(WebCore::ScriptCallArgumentHandler::appendArgument):
(WebCore::ScriptFunctionCall::call):
(WebCore::ScriptFunctionCall::construct):
(WebCore::ScriptCallback::call):
* bindings/js/ScriptObject.cpp:
(WebCore::ScriptGlobalObject::set):
(WebCore::ScriptGlobalObject::get):
(WebCore::ScriptGlobalObject::remove):
* bindings/js/ScriptValue.cpp:
(WebCore::ScriptValue::getString):
(WebCore::ScriptValue::toInspectorValue):
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::~WorkerScriptController):
(WebCore::WorkerScriptController::initScript):
(WebCore::WorkerScriptController::evaluate):
(WebCore::WorkerScriptController::disableEval):
* bindings/objc/WebScriptObject.mm:
(_didExecute):
(-[WebScriptObject _setImp:originRootObject:rootObject:]):
(-[WebScriptObject _setOriginRootObject:andRootObject:]):
(-[WebScriptObject dealloc]):
(-[WebScriptObject finalize]):
(-[WebScriptObject callWebScriptMethod:withArguments:]):
(-[WebScriptObject evaluateWebScript:]):
(-[WebScriptObject setValue:forKey:]):
(-[WebScriptObject valueForKey:]):
(-[WebScriptObject removeWebScriptKey:]):
(-[WebScriptObject hasWebScriptKey:]):
(-[WebScriptObject stringRepresentation]):
(-[WebScriptObject webScriptValueAtIndex:]):
(-[WebScriptObject setWebScriptValueAtIndex:value:]):
(+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateCallbackImplementation):
* bindings/scripts/test/JS/JSTestCallback.cpp:
(WebCore::JSTestCallback::callbackWithNoParam):
(WebCore::JSTestCallback::callbackWithClass1Param):
(WebCore::JSTestCallback::callbackWithClass2Param):
(WebCore::JSTestCallback::callbackWithStringList):
(WebCore::JSTestCallback::callbackWithBoolean):
(WebCore::JSTestCallback::callbackRequiresThisToPass):
* bridge/NP_jsobject.cpp:
(_NPN_InvokeDefault):
(_NPN_Invoke):
(_NPN_Evaluate):
(_NPN_GetProperty):
(_NPN_SetProperty):
(_NPN_RemoveProperty):
(_NPN_HasProperty):
(_NPN_HasMethod):
(_NPN_Enumerate):
(_NPN_Construct):
* bridge/c/c_class.cpp:
(JSC::Bindings::CClass::~CClass):
(JSC::Bindings::CClass::methodsNamed):
(JSC::Bindings::CClass::fieldNamed):
* bridge/c/c_instance.cpp:
(JSC::Bindings::CInstance::moveGlobalExceptionToExecState):
(JSC::Bindings::CInstance::invokeMethod):
(JSC::Bindings::CInstance::invokeDefaultMethod):
(JSC::Bindings::CInstance::invokeConstruct):
(JSC::Bindings::CInstance::getPropertyNames):
* bridge/c/c_runtime.cpp:
(JSC::Bindings::CField::valueFromInstance):
(JSC::Bindings::CField::setValueToInstance):
* bridge/c/c_utility.cpp:
(JSC::Bindings::convertValueToNPVariant):
(JSC::Bindings::convertNPVariantToValue):
* bridge/jni/jni_jsobject.mm:
(JavaJSObject::call):
(JavaJSObject::eval):
(JavaJSObject::getMember):
(JavaJSObject::setMember):
(JavaJSObject::removeMember):
(JavaJSObject::getSlot):
(JavaJSObject::setSlot):
(JavaJSObject::toString):
(JavaJSObject::convertValueToJObject):
(JavaJSObject::convertJObjectToValue):
* bridge/jni/jni_objc.mm:
(JSC::Bindings::dispatchJNICall):
* bridge/jni/jsc/JNIUtilityPrivate.cpp:
(JSC::Bindings::convertValueToJValue):
* bridge/jni/jsc/JavaClassJSC.cpp:
(JavaClass::JavaClass):
(JavaClass::~JavaClass):
* bridge/jni/jsc/JavaInstanceJSC.cpp:
(JavaInstance::stringValue):
* bridge/jni/jsc/JavaMethodJSC.cpp:
(appendClassName):
(JavaMethod::signature):
* bridge/jni/jsc/JavaStringJSC.h:
(JSC::Bindings::JavaString::JavaString):
(JSC::Bindings::JavaString::~JavaString):
(JSC::Bindings::JavaString::utf8):
(JSC::Bindings::JavaString::init):
* bridge/jsc/BridgeJSC.cpp:
(JSC::Bindings::Instance::createRuntimeObject):
(JSC::Bindings::Instance::newRuntimeObject):
* bridge/objc/objc_instance.mm:
(ObjcInstance::moveGlobalExceptionToExecState):
(ObjcInstance::invokeObjcMethod):
(ObjcInstance::invokeDefaultMethod):
(ObjcInstance::setValueOfUndefinedField):
(ObjcInstance::getValueOfUndefinedField):
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::ObjcField::valueFromInstance):
(JSC::Bindings::ObjcField::setValueToInstance):
* bridge/objc/objc_utility.mm:
(JSC::Bindings::convertValueToObjcValue):
(JSC::Bindings::convertNSStringToString):
(JSC::Bindings::convertObjcValueToValue):
* bridge/qt/qt_instance.cpp:
(JSC::Bindings::QtInstance::~QtInstance):
(JSC::Bindings::QtInstance::getQtInstance):
(JSC::Bindings::QtInstance::newRuntimeObject):
* bridge/qt/qt_pixmapruntime.cpp:
(JSC::Bindings::QtPixmapInstance::createPixmapRuntimeObject):
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::convertValueToQVariant):
(JSC::Bindings::convertQVariantToValue):
(JSC::Bindings::QtRuntimeMetaMethod::call):
(JSC::Bindings::QtRuntimeConnectionMethod::call):
* bridge/qt/qt_runtime_qt4.cpp:
(JSC::Bindings::convertValueToQVariant):
(JSC::Bindings::convertQVariantToValue):
(JSC::Bindings::QtRuntimeMetaMethod::call):
(JSC::Bindings::QtRuntimeConnectionMethod::call):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createImageBuffer):
* html/HTMLImageLoader.cpp:
(WebCore::HTMLImageLoader::notifyFinished):
* plugins/PluginView.cpp:
(WebCore::PluginView::start):
(WebCore::PluginView::stop):
(WebCore::PluginView::performRequest):
(WebCore::PluginView::npObject):
(WebCore::PluginView::privateBrowsingStateChanged):
* plugins/blackberry/PluginViewBlackBerry.cpp:
(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::setNPWindowIfNeeded):
(WebCore::PluginView::platformStart):
(WebCore::PluginView::getWindowInfo):
* plugins/efl/PluginViewEfl.cpp:
(WebCore::PluginView::dispatchNPEvent):
* plugins/gtk/PluginViewGtk.cpp:
(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::handleKeyboardEvent):
(WebCore::PluginView::handleMouseEvent):
(WebCore::PluginView::setNPWindowIfNeeded):
(WebCore::PluginView::platformStart):
* plugins/mac/PluginViewMac.mm:
(WebCore::PluginView::setNPWindowIfNeeded):
(WebCore::PluginView::dispatchNPEvent):
* plugins/qt/PluginViewQt.cpp:
(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::setNPWindowIfNeeded):
(WebCore::PluginView::platformStart):
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::handleKeyboardEvent):
(WebCore::PluginView::handleMouseEvent):
(WebCore::PluginView::setNPWindowRect):
* testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::injectInternalsObject):
(WebCoreTestSupport::resetInternalsObject):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::dropProtection):

Source/WebKit/blackberry:

Changed all sites that used JSLock to instead use the new JSLockHolder
and pass in the correct JS context that the code is about to interact with that
needs protection.

* Api/BlackBerryGlobal.cpp:
(BlackBerry::WebKit::clearMemoryCaches):
* WebCoreSupport/ClientExtension.cpp:
* WebCoreSupport/PagePopupBlackBerry.cpp:
(WebCore::PagePopupBlackBerry::installDomFunction):
* WebKitSupport/DumpRenderTreeSupport.cpp:
(DumpRenderTreeSupport::computedStyleIncludingVisitedInfo):

Source/WebKit/efl:

Changed all sites that used JSLock to instead use the new JSLockHolder
and pass in the correct JS context that the code is about to interact with that
needs protection.

* ewk/ewk_frame.cpp:
(ewk_frame_script_execute):
* ewk/ewk_view.cpp:
(ewk_view_js_object_add):

Source/WebKit/gtk:

Changed all sites that used JSLock to instead use the new JSLockHolder
and pass in the correct JS context that the code is about to interact with that
needs protection.

* WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
(DumpRenderTreeSupportGtk::gcCountJavascriptObjects):

Source/WebKit/mac:

Changed all sites that used JSLock to instead use the new JSLockHolder
and pass in the correct JS context that the code is about to interact with that
needs protection.

* DOM/WebDOMOperations.mm:
(JSC):
* Misc/WebCoreStatistics.mm:
(+[WebCoreStatistics javaScriptObjectsCount]):
(+[WebCoreStatistics javaScriptGlobalObjectsCount]):
(+[WebCoreStatistics javaScriptProtectedObjectsCount]):
(+[WebCoreStatistics javaScriptProtectedGlobalObjectsCount]):
(+[WebCoreStatistics javaScriptProtectedObjectTypeCounts]):
(+[WebCoreStatistics javaScriptObjectTypeCounts]):
(+[WebCoreStatistics shouldPrintExceptions]):
(+[WebCoreStatistics setShouldPrintExceptions:]):
(+[WebCoreStatistics memoryStatistics]):
(+[WebCoreStatistics javaScriptReferencedObjectsCount]):
* Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::evaluate):
(WebKit::NetscapePluginInstanceProxy::invoke):
(WebKit::NetscapePluginInstanceProxy::invokeDefault):
(WebKit::NetscapePluginInstanceProxy::construct):
(WebKit::NetscapePluginInstanceProxy::getProperty):
(WebKit::NetscapePluginInstanceProxy::setProperty):
(WebKit::NetscapePluginInstanceProxy::removeProperty):
(WebKit::NetscapePluginInstanceProxy::hasMethod):
(WebKit::NetscapePluginInstanceProxy::enumerate):
(WebKit::NetscapePluginInstanceProxy::addValueToArray):
(WebKit::NetscapePluginInstanceProxy::moveGlobalExceptionToExecState):
* Plugins/WebNetscapePluginStream.mm:
(WebNetscapePluginStream::wantsAllStreams):
* Plugins/WebNetscapePluginView.mm:
(-[WebNetscapePluginView sendEvent:isDrawRect:]):
(-[WebNetscapePluginView privateBrowsingModeDidChange]):
(-[WebNetscapePluginView setWindowIfNecessary]):
(-[WebNetscapePluginView createPluginScriptableObject]):
(-[WebNetscapePluginView getFormValue:]):
(-[WebNetscapePluginView evaluateJavaScriptPluginRequest:]):
(-[WebNetscapePluginView webFrame:didFinishLoadWithReason:]):
(-[WebNetscapePluginView loadPluginRequest:]):
(-[WebNetscapePluginView _printedPluginBitmap]):
* Plugins/WebPluginController.mm:
(+[WebPluginController plugInViewWithArguments:fromPluginPackage:]):
(-[WebPluginController stopOnePlugin:]):
(-[WebPluginController destroyOnePlugin:]):
(-[WebPluginController startAllPlugins]):
(-[WebPluginController addPlugin:]):
* WebView/WebFrame.mm:
(-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
(-[WebFrame _stringByEvaluatingJavaScriptFromString:withGlobalObject:inScriptWorld:]):
* WebView/WebScriptDebugDelegate.mm:
(-[WebScriptCallFrame scopeChain]):
(-[WebScriptCallFrame evaluateWebScript:]):
* WebView/WebView.mm:
(+[WebView _reportException:inContext:]):
(-[WebView aeDescByEvaluatingJavaScriptFromString:]):
(-[WebView _computedStyleIncludingVisitedInfo:forElement:]):

Source/WebKit/qt:

Changed all sites that used JSLock to instead use the new JSLockHolder
and pass in the correct JS context that the code is about to interact with that
needs protection.

* Api/qwebframe.cpp:
(QWebFramePrivate::addQtSenderToGlobalObject):
(QWebFrame::addToJavaScriptWindowObject):
* WebCoreSupport/DumpRenderTreeSupportQt.cpp:
(DumpRenderTreeSupportQt::injectInternalsObject):
(DumpRenderTreeSupportQt::resetInternalsObject):

Source/WebKit/win:

Changed all sites that used JSLock to instead use the new JSLockHolder
and pass in the correct JS context that the code is about to interact with that
needs protection.

* WebCoreStatistics.cpp:
(WebCoreStatistics::javaScriptObjectsCount):
(WebCoreStatistics::javaScriptGlobalObjectsCount):
(WebCoreStatistics::javaScriptProtectedObjectsCount):
(WebCoreStatistics::javaScriptProtectedGlobalObjectsCount):
(WebCoreStatistics::javaScriptProtectedObjectTypeCounts):
* WebFrame.cpp:
(WebFrame::stringByEvaluatingJavaScriptInScriptWorld):
* WebJavaScriptCollector.cpp:
(WebJavaScriptCollector::objectCount):
* WebView.cpp:
(WebView::stringByEvaluatingJavaScriptFromString):
(WebView::reportException):
(WebView::elementFromJS):

Source/WebKit2:

Changed all sites that used JSLock to instead use the new JSLockHolder
and pass in the correct JS context that the code is about to interact with that
needs protection.

* Shared/mac/WebMemorySampler.mac.mm:
(WebKit::WebMemorySampler::sampleWebKit):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::javaScriptObjectsCount):
(WebKit::InjectedBundle::reportException):
* WebProcess/Plugins/Netscape/JSNPObject.cpp:
(WebKit::JSNPObject::callMethod):
(WebKit::JSNPObject::callObject):
(WebKit::JSNPObject::callConstructor):
(WebKit::JSNPObject::put):
(WebKit::JSNPObject::deleteProperty):
(WebKit::JSNPObject::getOwnPropertyNames):
(WebKit::JSNPObject::propertyGetter):
* WebProcess/Plugins/Netscape/NPJSObject.cpp:
(WebKit::NPJSObject::hasMethod):
(WebKit::NPJSObject::invoke):
(WebKit::NPJSObject::invokeDefault):
(WebKit::NPJSObject::hasProperty):
(WebKit::NPJSObject::getProperty):
(WebKit::NPJSObject::setProperty):
(WebKit::NPJSObject::removeProperty):
(WebKit::NPJSObject::enumerate):
(WebKit::NPJSObject::construct):
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
(WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
(WebKit::NPRuntimeObjectMap::evaluate):
(WebKit::NPRuntimeObjectMap::moveGlobalExceptionToExecState):
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::jsWrapperForWorld):
(WebKit::WebFrame::computedStyleIncludingVisitedInfo):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::runJavaScriptInMainFrame):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::getWebCoreStatistics):

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

8 years ago[Chromium] Browser Plugin: Expose advanceFocus to WebKit API so that guests can advan...
fsamuel@chromium.org [Fri, 22 Jun 2012 21:28:33 +0000 (21:28 +0000)]
[Chromium] Browser Plugin: Expose advanceFocus to WebKit API so that guests can advance focus of theirs embedders
https://bugs.webkit.org/show_bug.cgi?id=88827

Reviewed by Darin Fisher.

A browser plugin needs to be able to tells its embedder when the guest
is done tabbing through controls and wants its embedder to advance its
tab position.

* public/WebView.h:
(WebView):
(WebKit::WebView::advanceFocus):
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::advanceFocus):
(WebKit):
* src/WebViewImpl.h:
(WebViewImpl):

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

8 years agoediting/spelling/grammar-edit-word.html fails on WK2 bots
jonlee@apple.com [Fri, 22 Jun 2012 20:59:18 +0000 (20:59 +0000)]
editing/spelling/grammar-edit-word.html fails on WK2 bots
https://bugs.webkit.org/show_bug.cgi?id=89199

* platform/mac-wk2/Skipped:

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

8 years ago[Chromium] Change implementing a fast-path for copying GPU-accelerated Canvas2D insta...
commit-queue@webkit.org [Fri, 22 Jun 2012 20:45:52 +0000 (20:45 +0000)]
[Chromium] Change implementing a fast-path for copying GPU-accelerated Canvas2D instances to WebGL textures.
https://bugs.webkit.org/show_bug.cgi?id=86275

This change adds the necessary plumbing to the various rendering contexts to copy the backing store texture of
a Canvas2D instance to be copied to a WebGL texture.  The GL_CHROMIUM_copy_texture extension is necessary
because the backing-store for a GPU-accelerated skia Canvas2D is normally in BGRA format, which is not supported
by glCopyTexImage.

Patch by Jeff Timanus <twiz@chromium.org> on 2012-06-22
Reviewed by Kenneth Russell.

Source/Platform:

* chromium/public/WebGraphicsContext3D.h:
(WebGraphicsContext3D):
(WebKit::WebGraphicsContext3D::copyTextureCHROMIUM):

Source/WebCore:

Test: fast/canvas/webgl/*

* html/canvas/WebGLRenderingContext.cpp:
(WebCore):
(WebCore::WebGLRenderingContext::texImage2D):
* platform/chromium/support/Extensions3DChromium.cpp:
(WebCore::Extensions3DChromium::copyTextureCHROMIUM):
(WebCore):
* platform/graphics/Extensions3D.h:
(Extensions3D):
* platform/graphics/ImageBuffer.cpp:
(WebCore):
(WebCore::ImageBuffer::copyToPlatformTexture):
* platform/graphics/ImageBuffer.h:
(WebCore):
(ImageBuffer):
* platform/graphics/chromium/Canvas2DLayerBridge.cpp:
(WebCore::Canvas2DLayerBridge::backBufferTexture):
(WebCore):
* platform/graphics/chromium/Canvas2DLayerBridge.h:
(Canvas2DLayerBridge):
* platform/graphics/chromium/Extensions3DChromium.h:
(Extensions3DChromium):
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::copyTextureCHROMIUM):
(WebCore):
* platform/graphics/opengl/Extensions3DOpenGL.h:
(Extensions3DOpenGL):
* platform/graphics/qt/Extensions3DQt.cpp:
(WebCore::Extensions3DQt::copyTextureCHROMIUM):
(WebCore):
* platform/graphics/qt/Extensions3DQt.h:
(Extensions3DQt):
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::ImageBuffer::copyToPlatformTexture):
(WebCore):

Source/WebKit/chromium:

* DEPS: Rolled chromium to 143630 to fix chromium-linux ews failures.

LayoutTests:

* platform/chromium/TestExpectations: Temporarily suppressed layout test, fast/canvas/webgl/gl-teximage.html until a rebaseline can be submitted.

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

8 years agoLayout Test media/event-attributes.html is failing
kbr@google.com [Fri, 22 Jun 2012 20:37:06 +0000 (20:37 +0000)]
Layout Test media/event-attributes.html is failing
https://bugs.webkit.org/show_bug.cgi?id=73692

Unreviewed test expectations update; mark test as occasionally
crashing as well.

* platform/chromium/TestExpectations:

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

8 years agoAdd url to supportsType
commit-queue@webkit.org [Fri, 22 Jun 2012 20:28:26 +0000 (20:28 +0000)]
Add url to supportsType
https://bugs.webkit.org/show_bug.cgi?id=89514

Patch by Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk> on 2012-06-22
Reviewed by Eric Carlson.

No new tests since there's no change on code behavior.

When a blob is created as the address for a Media Stream, the MediaEngine
will ask it's players if they support that media. However, a player built
for MediaStream needs to know to URL to decide if it's supported or not.

* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::canPlayType):
(WebCore::HTMLMediaElement::selectNextSourceChild):
* html/HTMLMediaElement.h:
* platform/graphics/MediaPlayer.cpp:
(MediaPlayerFactory):
(WebCore::MediaPlayerFactory::MediaPlayerFactory):
(WebCore):
(WebCore::textPlain):
(WebCore::bestMediaEngineForTypeAndCodecs):
(WebCore::MediaPlayer::load):
(WebCore::MediaPlayer::loadWithNextMediaEngine):
(WebCore::MediaPlayer::paint):
(WebCore::MediaPlayer::supportsType):
* platform/graphics/MediaPlayer.h:
(WebCore):
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::supportsType):
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
(MediaPlayerPrivateAVFoundationCF):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
(MediaPlayerPrivateAVFoundationObjC):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType):
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::supportsType):
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
(MediaPlayerPrivate):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(MediaPlayerPrivateGStreamer):
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
(MediaPlayerPrivateQTKit):
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::supportsType):
* platform/graphics/qt/MediaPlayerPrivateQt.cpp:
(WebCore::MediaPlayerPrivateQt::supportsType):
* platform/graphics/qt/MediaPlayerPrivateQt.h:
(MediaPlayerPrivateQt):
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::supportsType):
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
(MediaPlayerPrivateQuickTimeVisualContext):
* platform/graphics/wince/MediaPlayerPrivateWinCE.h:
(MediaPlayerPrivate):

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

8 years agofast/canvas/canvas-createImageData.html crashes on Lion WK2 Debug bot
jonlee@apple.com [Fri, 22 Jun 2012 20:26:14 +0000 (20:26 +0000)]
fast/canvas/canvas-createImageData.html crashes on Lion WK2 Debug bot
https://bugs.webkit.org/show_bug.cgi?id=89780

* platform/mac-wk2/Skipped: Add to skipped list for wk2.

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

8 years ago[BlackBerry] Sanitize GLSL code using ANGLE.
commit-queue@webkit.org [Fri, 22 Jun 2012 20:10:10 +0000 (20:10 +0000)]
[BlackBerry] Sanitize GLSL code using ANGLE.

BlackBerry port does not sanitize GLSL code with ANGLE
https://bugs.webkit.org/show_bug.cgi?id=89583

Patch by Joshua Netterfield <jnetterfield@rim.com> on 2012-06-22
Reviewed by Rob Buis.

.:

* Source/cmake/OptionsBlackBerry.cmake: Include ANGLE openGL headers as system headers in BlackBerry port.

Source/ThirdParty/ANGLE:

* src/compiler/osinclude.h: Recognises QNX as POSIX

Source/WebCore:

No new tests are required.

* CMakeLists.txt: Added ANGLE requirment for CMake builds with WEBGL
* platform/graphics/ANGLEWebKitBridge.h: Added include for ANGLE/ShaderLang.h in BlackBerry platform.
* platform/graphics/GraphicsContext3D.h: Added include for ANGLEWebKitBridge.h in BlackBerry platform.

Source/WebKit:

* PlatformBlackBerry.cmake: Add ANGLE sources to BlackBerry builds.

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

8 years agoRenderText’s minimum preferred width is incorrect when soft hyphens are used
mitz@apple.com [Fri, 22 Jun 2012 20:06:54 +0000 (20:06 +0000)]
RenderText’s minimum preferred width is incorrect when soft hyphens are used
https://bugs.webkit.org/show_bug.cgi?id=89775

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/text/soft-hyphen-min-preferred-width.html

* rendering/RenderText.cpp:
(WebCore::hyphenWidth): Added this helper function.
(WebCore::RenderText::computePreferredLogicalWidths): In places where this function tests
for the soft hyphen character, added a check that the 'hyphens' style property is not set
to 'none', because in that case soft hyphens are not break opportunities. Also added an
explicit check to suppress break opportunities from isBreakable() if the occur after a
soft hyphen and 'hyphens' is set to 'none'. Finally, when measuring text up to a potential
line break, added the width of the hyphen string when needed.

LayoutTests:

* fast/text/soft-hyphen-min-preferred-width-expected.html: Added.
* fast/text/soft-hyphen-min-preferred-width.html: Added.

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

8 years ago[BlackBerry] Tap highlight fade animations are added to overlay continuously during...
commit-queue@webkit.org [Fri, 22 Jun 2012 19:16:28 +0000 (19:16 +0000)]
[BlackBerry] Tap highlight fade animations are added to overlay continuously during pinch zoom.
https://bugs.webkit.org/show_bug.cgi?id=89772

Patch by Andrew Lo <anlo@rim.com> on 2012-06-22
Reviewed by Antonio Gomes.

When pinch zooming, DefaultTapHighlight::hide is continuously
called from the UI thread. This resulted in fade animations being
created and added to the override overlay continuously.

This patch moves the m_visible check so that it applies for both
threads.

Internal PR164183

* WebKitSupport/DefaultTapHighlight.cpp:
(BlackBerry::WebKit::DefaultTapHighlight::draw):
(BlackBerry::WebKit::DefaultTapHighlight::hide):
* WebKitSupport/DefaultTapHighlight.h:
(DefaultTapHighlight):

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

8 years agoBitmapImage duplicates code to calculate size
dino@apple.com [Fri, 22 Jun 2012 19:10:20 +0000 (19:10 +0000)]
BitmapImage duplicates code to calculate size
https://bugs.webkit.org/show_bug.cgi?id=89728
<rdar://problem/11724321>

Reviewed by Darin Adler.

Add a new updateSize method to BitmapImage that
avoids duplication in the size and
sizeRespectingOrientation methods.

No new tests needed.

* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::updateSize): new method that will set
m_size and m_sizeRespectingOrientation if necessary.
(WebCore):
(WebCore::BitmapImage::size):
(WebCore::BitmapImage::sizeRespectingOrientation): these each
now call updateSize rather than duplicate the update code.
* platform/graphics/BitmapImage.h:
(BitmapImage):

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

8 years ago[V8] Clean up visitDOMWrapper code
arv@chromium.org [Fri, 22 Jun 2012 18:55:02 +0000 (18:55 +0000)]
[V8] Clean up visitDOMWrapper code
https://bugs.webkit.org/show_bug.cgi?id=89774

Reviewed by Tony Chang.

This moves the check if domWrapperVisitorFunction is null into a function of the WrapperTypeInfo struct.
This is so that users of WrapperTypeInfo does not need to know about the inner details of the struct.
It also makes things more consistent since the other fields in the struct have these kind of functions.

This is a follow up change to http://trac.webkit.org/changeset/120854.

No new tests. Covered by existing tests.

* bindings/v8/V8GCController.cpp:
(WebCore::GrouperVisitor::visitDOMWrapper): Call WrapperTypeInfo::visitDOMWrapper instead.
* bindings/v8/WrapperTypeInfo.h:
(WrapperTypeInfo):
(WebCore::WrapperTypeInfo::visitDOMWrapper): If domWrapperVisitorFunction is non null call it.

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

8 years agoWeb Inspector: ExtensionPanel.onSearch listener doesn't work
caseq@chromium.org [Fri, 22 Jun 2012 18:47:56 +0000 (18:47 +0000)]
Web Inspector: ExtensionPanel.onSearch listener doesn't work
https://bugs.webkit.org/show_bug.cgi?id=89517

Patch by Jan Keromnes <janx@linux.com> on 2012-06-22
Reviewed by Yury Semikhatsky.

Source/WebCore:

Added a test to see if listener fires on search:
LayoutTests/inspector/extensions/extensions-panel.html

* inspector/front-end/ExtensionPanel.js:
(WebInspector.ExtensionPanel.prototype.searchCanceled):
(WebInspector.ExtensionPanel.prototype.performSearch):
(WebInspector.ExtensionPanel.prototype.jumpToNextSearchResult):
(WebInspector.ExtensionPanel.prototype.jumpToPreviousSearchResult):

LayoutTests:

* inspector/extensions/extensions-panel-expected.txt:
* inspector/extensions/extensions-panel.html:

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

8 years ago[BlackBerry] Set WebSecurityEnabled flag accordingly.
commit-queue@webkit.org [Fri, 22 Jun 2012 18:40:18 +0000 (18:40 +0000)]
[BlackBerry] Set WebSecurityEnabled flag accordingly.
https://bugs.webkit.org/show_bug.cgi?id=89602

Patch by Yong Li <yoli@rim.com> on 2012-06-22
Reviewed by Rob Buis.

Disable web security checks if needed.

* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::init):
(BlackBerry::WebKit::WebPagePrivate::didChangeSettings):

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

8 years agoIncrease the GrContext texture cache count cap to 2K
commit-queue@webkit.org [Fri, 22 Jun 2012 18:32:00 +0000 (18:32 +0000)]
Increase the GrContext texture cache count cap to 2K
https://bugs.webkit.org/show_bug.cgi?id=89761

Patch by Brian Salomon <bsalomon@google.com> on 2012-06-22
Reviewed by Stephen White.

Tests: The change is for performance. The code is exercised by all the canvas 2d layout tests.

* platform/chromium/support/GraphicsContext3DPrivate.cpp:

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

8 years ago[Chromium] Adjust the displayed elements of the new Chrome media controls.
commit-queue@webkit.org [Fri, 22 Jun 2012 18:25:08 +0000 (18:25 +0000)]
[Chromium] Adjust the displayed elements of the new Chrome media controls.
https://bugs.webkit.org/show_bug.cgi?id=89416

Patch by Silvia Pfeiffer <silviapf@chromium.org> on 2012-06-22
Reviewed by Eric Carlson.

Source/WebCore:

No new tests - existing media tests cover these cases.

Remove the volume slider for videos without audio or media resource.
Display the transport bar for videos without a media resource.
Don't show the fullscreen button for

* html/shadow/MediaControlRootElementChromium.cpp:
(WebCore::MediaControlRootElementChromium::reset):
Don't display volume slider if media controller has no audio.
Don't display fullscreen button if media controller supportsFullscreen().
(WebCore::MediaControlRootElementChromium::reportedError):
Don't hide the timeline for failed videos, e.g. where the resource doesn't load.

LayoutTests:

* platform/chromium/TestExpectations:
Skipping a test temporarily for win and mac until rebaseline.

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

8 years agoWeb Inspector: [Elements] Right-clicking on whitespace should show the same context...
apavlov@chromium.org [Fri, 22 Jun 2012 18:22:43 +0000 (18:22 +0000)]
Web Inspector: [Elements] Right-clicking on whitespace should show the same context menu as right-clicking on the tag text
https://bugs.webkit.org/show_bug.cgi?id=89766

Reviewed by Vsevolod Vlasov.

Explicitly check for the TreeElement.representedObject's nodeType()
rather than for the event target's enclosing element class.
Drive-by: do not consider the "collapsed node has children" ellipsis as a text node.
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeOutline.prototype.populateContextMenu):

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

8 years agoREGRESSION (Safari 5.1.5 - ToT): Crash in RenderSVGRoot::computeReplacedLogicalWidth
fmalita@chromium.org [Fri, 22 Jun 2012 18:19:32 +0000 (18:19 +0000)]
REGRESSION (Safari 5.1.5 - ToT): Crash in RenderSVGRoot::computeReplacedLogicalWidth
https://bugs.webkit.org/show_bug.cgi?id=85797

Reviewed by Darin Adler.

Source/WebCore:

Test: svg/custom/svg-width-intrinsic-crash.html

RenderSVGRoot::computeReplacedLogicalWidth assumes that if
SVGSVGElement::widthAttributeEstablishesViewport returns false, the
SVG must be embedded via <object>. This is not always the case, though:
widthAttributeEstablishesViewport can also return false for inline
SVG if it doesn't have a replaced logical width.

Updated computeReplacedLogical{Width,Height} to handle the
!widthAttributeEstablishesViewport && !isEmbeddedThroughFrameContainingSVGDocument
case gracefully.

* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::computeReplacedLogicalWidth):
(WebCore::RenderSVGRoot::computeReplacedLogicalHeight):

LayoutTests:

* svg/custom/svg-width-intrinsic-crash-expected.txt: Added.
* svg/custom/svg-width-intrinsic-crash.html: Added.

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

8 years agoModify event re-targeting algorithm so that we can tell which distributed node is...
hayato@chromium.org [Fri, 22 Jun 2012 18:10:03 +0000 (18:10 +0000)]
Modify event re-targeting algorithm so that we can tell which distributed node is clicked.
https://bugs.webkit.org/show_bug.cgi?id=89073

Reviewed by Dimitri Glazkov.

Source/WebCore:

Re-landing r120945 since bug 89172 was resolved.

Adopt a new event re-targeting algorithm in the latest Shadow DOM spec.
The corresponding bug in the shadow DOM spec is:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=17090

This change is introduced to handle the following use case:
1. There is an insertion point, with zero or more nodes distributed into it.
2. User clicks on one of the items.
3. The event handler in shadow DOM subtree wants to know which item was clicked on.

The new re-targeting algorithm sets an event's target to a
distributed node where an event was originally fired, instead of
an insertion point to where the node is distributed.

The similar re-targeting algorithm also applies to an event's
relatedTarget.

Test: fast/dom/shadow/shadow-dom-event-dispatching.html

* dom/EventDispatcher.cpp:
(WebCore::EventRelatedTargetAdjuster::adjust):
(WebCore::EventDispatcher::ensureEventAncestors):

LayoutTests:

* fast/dom/shadow/shadow-dom-event-dispatching-expected.txt:

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

8 years agoUnreviewed follow-up to r121030, fix display of "Duration" in timeline event details...
caseq@chromium.org [Fri, 22 Jun 2012 18:07:44 +0000 (18:07 +0000)]
Unreviewed follow-up to r121030, fix display of "Duration" in timeline event details popup.

* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel.Record.prototype.generatePopupContent):

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

8 years agoUnreviewed, rolling out r121025.
kbr@google.com [Fri, 22 Jun 2012 17:42:18 +0000 (17:42 +0000)]
Unreviewed, rolling out r121025.
http://trac.webkit.org/changeset/121025
https://bugs.webkit.org/show_bug.cgi?id=89580

Caused crash in
EventHandler.shouldTurnVerticalTicksIntoHorizontal webkit unit
test on 10.7

Source/WebCore:

* page/EventHandler.cpp:
(WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):
(WebCore::EventHandler::handleWheelEvent):
* page/EventHandler.h:
(EventHandler):
* page/chromium/EventHandlerChromium.cpp:
(WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):
* page/gtk/EventHandlerGtk.cpp:
(WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):

Source/WebKit/chromium:

* WebKit.gypi:
* tests/EventHandlerTest.cpp: Removed.

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

8 years agoWeb Inspector: only increase length for timeline bars below minimal width
caseq@chromium.org [Fri, 22 Jun 2012 16:55:59 +0000 (16:55 +0000)]
Web Inspector: only increase length for timeline bars below minimal width
https://bugs.webkit.org/show_bug.cgi?id=89727

Reviewed by Pavel Feldman.

* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelineCalculator.prototype.computeBarGraphWindowPosition):
(WebInspector.TimelineCalculator.prototype.setDisplayWindow):
(WebInspector.TimelineRecordGraphRow.prototype.update):

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

8 years agoBUILD FIX: FormController.cpp fails to build on 32-bit architectures
ddkilzer@apple.com [Fri, 22 Jun 2012 16:49:31 +0000 (16:49 +0000)]
BUILD FIX: FormController.cpp fails to build on 32-bit architectures

This fixes the following build failure introduced in r121004 for
Bug 89628:

    FormController.cpp:62:36: error: implicit conversion loses integer precision: 'uint64_t' (aka 'unsigned long long') to 'size_t' (aka 'unsigned long') [-Werror,-Wshorten-64-to-32]
        state.m_values.reserveCapacity(valueSize);
        ~~~~~                          ^~~~~~~~~

* html/FormController.cpp:
(WebCore::FormControlState::deserialize): Change type of
valueSize from uint64_t to size_t.

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

8 years agoCrash in DragController::concludeEditDrag.
inferno@chromium.org [Fri, 22 Jun 2012 16:48:49 +0000 (16:48 +0000)]
Crash in DragController::concludeEditDrag.
https://bugs.webkit.org/show_bug.cgi?id=89762

Reviewed by Ryosuke Niwa.

Source/WebCore:

RefPtr the innerFrame since it can get destroyed due to mutation
event fired in DragController::dispatchTextInputEventFor().

Test: editing/pasteboard/drop-text-events-sideeffect-crash.html

* page/DragController.cpp:
(WebCore::DragController::concludeEditDrag):

LayoutTests:

* editing/pasteboard/drop-text-events-sideeffect-crash-expected.txt: Added.
* editing/pasteboard/drop-text-events-sideeffect-crash.html: Added.

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

8 years agoWeb Inspector: timeline event details popup misses CPU time
caseq@chromium.org [Fri, 22 Jun 2012 16:46:28 +0000 (16:46 +0000)]
Web Inspector: timeline event details popup misses CPU time
https://bugs.webkit.org/show_bug.cgi?id=89765

Reviewed by Pavel Feldman.

* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel.Record.prototype.generatePopupContent):

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

8 years ago[Blackberry] BlackBerry::Platform::Settings::get() rename to BlackBerry::Platform...
commit-queue@webkit.org [Fri, 22 Jun 2012 16:23:48 +0000 (16:23 +0000)]
[Blackberry] BlackBerry::Platform::Settings::get() rename to BlackBerry::Platform::Settings::instance() to make it consistent with our other singletons
https://bugs.webkit.org/show_bug.cgi?id=89684

Patch by Parth Patel <parpatel@rim.com> on 2012-06-22
Reviewed by Yong Li.

Build Fix-Typo Update setting instance access to use instance() instead of get().

* WebKitSupport/InputHandler.cpp:
(BlackBerry::WebKit::InputHandler::isInputModeEnabled):

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

8 years ago[Chromium] Disable c++0x compatibility warnings in JavaScriptCore.gyp when building...
peter@chromium.org [Fri, 22 Jun 2012 16:20:33 +0000 (16:20 +0000)]
[Chromium] Disable c++0x compatibility warnings in JavaScriptCore.gyp when building for Android
https://bugs.webkit.org/show_bug.cgi?id=88853

Reviewed by Steve Block.

The Android exclusions were necessary to fix a gyp generation error, as
the gcc_version variable wasn't being defined for Android. Remove these
exceptions when Chromium is able to define the gcc_version variable.

Source/JavaScriptCore:

* JavaScriptCore.gyp/JavaScriptCore.gyp:

Source/WebCore:

* WebCore.gyp/WebCore.gyp:

Source/WebKit/chromium:

* WebKit.gyp:
* WebKitUnitTests.gyp:

Source/WTF:

* WTF.gyp/WTF.gyp:

Tools:

* DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp:

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

8 years ago[Shadow] parentTreeScope() of nested shadow DOM subtree returns document().
commit-queue@webkit.org [Fri, 22 Jun 2012 16:00:48 +0000 (16:00 +0000)]
[Shadow] parentTreeScope() of nested shadow DOM subtree returns document().
https://bugs.webkit.org/show_bug.cgi?id=89172

Patch by Takashi Sakamoto <tasak@google.com> on 2012-06-22
Reviewed by Hajime Morita.

Source/WebCore:

Added setParentTreeScope to set parent treescope of shadow root to be
host's treescope in ElementShadow::addShadowRoot.

Test: fast/dom/shadow/parent-tree-scope-in-shadow.html

* dom/ElementShadow.cpp:
(WebCore::ElementShadow::addShadowRoot):
Added setParentTreeScope.
* testing/Internals.cpp:
(WebCore::Internals::parentTreeScope):
Newly added. This method returns a parent tree scope's root node of
a given node, because a tree scope's root node is either document node
or shadow root node and both nodes derive from TreeScope. So root nodes
are treated as TreeScope.
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
Added parentTreeScope.

LayoutTests:

* fast/dom/shadow/parent-tree-scope-in-shadow-expected.txt: Added.
* fast/dom/shadow/parent-tree-scope-in-shadow.html: Added.

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

8 years ago-webkit-flex-flow shouldn't be an enumerable property of the computed style
tony@chromium.org [Fri, 22 Jun 2012 15:20:50 +0000 (15:20 +0000)]
-webkit-flex-flow shouldn't be an enumerable property of the computed style
https://bugs.webkit.org/show_bug.cgi?id=89698

Reviewed by Ojan Vafai.

Source/WebCore:

flex-flow is a shorthand for flex-direction and flex-wrap:
http://dev.w3.org/csswg/css3-flexbox/#flex-flow-property
Shorthand properties should not be enumerable in the computed style, although you can still
get the value from the computed style.

Tests: css3/flexbox/css-properties.html: New test case added.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore):

LayoutTests:

* css3/flexbox/css-properties-expected.txt:
* css3/flexbox/css-properties.html:
* fast/css/getComputedStyle/computed-style-expected.txt:
* fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* fast/css/getComputedStyle/resources/property-names.js:
* svg/css/getComputedStyle-basic-expected.txt:

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

8 years agoSuppress horizontal conversion of PlatformWheelEvents when hasPreciseScrollingDeltas...
rjkroege@chromium.org [Fri, 22 Jun 2012 15:18:46 +0000 (15:18 +0000)]
Suppress horizontal conversion of PlatformWheelEvents when hasPreciseScrollingDeltas is true
https://bugs.webkit.org/show_bug.cgi?id=89580

Source/WebCore:

WebKit GTK and Chromium Linux force vertical wheel events to
scroll horizontally when over horizontal scroll bars.  This is
undesirable for touchpad scrolling with
hasPreciseScrollingDeltas() == true. Modified shouldTurnVerticalTicksIntoHorizontal
to not perform this conversion for PlatformWheelEvents with preciseScrollingDeltas.

Reviewed by Adam Barth.

Unit tests in EventHandlerTest.cpp

* page/EventHandler.cpp:
(WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):
(WebCore::EventHandler::handleWheelEvent):
* page/EventHandler.h:
(EventHandler):
* page/chromium/EventHandlerChromium.cpp:
(WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):
* page/gtk/EventHandlerGtk.cpp:
(WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):

Source/WebKit/chromium:

WebKit GTK and Chromium Linux force vertical wheel events to
scroll horizontally when over horizontal scroll bars.  This is
undesirable for touchpad scrolling with hasPreciseScrollingDeltas() == true.

Added unit tests to show that
EventHandler::shouldTurnVerticalTicksIntoHorizontal() is true
only for PlatformWheelEvents when !hasPreciseScrollingDeltas().

Reviewed by Adam Barth.

* WebKit.gypi:
* tests/EventHandlerTest.cpp: Added.
(MockScrollbar):
(MockScrollbar::MockScrollbar):
(MockScrollbar::~MockScrollbar):
(MockHitTestResult):
(MockHitTestResult::MockHitTestResult):
(MockHitTestResult::scrollbar):
(MockPlatformWheelEvent):
(MockPlatformWheelEvent::MockPlatformWheelEvent):
(EventHandlerTest):
(EventHandlerTest::EventHandlerTest):
(EventHandlerTest::externalShouldTurnVerticalTicksIntoHorizontal):
(TEST):

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

8 years ago[Qt] Unreviewed gardening. Skip failing test after r121019.
kkristof@inf.u-szeged.hu [Fri, 22 Jun 2012 14:47:33 +0000 (14:47 +0000)]
[Qt] Unreviewed gardening. Skip failing test after r121019.
https://bugs.webkit.org/show_bug.cgi?id=89760

Patch by Ádám Kallai <kadam@inf.u-szeged.hu> on 2012-06-22

* platform/qt/Skipped:

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

8 years ago[Qt] Unreviewed gardening after r120924.
ossy@webkit.org [Fri, 22 Jun 2012 14:21:19 +0000 (14:21 +0000)]
[Qt] Unreviewed gardening after r120924.

* platform/qt-5.0-wk1/editing/inserting/4960120-1-expected.png: Added.
* platform/qt-5.0-wk1/editing/inserting/4960120-1-expected.txt: Added.
* platform/qt-5.0-wk1/editing/inserting/before-after-input-element-expected.png: Added.
* platform/qt-5.0-wk1/editing/inserting/before-after-input-element-expected.txt: Added.

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

8 years agoWeb Inspector: partially instrument DOM Tree native memory.
loislo@chromium.org [Fri, 22 Jun 2012 14:08:05 +0000 (14:08 +0000)]
Web Inspector: partially instrument DOM Tree native memory.
https://bugs.webkit.org/show_bug.cgi?id=89568

PerformanceTests:

This patch adds MemoryInstrumentation class that counts all visited
objects and calls reportMemoryUsage.

Reviewed by Yury Semikhatsky.

* inspector/native-memory-snapshot.html:

Source/WebCore:

This patch adds MemoryInstrumentation class that counts all visited
objects and calls reportMemoryUsage for the instrumented classes.

Reviewed by Yury Semikhatsky.

* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/ScriptWrappable.h:
(WebCore::ScriptWrappable::reportMemoryUsage):
(ScriptWrappable):
* bindings/v8/ScriptWrappable.h:
(WebCore::ScriptWrappable::reportMemoryUsage):
(ScriptWrappable):
* css/StylePropertySet.h:
(WebCore::StylePropertySet::reportMemoryUsage):
(StylePropertySet):
* dom/ContainerNode.h:
(WebCore::ContainerNode::reportMemoryUsage):
(ContainerNode):
* dom/Element.h:
(WebCore::Element::reportMemoryUsage):
(Element):
* dom/ElementAttributeData.h:
(WebCore::ElementAttributeData::reportMemoryUsage):
(ElementAttributeData):
* dom/MemoryInstrumentation.h: Added.
(WebCore):
(MemoryInstrumentation):
(WebCore::MemoryInstrumentation::~MemoryInstrumentation):
(WebCore::MemoryInstrumentation::reportObject):
(WebCore::MemoryInstrumentation::reportPointer):
(MemoryObjectInfo):
(WebCore::MemoryObjectInfo::MemoryObjectInfo):
(WebCore::MemoryObjectInfo::reportInstrumentedPointer):
(WebCore::MemoryObjectInfo::reportPointer):
(WebCore::MemoryObjectInfo::reportInstrumentedObject):
(WebCore::MemoryObjectInfo::reportObject):
(WebCore::MemoryObjectInfo::reportObjectInfo):
(WebCore::MemoryObjectInfo::objectType):
(WebCore::MemoryObjectInfo::objectSize):
(WebCore::MemoryInstrumentation::reportInstrumentedPointer):
(WebCore::MemoryInstrumentation::reportInstrumentedObject):
* dom/Node.cpp:
(WebCore::Node::reportMemoryUsage):
(WebCore):
* dom/Node.h:
(Node):
* dom/QualifiedName.h:
(WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
(WebCore::QualifiedName::reportMemoryUsage):
* inspector/InspectorMemoryAgent.cpp:
(MemoryBlockName):
(WebCore):
(WebCore::addMemoryBlockFor):
(WebCore::domTreeInfo):
(WebCore::memoryCacheInfo):
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
* platform/TreeShared.h:
(WebCore::TreeShared::reportMemoryUsage):
(TreeShared):

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

8 years agoWeb Inspector: Support 'Restart frame' in inspector frontend
commit-queue@webkit.org [Fri, 22 Jun 2012 13:56:17 +0000 (13:56 +0000)]
Web Inspector: Support 'Restart frame' in inspector frontend
https://bugs.webkit.org/show_bug.cgi?id=89678

Patch by Peter Rybin <peter.rybin@gmail.com> on 2012-06-22
Reviewed by Pavel Feldman.

Action is added to call frame placard's context menu. Context menu is now built
on a call frame level rather than on callback sidebar level.

* English.lproj/localizedStrings.js:
* inspector/front-end/CallStackSidebarPane.js:
(WebInspector.CallStackSidebarPane):
(WebInspector.CallStackSidebarPane.prototype.update):
(WebInspector.CallStackSidebarPane.Placard):
(WebInspector.CallStackSidebarPane.Placard.prototype._update):
(WebInspector.CallStackSidebarPane.Placard.prototype._placardContextMenu):
(_restartFrame):
* inspector/front-end/DebuggerModel.js:
(WebInspector.DebuggerModel.prototype.rawLocationToUILocation):
(WebInspector.DebuggerModel.prototype.callStackModified):
(WebInspector.DebuggerModel.CallFrame.prototype.restart):
* inspector/front-end/Script.js:
(WebInspector.Script.prototype.editSource):

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

8 years ago[Qt] Fix the remote inspector loading problems on Mac
commit-queue@webkit.org [Fri, 22 Jun 2012 13:24:31 +0000 (13:24 +0000)]
[Qt] Fix the remote inspector loading problems on Mac
https://bugs.webkit.org/show_bug.cgi?id=89747

Patch by Jocelyn Turcotte <turcotte.j@gmail.com> on 2012-06-22
Reviewed by Simon Hausmann.

Source/WebCore:

Make sure that the state of a SocketStreamHandle is set properly
when created from an existing QTcpSocket.

This fixes the inspectorserver Qt api auto test on Mac.

* platform/network/qt/SocketStreamHandleQt.cpp:
(WebCore::SocketStreamHandle::SocketStreamHandle):

Source/WebKit2:

Reverse the creation order of the inter-dependent WebSocketServerConnection
and SocketStreamHandle to make sure that the later has a client properly
set on construction.

This is to work around the assert on m_state in SocketStreamHandle::setClient.

* UIProcess/InspectorServer/WebSocketServer.cpp:
(WebKit::WebSocketServer::didAcceptConnection):
* UIProcess/InspectorServer/WebSocketServer.h:
(WebKit::WebSocketServer::client):
(WebSocketServer):
* UIProcess/InspectorServer/WebSocketServerConnection.cpp:
(WebKit::WebSocketServerConnection::WebSocketServerConnection):
(WebKit::WebSocketServerConnection::setSocketHandle):
(WebKit):
* UIProcess/InspectorServer/WebSocketServerConnection.h:
(WebSocketServerConnection):
* UIProcess/InspectorServer/qt/WebSocketServerQt.cpp:
(WebKit::QtTcpServerHandler::handleNewConnection):

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

8 years agoREGRESSION(r117738):[Forms] validationMessage IDL attribute should not have range...
yosin@chromium.org [Fri, 22 Jun 2012 12:54:04 +0000 (12:54 +0000)]
REGRESSION(r117738):[Forms] validationMessage IDL attribute should not have range overflow message if value isn't range overflow
https://bugs.webkit.org/show_bug.cgi?id=89736

Reviewed by Kent Tamura.

Source/WebCore:

Tests: fast/forms/date/input-date-validation-message.html
       fast/forms/number/input-number-validation-message.html
       fast/forms/range/input-range-validation-message.html

This patch changes comparison operator for range overflow message in
InputType::validationMessage().

* html/InputType.cpp:
(WebCore::InputType::validationMessage):

LayoutTests:

Tests for HTMLInputElement.validationMessage attribute.

* fast/forms/date/input-date-validation-message-expected.txt: Added.
* fast/forms/date/input-date-validation-message.html: Added.
* fast/forms/number/input-number-validation-message-expected.txt: Added.
* fast/forms/number/input-number-validation-message.html: Added.
* fast/forms/range/input-range-validation-message-expected.txt: Added.
* fast/forms/range/input-range-validation-message.html: Added.

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

8 years agoCauses crashes in LLVMPipe
kov@webkit.org [Fri, 22 Jun 2012 12:41:24 +0000 (12:41 +0000)]
Causes crashes in LLVMPipe
https://bugs.webkit.org/show_bug.cgi?id=89358

Patch by Gustavo Noronha Silva <gustavo.noronha@collabora.com> on 2012-06-18
Reviewed by Martin Robinson.

Change suggested by Dave Airlie and Xan Lopez.

* wtf/Platform.h: disable global fastMalloc for GTK+

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

8 years agoWeb Inspector: Add frontend-side Entry object to FileSystemModel
commit-queue@webkit.org [Fri, 22 Jun 2012 12:35:55 +0000 (12:35 +0000)]
Web Inspector: Add frontend-side Entry object to FileSystemModel
https://bugs.webkit.org/show_bug.cgi?id=89739

Patch by Taiju Tsuiki <tzik@chromium.org> on 2012-06-22
Reviewed by Vsevolod Vlasov.

* inspector/front-end/FileSystemModel.js:
(WebInspector.FileSystemModel.prototype._fileSystemRootReceived):
(WebInspector.FileSystemModel.prototype.requestDirectoryContent):
(WebInspector.FileSystemModel.prototype._directoryContentReceived):
(WebInspector.FileSystemModel.FileSystem):
(WebInspector.FileSystemModel.Entry):
(WebInspector.FileSystemModel.Entry.prototype.get fileSystemModel):
(WebInspector.FileSystemModel.Entry.prototype.get fileSystem):
(WebInspector.FileSystemModel.Entry.prototype.get url):
(WebInspector.FileSystemModel.Entry.prototype.get name):
(WebInspector.FileSystemModel.Entry.prototype.get isDirectory):
(WebInspector.FileSystemModel.Directory):
(WebInspector.FileSystemModel.Directory.prototype.requestDirectoryContent):
(WebInspector.FileSystemModel.File):
(WebInspector.FileSystemModel.File.prototype.get mimeType):
(WebInspector.FileSystemModel.File.prototype.get resourceType):

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

8 years agoRenamed DeviceOrientation to DeviceOrientationData
commit-queue@webkit.org [Fri, 22 Jun 2012 11:32:42 +0000 (11:32 +0000)]
Renamed DeviceOrientation to DeviceOrientationData
https://bugs.webkit.org/show_bug.cgi?id=88663

Patch by Amy Ousterhout <aousterh@chromium.org> on 2012-06-22
Reviewed by Steve Block.

Source/WebCore:

No new tests because this is simply a name change.

Renamed DeviceOrientation to DeviceOrientationData in order to be consistent with DeviceMotionData.
Updated all files that use DeviceOrientation.

* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDeviceOrientationEventCustom.cpp:
(WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
* bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
(WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):
* dom/DOMAllInOne.cpp:
* dom/DeviceOrientationClient.h:
(WebCore):
(DeviceOrientationClient):
* dom/DeviceOrientationController.cpp:
(WebCore::DeviceOrientationController::timerFired):
(WebCore::DeviceOrientationController::didChangeDeviceOrientation):
* dom/DeviceOrientationController.h:
(WebCore):
(DeviceOrientationController):
* dom/DeviceOrientationData.cpp: Renamed from Source/WebCore/dom/DeviceOrientation.cpp.
(WebCore):
(WebCore::DeviceOrientationData::create):
(WebCore::DeviceOrientationData::DeviceOrientationData):
(WebCore::DeviceOrientationData::alpha):
(WebCore::DeviceOrientationData::beta):
(WebCore::DeviceOrientationData::gamma):
(WebCore::DeviceOrientationData::absolute):
(WebCore::DeviceOrientationData::canProvideAlpha):
(WebCore::DeviceOrientationData::canProvideBeta):
(WebCore::DeviceOrientationData::canProvideGamma):
(WebCore::DeviceOrientationData::canProvideAbsolute):
* dom/DeviceOrientationData.h: Renamed from Source/WebCore/dom/DeviceOrientation.h.
(WebCore):
(DeviceOrientationData):
* dom/DeviceOrientationEvent.cpp:
(WebCore::DeviceOrientationEvent::DeviceOrientationEvent):
(WebCore::DeviceOrientationEvent::initDeviceOrientationEvent):
* dom/DeviceOrientationEvent.h:
(WebCore):
(WebCore::DeviceOrientationEvent::create):
(DeviceOrientationEvent):
(WebCore::DeviceOrientationEvent::orientation):
* loader/EmptyClients.h:
(WebCore::EmptyDeviceOrientationClient::lastOrientation):
* platform/mock/DeviceOrientationClientMock.cpp:
(WebCore::DeviceOrientationClientMock::setOrientation):
* platform/mock/DeviceOrientationClientMock.h:
(WebCore::DeviceOrientationClientMock::lastOrientation):
(DeviceOrientationClientMock):
* platform/qt/DeviceOrientationClientQt.cpp:
(DeviceOrientationClientQt):
* platform/qt/DeviceOrientationClientQt.h:
(DeviceOrientationClientQt):
* platform/qt/DeviceOrientationProviderQt.h:
(DeviceOrientationProviderQt):

Source/WebKit/blackberry:

Updated files to use the renamed DeviceOrientationData instead of DeviceOrientation.
This change makes DeviceOrientationData consistent with DeviceMotionData.

* WebCoreSupport/DeviceOrientationClientBlackBerry.h:
(DeviceOrientationClientBlackBerry):

Source/WebKit/chromium:

Updated files to use the renamed DeviceOrientationData instead of DeviceOrientation.
This change makes DeviceOrientationData consistent with DeviceMotionData.

* public/WebDeviceOrientation.h:
(WebDeviceOrientation):
* src/DeviceOrientationClientProxy.cpp:
(WebKit::DeviceOrientationClientProxy::lastOrientation):
* src/DeviceOrientationClientProxy.h:
(DeviceOrientationClientProxy):
* src/WebDeviceOrientation.cpp:
(WebKit::WebDeviceOrientation::WebDeviceOrientation):
(WebKit::WebDeviceOrientation::operator=):
(WebKit::WebDeviceOrientation::operator PassRefPtr<WebCore::DeviceOrientationData>):
* src/WebDeviceOrientationController.cpp:
(WebKit::WebDeviceOrientationController::didChangeDeviceOrientation):

Source/WebKit/efl:

Updated files to use the renamed DeviceOrientationData instead of DeviceOrientation.
This change makes DeviceOrientationData consistent with DeviceMotionData.

* WebCoreSupport/DeviceOrientationClientEfl.h:
(DeviceOrientationClientEfl):

Source/WebKit/gtk:

Updated files to use the renamed DeviceOrientationData instead of DeviceOrientation.
This change makes DeviceOrientationData consistent with DeviceMotionData.

* WebCoreSupport/DeviceOrientationClientGtk.h:
(DeviceOrientationClientGtk):

Source/WebKit/mac:

Updated files to use the renamed DeviceOrientationData instead of DeviceOrientation.
This change makes DeviceOrientationData consistent with DeviceMotionData.
* WebCoreSupport/WebDeviceOrientationClient.h:
(WebDeviceOrientationClient):
* WebCoreSupport/WebDeviceOrientationClient.mm:
(WebDeviceOrientationClient::lastOrientation):
* WebView/WebDeviceOrientation.mm:
* WebView/WebDeviceOrientationInternal.h:

Source/WebKit/qt:

Updated files to use the renamed DeviceOrientationData instead of DeviceOrientation.
This change makes DeviceOrientationData consistent with DeviceMotionData.

* WebCoreSupport/DumpRenderTreeSupportQt.cpp:
(DumpRenderTreeSupportQt::setMockDeviceOrientation):

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

8 years ago[WK2] FindController::hideFindUI should unmark highlighted text matches
sergio@webkit.org [Fri, 22 Jun 2012 09:54:28 +0000 (09:54 +0000)]
[WK2] FindController::hideFindUI should unmark highlighted text matches
https://bugs.webkit.org/show_bug.cgi?id=77747

Reviewed by Carlos Garcia Campos.

Unmark all text matches whenever FindController::hideFindUI is
called to allow callers using the ShowHighlight find option to
remove highlighting.

This patch enables a unit test for the WebKitFindController
previously guarded by a #if(0) after r109222.

* UIProcess/API/gtk/tests/TestWebKitFindController.cpp:
(testFindControllerHide):
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::hideFindUI):

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

8 years agoWeb Inspector: Support separate script compilation and execution.
vsevik@chromium.org [Fri, 22 Jun 2012 09:39:54 +0000 (09:39 +0000)]
Web Inspector: Support separate script compilation and execution.
https://bugs.webkit.org/show_bug.cgi?id=89646

Reviewed by Pavel Feldman.

Source/WebCore:

Separate script compilation and run commands added to protocol and DebuggerAgent.
Separate script compilation and run implemented in v8 ScriptDebugServer, stubs added for js implementation.

Test: inspector/debugger/debugger-compile-and-run.html

* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::compileScript):
(WebCore):
(WebCore::ScriptDebugServer::clearCompiledScripts):
(WebCore::ScriptDebugServer::runScript):
* bindings/js/ScriptDebugServer.h:
(WebCore::ScriptDebugServer::supportsSeparateScriptCompilationAndExecution):
(ScriptDebugServer):
* bindings/v8/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::compileScript):
(WebCore):
(WebCore::PageScriptDebugServer::clearCompiledScripts):
(WebCore::PageScriptDebugServer::runScript):
* bindings/v8/PageScriptDebugServer.h:
(PageScriptDebugServer):
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::compileScript):
(WebCore):
(WebCore::ScriptDebugServer::clearCompiledScripts):
(WebCore::ScriptDebugServer::runScript):
* bindings/v8/ScriptDebugServer.h:
(WebCore):
(WebCore::ScriptDebugServer::supportsSeparateScriptCompilationAndExecution):
(ScriptDebugServer):
* inspector/Inspector.json:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::disable):
(WebCore::InspectorDebuggerAgent::supportsSeparateScriptCompilationAndExecution):
(WebCore):
(WebCore::InspectorDebuggerAgent::compileScript):
(WebCore::InspectorDebuggerAgent::runScript):
* inspector/InspectorDebuggerAgent.h:
(InspectorDebuggerAgent):
(WebCore::InspectorDebuggerAgent::injectedScriptManager):
* inspector/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::injectedScriptForEval):
(WebCore):
* inspector/PageDebuggerAgent.h:
(PageDebuggerAgent):
* inspector/WorkerDebuggerAgent.cpp:
(WebCore::WorkerDebuggerAgent::injectedScriptForEval):
(WebCore):
* inspector/WorkerDebuggerAgent.h:
(WorkerDebuggerAgent):
* inspector/front-end/Settings.js:
* inspector/front-end/inspector.js:
(WebInspector.doLoadedDone):

LayoutTests:

* inspector/debugger/debugger-compile-and-run-expected.txt: Added.
* inspector/debugger/debugger-compile-and-run.html: Added.
* platform/gtk/TestExpectations:
* platform/mac/Skipped:
* platform/qt/Skipped:
* platform/win/Skipped:
* platform/wincairo/Skipped:

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

8 years agoWeb Inspector: InspectorState::updateCookie should not do JSON serialization if unsup...
commit-queue@webkit.org [Fri, 22 Jun 2012 09:14:01 +0000 (09:14 +0000)]
Web Inspector: InspectorState::updateCookie should not do JSON serialization if unsupported
https://bugs.webkit.org/show_bug.cgi?id=89743

Source/WebCore:

Since all InspectorClient's are InspectorStateClient's provide a
virtual accessor that determines whether or not InspectorClient updates
are supported or not.

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2012-06-22
Reviewed by Yury Semikhatsky.

* inspector/InspectorState.cpp:
(WebCore::InspectorState::updateCookie):
Don't serialize and message the client if the client doesn't do anything with it.

* inspector/InspectorStateClient.h:
* inspector/WorkerInspectorController.cpp:
(WebCore::InspectorStateClient::supportsInspectorStateUpdates):
Let the client say whether or not supports updates or not.

Source/WebKit/blackberry:

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2012-06-22
Reviewed by Yury Semikhatsky.

* WebCoreSupport/InspectorClientBlackBerry.cpp:
(WebCore::InspectorClientBlackBerry::updateInspectorStateCookie):

Source/WebKit/chromium:

The Chromium port does want InspectorState updates.

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2012-06-22
Reviewed by Yury Semikhatsky.

* src/InspectorClientImpl.h:
(WebKit::InspectorClientImpl::supportsInspectorStateUpdates):
* src/WebDevToolsAgentImpl.h:
(WebKit::WebDevToolsAgentImpl::supportsInspectorStateUpdates):

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

8 years agoUse testRunner instead of layoutTestController in fast/hidpi, history, html, images...
rniwa@webkit.org [Fri, 22 Jun 2012 08:52:23 +0000 (08:52 +0000)]
Use testRunner instead of layoutTestController in fast/hidpi, history, html, images, inline, inline-block, innerHTML, inspector-support, invalid tests
https://bugs.webkit.org/show_bug.cgi?id=89744

Reviewed by Kent Tamura.

* fast/hidpi/broken-image-icon-hidpi.html:
* fast/hidpi/broken-image-with-size-hidpi.html:
* fast/hidpi/clip-text-in-hidpi.html:
* fast/hidpi/device-scale-factor-paint.html:
* fast/hidpi/focus-rings.html:
* fast/hidpi/image-set-as-background.html:
* fast/hidpi/image-set-background-dynamic.html:
* fast/hidpi/image-set-background-repeat-without-size.html:
* fast/hidpi/image-set-background-repeat.html:
* fast/hidpi/image-set-border-image-comparison.html:
* fast/hidpi/image-set-border-image-dynamic.html:
* fast/hidpi/image-set-border-image-simple.html:
* fast/hidpi/image-set-in-content-dynamic.html:
* fast/hidpi/image-set-out-of-order.html:
* fast/hidpi/image-set-simple.html:
* fast/hidpi/image-set-without-specified-width.html:
* fast/hidpi/resize-corner-hidpi.html:
* fast/hidpi/video-controls-in-hidpi.html:
* fast/history/back-forward-reset-after-error-handling.html:
* fast/history/form-submit-in-frame-via-onclick.html:
* fast/history/form-submit-in-frame.html:
* fast/history/forward-during-load.html:
* fast/history/gesture-before-onload-form-submit.html:
* fast/history/gesture-before-onload-location-href.html:
* fast/history/go-back-to-changed-name.html:
* fast/history/history-back-initial-vs-final-url.html:
* fast/history/history-back-twice-with-subframes-assert.html:
* fast/history/history-back-within-subframe-hash.html:
* fast/history/history-back-within-subframe-url.html:
* fast/history/history-length.html:
* fast/history/history-replace-updates-current-item.html:
* fast/history/history-subframe-with-name.html:
* fast/history/history_reload.html:
* fast/history/location-replace-hash.html:
* fast/history/multiple-classes-visited.html:
* fast/history/nested-visited-test.html:
* fast/history/redirect-via-iframe.html:
* fast/history/resources/clicked-link-is-visited-2.html:
* fast/history/resources/history-back-within-subframe-hash-2.html:
* fast/history/resources/history-replace-updates-current-item-done.html:
* fast/history/resources/history_reload_window.html:
* fast/history/resources/redirect-target.html:
* fast/history/same-document-iframes-changing-fragment.html:
* fast/history/same-document-iframes-changing-pushstate.html:
* fast/history/saves-state-after-fragment-nav.html:
* fast/history/saves-state-after-frame-nav.html:
* fast/history/self-is-visited.html:
* fast/history/sibling-visited-test.html:
* fast/history/timed-refresh-in-cached-frame.html:
* fast/history/visited-generated-content-test.html:
* fast/history/visited-link-background-color.html:
* fast/history/window-open.html:
* fast/html/adopt-parent-frame.html:
* fast/html/body-offset-properties.html:
* fast/html/crash-style-first-letter.html:
* fast/html/details-add-summary-1-and-click.html:
* fast/html/details-add-summary-10-and-click.html:
* fast/html/details-add-summary-2-and-click.html:
* fast/html/details-add-summary-3-and-click.html:
* fast/html/details-add-summary-4-and-click.html:
* fast/html/details-add-summary-5-and-click.html:
* fast/html/details-add-summary-6-and-click.html:
* fast/html/details-add-summary-7-and-click.html:
* fast/html/details-add-summary-8-and-click.html:
* fast/html/details-add-summary-9-and-click.html:
* fast/html/details-children-merge-crash.html:
* fast/html/details-element-render-inline-crash.html:
* fast/html/details-mouse-click.html:
* fast/html/details-remove-summary-1-and-click.html:
* fast/html/details-remove-summary-2-and-click.html:
* fast/html/details-remove-summary-3-and-click.html:
* fast/html/details-remove-summary-4-and-click.html:
* fast/html/details-remove-summary-5-and-click.html:
* fast/html/details-remove-summary-6-and-click.html:
* fast/html/details-replace-summary-child.html:
* fast/html/details-replace-text.html:
* fast/html/details-summary-document-child.html:
* fast/html/draggable.html:
* fast/html/empty-fragment-id-goto-top.html:
* fast/html/font-face-empty-should-not-crash.html:
* fast/html/marquee-scrollamount.html:
* fast/html/nav-element.html:
* fast/html/object-image-nested-fallback.html:
* fast/html/pending-stylesheet-crash.html:
* fast/html/process-end-tag-for-inbody-crash.html:
* fast/html/script-allowed-types-languages.html:
* fast/html/select-dropdown-consistent-background-color.html:
* fast/html/set-text-direction.html:
* fast/html/tab-order.html:
* fast/html/tabindex-removal.html:
* fast/html/text-field-input-types.html:
* fast/html/xhtml-serialize.html:
* fast/images/animated-background-image-crash.html:
* fast/images/animated-gif-restored-from-bfcache.html:
* fast/images/bad-png.html:
* fast/images/busted-oval-does-not-render.html:
* fast/images/destroyed-image-load-event.html:
* fast/images/dont-crash-with-null-gif-frames.html:
* fast/images/drag-pdf-as-image.html:
* fast/images/embed-does-not-propagate-dimensions-to-object-ancestor.html:
* fast/images/embed-image.html:
* fast/images/exif-orientation-css.html:
* fast/images/exif-orientation.html:
* fast/images/extra-image-in-image-document.html:
* fast/images/gif-loop-count.html:
* fast/images/image-empty-data.html:
* fast/images/image-invalid-data.html:
* fast/images/image-load-event-in-fragment.html:
* fast/images/image-map-multiple-xhtml.xhtml:
* fast/images/image-map-multiple.html:
* fast/images/image-map-zoom.html:
* fast/images/imagemap-scroll.html:
* fast/images/jpeg-with-color-profile.html:
* fast/images/large-size-image-crash.html:
* fast/images/link-body-content-imageDimensionChanged-crash.html:
* fast/images/load-img-with-empty-src.html:
* fast/images/paletted-png-with-color-profile.html:
* fast/images/percent-height-image.html:
* fast/images/png-extra-row-crash.html:
* fast/images/png-suite/test.html:
* fast/images/png-with-color-profile.html:
* fast/images/read-past-end-of-buffer.html:
* fast/images/rgb-jpeg-endian-pixels.html:
* fast/images/rgb-jpeg-with-adobe-marker-only.html:
* fast/images/rgb-png-with-cmyk-color-profile.html:
* fast/images/script-counter-imageDimensionChanged-crash.html:
* fast/images/script-tests/move-image-to-new-document.js:
* fast/images/size-failure.html:
* fast/images/style-access-during-imageChanged-crash.html:
* fast/images/style-access-during-imageChanged-style-freeze.html:
* fast/images/support-broken-image-delegate.html:
* fast/images/text-content-crash-2.html:
* fast/images/text-content-crash.html:
* fast/images/webp-image-decoding.html:
* fast/images/ycbcr-with-cmyk-color-profile.html:
* fast/images/zoomed-img-size.html:
* fast/inline-block/anonymous-block-crash.html:
* fast/inline-block/inline-block-vertical-align-2.html:
* fast/inline-block/relative-positioned-rtl-crash.html:
* fast/inline/boundingBox-with-continuation.html:
* fast/inline/clean-after-removing-temp-boxes.html:
* fast/inline/continuation-positioned-reparenting.html:
* fast/inline/crash-new-continuation-with-outline.html:
* fast/inline/dirtyLinesForInline.html:
* fast/inline/inline-body-crash.html:
* fast/inline/inline-body-with-scrollbar-crash.html:
* fast/inline/inline-box-adjust-position-crash.html:
* fast/inline/inline-box-adjust-position-crash2.html:
* fast/inline/inline-child-height-width-calc-crash.html:
* fast/inline/inline-destroy-dirty-lines-crash.html:
* fast/inline/inline-marquee-crash.html:
* fast/inline/relative-positioned-overflow.html:
* fast/inline/skipped-whitespace-boundingBox.html:
* fast/inline/skipped-whitespace-client-rect.html:
* fast/inline/update-always-create-line-boxes-full-layout-crash.html:
* fast/innerHTML/004-expected.txt:
* fast/innerHTML/004.xhtml:
* fast/innerHTML/005-expected.txt:
* fast/innerHTML/005.html:
* fast/innerHTML/additional-inline-style.html:
* fast/innerHTML/innerHTML-case.html:
* fast/innerHTML/innerHTML-changing-document-properties.xhtml:
* fast/innerHTML/innerHTML-custom-tag.html:
* fast/innerHTML/innerHTML-iframe.html:
* fast/innerHTML/innerHTML-nbsp.xhtml:
* fast/innerHTML/innerHTML-script-tag-crash.xhtml:
* fast/innerHTML/javascript-url.html:
* fast/inspector-support/cssURLQuotes.html:
* fast/inspector-support/style.html:
* fast/inspector-support/uncaught-dom1-exception.html:
* fast/inspector-support/uncaught-dom3-exception.html:
* fast/inspector-support/uncaught-dom8-exception.html:
* fast/invalid/invalidSVGFont.html:
* fast/invalid/nestedh3s-rapidweaver.html:
* fast/invalid/test-case-tr-th-td-should-not-close-dl-list.html:
* platform/gtk/fast/images/exif-orientation-css-expected.txt:
* platform/gtk/fast/images/exif-orientation-expected.txt:
* platform/mac/fast/images/exif-orientation-css-expected.txt:
* platform/mac/fast/images/exif-orientation-expected.txt:
* platform/qt/fast/history/back-to-unreachable-url-then-forward.html:
* platform/qt/fast/history/resources/check-scroll-position.html:

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

8 years agoUnreviewed gardening. Unskipping test passing after fixing bug 88419.
mario@webkit.org [Fri, 22 Jun 2012 08:09:32 +0000 (08:09 +0000)]
Unreviewed gardening. Unskipping test passing after fixing bug 88419.

* gtk/run-api-tests:
(TestRunner): Unskip WTF.HashMap.

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

8 years agoMemory corruption on HashTable.h
mario@webkit.org [Fri, 22 Jun 2012 08:06:08 +0000 (08:06 +0000)]
Memory corruption on HashTable.h
https://bugs.webkit.org/show_bug.cgi?id=88419

Reviewed by Martin Robinson.

Simplify definition of WTF_USE_PTHREADS and HAVE_PTHREAD_RWLOCK
for the GTK platform using OS(LINUX) instead of HAVE(PTHREAD_H).

* wtf/Platform.h:

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

8 years ago[Qt] Allow DumpRenderTree to dump about:blank
zoltan@webkit.org [Fri, 22 Jun 2012 07:16:53 +0000 (07:16 +0000)]
[Qt] Allow DumpRenderTree to dump about:blank
https://bugs.webkit.org/show_bug.cgi?id=89685

Reviewed by Ryosuke Niwa.

We need to allow DumpRenderTree to dump about:blank page, then it will be consistent with other ports,
additionaly this behavior is required for running WTR performance tests.

* DumpRenderTree/qt/DumpRenderTreeQt.cpp:
(WebCore::DumpRenderTree::processLine):

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

8 years agoUse testRunner instead of layoutTestController in fast/fast-mobile-scrolling, flexbox...
rniwa@webkit.org [Fri, 22 Jun 2012 06:52:33 +0000 (06:52 +0000)]
Use testRunner instead of layoutTestController in fast/fast-mobile-scrolling, flexbox, forms, frames, gradients tests
https://bugs.webkit.org/show_bug.cgi?id=89741

Reviewed by Kent Tamura.

* fast/flexbox/box-ordinal-group.html:
* fast/flexbox/box-size-integer-overflow.html:
* fast/flexbox/crash-button-input-autofocus.html:
* fast/flexbox/crash-button-keygen.html:
* fast/flexbox/crash-button-relayout.html:
* fast/flexbox/crash-flexbox-no-layout-child.html:
* fast/flexbox/horizontal-box-float-crash.html:
* fast/flexbox/inline-children-crash.html:
* fast/flexbox/layoutHorizontalBox-crash.html:
* fast/flexbox/line-clamp-crash.html:
* fast/flexbox/overhanging-floats-not-removed-crash.html:
* fast/flexbox/resources/box-orient-button.js:
* fast/forms/:
* fast/frames/:
* fast/gradients/crash-on-1px-border.html:
* fast/gradients/crash-on-degenerate-gradient.html:
* fast/gradients/crash-on-remove.html:
* fast/gradients/crash-on-tr.html:
* fast/gradients/css3-color-stop-units.html:
* fast/gradients/css3-color-stops.html:
* fast/gradients/css3-linear-angle-gradients.html:
* fast/gradients/css3-linear-right-angle-gradients.html:
* fast/gradients/css3-radial-gradient-crash.html:
* fast/gradients/css3-radial-gradients.html:
* fast/gradients/css3-radial-gradients2.html:
* fast/gradients/css3-radial-gradients3.html:
* fast/gradients/css3-repeating-end-fill.html:
* fast/gradients/css3-repeating-linear-gradients.html:
* fast/gradients/css3-repeating-linear-gradients2.html:
* fast/gradients/css3-repeating-radial-gradients.html:
* fast/gradients/gradient-after-transparent-border.html:
* fast/gradients/gradient-on-pseudoelement-crash.html:
* platform/chromium/fast/forms/search-popup-crasher.html:
* platform/gtk/fast/forms/menulist-typeahead-find.html:
* platform/gtk/fast/frames/scrolling-iframe-out-of-viewport.html:
* platform/mac/fast/forms/attributed-strings.html:
* platform/mac/fast/forms/listbox-scrollbar-hit-test.html:
* platform/mac/fast/forms/script-tests/focus-option-control-on-page.js:
(startTest):
(runKeyPresses):
(notifyDone):

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

8 years ago[EFL] Unreviewed gardening, unskip now passing tests.
joone@webkit.org [Fri, 22 Jun 2012 06:44:26 +0000 (06:44 +0000)]
[EFL] Unreviewed gardening, unskip now passing tests.

* platform/efl/Skipped:
* platform/efl/fast/viewport/viewport-126-expected.txt: Added.
* platform/efl/fast/viewport/viewport-127-expected.txt: Added.
* platform/efl/fast/viewport/viewport-65-expected.txt: Added.
* platform/efl/fast/viewport/viewport-82-expected.txt: Added.
* platform/efl/fast/viewport/viewport-84-expected.txt: Added.
* platform/efl/fast/viewport/viewport-87-expected.txt: Added.

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

8 years agos/layoutTestController/testRunner/ in speech tests
hans@chromium.org [Fri, 22 Jun 2012 06:31:18 +0000 (06:31 +0000)]
s/layoutTestController/testRunner/ in speech tests
https://bugs.webkit.org/show_bug.cgi?id=89654

Reviewed by Ryosuke Niwa.

* fast/speech/bubble-position.html:
* fast/speech/change-focus.html:
* fast/speech/input-onspeechchange-event.html:
* fast/speech/input-ontextinput-event.html:
* fast/speech/input-readonly-and-disabled.html:
* fast/speech/input-text-language-tag.html:
* fast/speech/input-text-speechbutton.html:
* fast/speech/input-text-speechstart.html:
* fast/speech/scripted/speechrecognition-basics.html:
* fast/speech/scripted/speechrecognition-errors.html:
* fast/speech/speech-button-ignore-generated-events.html:
* fast/speech/speech-input-result-list-not-enough-arguments.html:
* fast/speech/speech-input-scripting.html:

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

8 years agoUnreviewed, rolling out r120982.
commit-queue@webkit.org [Fri, 22 Jun 2012 06:11:44 +0000 (06:11 +0000)]
Unreviewed, rolling out r120982.
http://trac.webkit.org/changeset/120982
https://bugs.webkit.org/show_bug.cgi?id=89740

[chromium] ASSERTION FAILED:
m_allocatedTextureIds.contains(textureId) (Requested by ukai
on #webkit).

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

Source/WebCore:

* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::onGpuMemoryAllocationChangedOnImpl):
(WebCore::LayerRendererChromium::LayerRendererChromium):
(WebCore::LayerRendererChromium::initialize):
(WebCore::LayerRendererChromium::setVisible):
(WebCore::LayerRendererChromium::swapBuffers):
(WebCore::LayerRendererChromium::getFramebufferPixels):
* platform/graphics/chromium/LayerRendererChromium.h:
(WebCore):
(LayerRendererChromium):
* platform/graphics/chromium/TextureManager.cpp:
* platform/graphics/chromium/TextureManager.h:
(TextureAllocator):
(TextureManager):
* platform/graphics/chromium/TrackingTextureAllocator.cpp:
(WebCore::TrackingTextureAllocator::createTexture):
(WebCore::TrackingTextureAllocator::deleteTexture):
* platform/graphics/chromium/TrackingTextureAllocator.h:
(TrackingTextureAllocator):
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::CCLayerTreeHost):
(WebCore::CCLayerTreeHost::initializeLayerRenderer):
(WebCore::CCLayerTreeHost::finishCommitOnImplThread):
(WebCore::CCLayerTreeHost::setNeedsForcedCommit):
(WebCore):
(WebCore::CCLayerTreeHost::setVisible):
(WebCore::CCLayerTreeHost::setContentsMemoryAllocationLimitBytes):
(WebCore::CCLayerTreeHost::updateLayers):
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
(CCLayerTreeHost):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
(WebCore::CCLayerTreeHostImpl::commitComplete):
(WebCore::CCLayerTreeHostImpl::canDraw):
(WebCore::CCLayerTreeHostImpl::context):
(WebCore::CCLayerTreeHostImpl::setContentsMemoryAllocationLimitBytes):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
(CCLayerTreeHostImplClient):
(WebCore::CCLayerTreeHostImpl::sourceFrameCanBeDrawn):
(WebCore::CCLayerTreeHostImpl::setSourceFrameCanBeDrawn):
(CCLayerTreeHostImpl):
* platform/graphics/chromium/cc/CCProxy.h:
(CCProxy):
* platform/graphics/chromium/cc/CCRenderer.h:
(CCRendererClient):
* platform/graphics/chromium/cc/CCScheduler.cpp:
(WebCore::CCScheduler::beginFrameComplete):
(WebCore::CCScheduler::didSwapBuffersComplete):
(WebCore::CCScheduler::didLoseContext):
(WebCore::CCScheduler::didRecreateContext):
(WebCore::CCScheduler::vsyncTick):
* platform/graphics/chromium/cc/CCScheduler.h:
(CCScheduler):
* platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
* platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
* platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
(WebCore::CCSingleThreadProxy::setNeedsForcedCommit):
(WebCore):
(WebCore::CCSingleThreadProxy::stop):
(WebCore::CCSingleThreadProxy::postSetContentsMemoryAllocationLimitBytesToMainThreadOnImplThread):
(WebCore::CCSingleThreadProxy::commitAndComposite):
* platform/graphics/chromium/cc/CCSingleThreadProxy.h:
(CCSingleThreadProxy):
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxy::CCThreadProxy):
(WebCore::CCThreadProxy::compositeAndReadback):
(WebCore::CCThreadProxy::setNeedsForcedCommit):
(WebCore):
(WebCore::CCThreadProxy::postSetContentsMemoryAllocationLimitBytesToMainThreadOnImplThread):
(WebCore::CCThreadProxy::scheduledActionBeginFrame):
(WebCore::CCThreadProxy::beginFrame):
(WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
(WebCore::CCThreadProxy::setContentsMemoryAllocationLimitBytes):
(WebCore::CCThreadProxy::layerTreeHostClosedOnImplThread):
* platform/graphics/chromium/cc/CCThreadProxy.h:
(CCThreadProxy):
(BeginFrameAndCommitState):
* platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
(WebCore::CCVideoLayerImpl::~CCVideoLayerImpl):
(WebCore::CCVideoLayerImpl::willDraw):
(WebCore::CCVideoLayerImpl::willDrawInternal):
(WebCore::CCVideoLayerImpl::FramePlane::allocateData):
(WebCore::CCVideoLayerImpl::FramePlane::freeData):
(WebCore::CCVideoLayerImpl::allocatePlaneData):
(WebCore::CCVideoLayerImpl::freePlaneData):
(WebCore::CCVideoLayerImpl::freeUnusedPlaneData):
(WebCore::CCVideoLayerImpl::didLoseContext):
* platform/graphics/chromium/cc/CCVideoLayerImpl.h:
(FramePlane):

Source/WebKit/chromium:

* tests/CCLayerTreeHostImplTest.cpp:
* tests/CCLayerTreeHostTest.cpp:
(CCLayerTreeHostTestVisibilityAndAllocationControlDrawing):
(WTF::CCLayerTreeHostTestVisibilityAndAllocationControlDrawing::CCLayerTreeHostTestVisibilityAndAllocationControlDrawing):
(WTF::CCLayerTreeHostTestVisibilityAndAllocationControlDrawing::beginTest):
(WTF::CCLayerTreeHostTestVisibilityAndAllocationControlDrawing::didCommitAndDrawFrame):
(WTF::CCLayerTreeHostTestVisibilityAndAllocationControlDrawing::didCommit):
(WTF::CCLayerTreeHostTestVisibilityAndAllocationControlDrawing::commitCompleteOnCCThread):
(WTF::CCLayerTreeHostTestVisibilityAndAllocationControlDrawing::afterTest):
(WTF):
(WTF::CCLayerTreeHostTestLayerOcclusion::beginTest):
(WTF::CCLayerTreeHostTestLayerOcclusionWithFilters::beginTest):
(WTF::CCLayerTreeHostTestManySurfaces::beginTest):
* tests/CCSchedulerStateMachineTest.cpp:
(WebCore::TEST):
* tests/CCTiledLayerTestCommon.h:
(WebKitTests::FakeTextureAllocator::createTexture):
(WebKitTests::FakeTextureAllocator::deleteTexture):
* tests/FakeWebGraphicsContext3D.h:
(WebKit::FakeWebGraphicsContext3D::createTexture):
(FakeWebGraphicsContext3D):
* tests/LayerRendererChromiumTest.cpp:
(TEST_F):
* tests/TiledLayerChromiumTest.cpp:

LayoutTests:

* platform/chromium/TestExpectations:

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

8 years agoMake FormControlState capable to store multiple values
tkent@chromium.org [Fri, 22 Jun 2012 05:36:28 +0000 (05:36 +0000)]
Make FormControlState capable to store multiple values
https://bugs.webkit.org/show_bug.cgi?id=89628

Reviewed by Hajime Morita.

Make FormControlState capable to store multiple values in order to
clean FileInputType.cpp up and prepare to fix Bug 89623.

No new tests. This doesn't change web-exposed behavior, and
fast/forms/file/recover-file-input-in-unposted-form.html covers
major part of this change.

* html/FormController.cpp:
(WebCore::FormControlState::serializeTo): Support for two or more values.
(WebCore::FormControlState::deserialize): ditto.
(WebCore::formStateSignature):
Bump up the version because the state format for <input type=file> is changed.
* html/FormController.h:
 - String m_value -> Vector<String> m_values
 - Add some functions.
 - Remove hasValue() and value().
(WebCore::FormControlState::FormControlState): m_value -> m_values.
(WebCore::FormControlState::valueSize): Added.
(WebCore::FormControlState::operator[]): Added.
(FormControlState): Add append() declaration, etc.
(WebCore::FormControlState::operator=): m_value -> m_values
(WebCore::FormControlState::append): Added.

* html/HTMLFormControlElementWithState.cpp:
(WebCore::HTMLFormControlElementWithState::finishParsingChildren):
Use valueSize() instead of hasValue().
* html/HTMLFormControlElementWithState.h:
(HTMLFormControlElementWithState): Update the comment.

* html/FileInputType.cpp:
(WebCore::FileInputType::saveFormControlState):
Use multiple value capability of FormControlState
(WebCore::FileInputType::restoreFormControlState): ditto.

* html/BaseCheckableInputType.cpp:
(WebCore::BaseCheckableInputType::restoreFormControlState): Use [0] instead of value().
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::restoreFormControlState): ditto.
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::restoreFormControlState): ditto.
* html/HiddenInputType.cpp:
(WebCore::HiddenInputType::restoreFormControlState): ditto.
* html/InputType.cpp:
(WebCore::InputType::restoreFormControlState): ditto.

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

8 years agoSource/WebCore: LabelsNodeList isn't updated properly after its owner node is adopted...
rniwa@webkit.org [Fri, 22 Jun 2012 05:33:58 +0000 (05:33 +0000)]
Source/WebCore: LabelsNodeList isn't updated properly after its owner node is adopted into a new document
https://bugs.webkit.org/show_bug.cgi?id=89730

Reviewed by Darin Adler.

When a node is adopted, node lists that are invalidated at document level need to be unregistered
from old document and registered to new document so that DOM mutations in new document will invalidate
caches in the node lists. Done that in NodeListsNodeData::adoptTreeScope, which was extracted from
TreeScopeAdopter::moveTreeToNewScope.

Also renamed DynamicNodeList::node() and m_node to rootNode() and m_ownerNode to better express
their semantics and added ownerNode() to make m_ownerNode private to DynamicNodeList.

Test: fast/forms/label/labels-owner-node-adopted.html

* bindings/js/JSNodeListCustom.cpp:
(WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::~ChildNodeList):
(WebCore::ChildNodeList::length):
(WebCore::ChildNodeList::item):
(WebCore::ChildNodeList::nodeMatches):
* dom/ClassNodeList.cpp:
(WebCore::ClassNodeList::ClassNodeList):
(WebCore::ClassNodeList::~ClassNodeList):
* dom/DynamicNodeList.cpp:
(WebCore::DynamicSubtreeNodeList::length):
(WebCore::DynamicSubtreeNodeList::itemForwardsFromCurrent):
(WebCore::DynamicSubtreeNodeList::itemBackwardsFromCurrent):
(WebCore::DynamicSubtreeNodeList::item):
(WebCore::DynamicNodeList::itemWithName):
* dom/DynamicNodeList.h:
(WebCore::DynamicNodeList::DynamicNodeList):
(WebCore::DynamicNodeList::ownerNode):
(WebCore::DynamicNodeList::rootedAtDocument):
(WebCore::DynamicNodeList::shouldInvalidateOnAttributeChange):
(WebCore::DynamicNodeList::rootNode):
(WebCore::DynamicNodeList::document):
(DynamicNodeList):
* dom/NameNodeList.cpp:
(WebCore::NameNodeList::~NameNodeList):
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::adoptTreeScope):
(NodeListsNodeData):
* dom/TagNodeList.cpp:
(WebCore::TagNodeList::~TagNodeList):
* dom/TreeScopeAdopter.cpp:
(WebCore::TreeScopeAdopter::moveTreeToNewScope):
* html/LabelsNodeList.cpp:
(WebCore::LabelsNodeList::~LabelsNodeList):
(WebCore::LabelsNodeList::nodeMatches):
* html/RadioNodeList.cpp:
(WebCore::RadioNodeList::~RadioNodeList):
(WebCore::RadioNodeList::checkElementMatchesRadioNodeListFilter):

LayoutTests: LabelsNostList isn't updated properly after its owner node is adopted into a new document
https://bugs.webkit.org/show_bug.cgi?id=89730

Reviewed by Darin Adler.

* fast/forms/label/labels-owner-node-adopted-expected.txt: Added.
* fast/forms/label/labels-owner-node-adopted.html: Added.

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

8 years agoWeb Inspector: Properly display native memory sizes bigger than 2GB
commit-queue@webkit.org [Fri, 22 Jun 2012 04:07:42 +0000 (04:07 +0000)]
Web Inspector: Properly display native memory sizes bigger than 2GB
https://bugs.webkit.org/show_bug.cgi?id=89661

Patch by Alexei Filippov <alexeif@chromium.org> on 2012-06-21
Reviewed by Pavel Feldman.

* inspector/Inspector.json:
* inspector/InspectorMemoryAgent.cpp:
(WebCore::jsHeapInfo):
(WebCore::inspectorData):
(WebCore::renderTreeInfo):
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):

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

8 years agoCrash in RenderBlock::layoutPositionedObjects.
inferno@chromium.org [Fri, 22 Jun 2012 04:01:57 +0000 (04:01 +0000)]
Crash in RenderBlock::layoutPositionedObjects.
https://bugs.webkit.org/show_bug.cgi?id=89599

Reviewed by Julien Chaffraix.

Source/WebCore:

Test: fast/table/table-split-positioned-object-crash.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::splitBlocks): no longer need to explicitly call
removePositionedObjects, since it is part of moveChildrenTo.
* rendering/RenderBlock.h:
(WebCore::RenderBlock::hasPositionedObjects): helper to tell if we have
positioned objects in our list.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::splitAnonymousBoxesAroundChild): Like r102263, this
condition was wrong and while moving children across completely different
trees, we need fullRemoveInsert as true.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::moveChildTo): see code comment.
(WebCore::RenderBoxModelObject::moveChildrenTo): see code comment.

LayoutTests:

* fast/table/table-split-positioned-object-crash-expected.txt: Added.
* fast/table/table-split-positioned-object-crash.html: Added.

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

8 years ago[Chromium][Win] Missing trailing newlines in one text test expectation, debug only
tonyg@chromium.org [Fri, 22 Jun 2012 02:55:29 +0000 (02:55 +0000)]
[Chromium][Win] Missing trailing newlines in one text test expectation, debug only
https://bugs.webkit.org/show_bug.cgi?id=89534

Reviewed by Tony Gentilcore.

* fast/canvas/resize-while-save-active-expected.txt:
* fast/canvas/resize-while-save-active.html: Make test deterministic by running script after load and fix line endings.

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

8 years agoAdd a perf-test for innerHTML setter for a large DOM tree
haraken@chromium.org [Fri, 22 Jun 2012 02:50:52 +0000 (02:50 +0000)]
Add a perf-test for innerHTML setter for a large DOM tree
https://bugs.webkit.org/show_bug.cgi?id=89723

Reviewed by Ryosuke Niwa.

We want a benchmark for innerHTML setter for the following reason:

- innerHTML setter is widely used in the real world.
- I am planning to optimize innerHTML setter in the near future.
- I want to use the innerHTML setter benchmark for the patch of bug 88834.

Performance results in my Linux desktop:

RESULT Parser: innerHTML-setter= 289.782649995 runs/s
median= 290.046269741 runs/s, stdev= 1.06575112224 runs/s, min= 286.831812256 runs/s, max= 291.005291005 runs/s

RESULT Parser: innerHTML-setter= 289.020706132 runs/s
median= 289.093298292 runs/s, stdev= 0.985203313093 runs/s, min= 286.831812256 runs/s, max= 290.620871863 runs/s

RESULT Parser: innerHTML-setter= 288.912051701 runs/s
median= 291.005291005 runs/s, stdev= 3.65241325588 runs/s, min= 283.505154639 runs/s, max= 292.553191489 runs/s

RESULT Parser: innerHTML-setter= 288.644186666 runs/s
median= 288.713910761 runs/s, stdev= 1.31889053717 runs/s, min= 286.085825748 runs/s, max= 290.620871863 runs/s

RESULT Parser: innerHTML-setter= 288.698714577 runs/s
median= 288.713910761 runs/s, stdev= 1.03938198202 runs/s, min= 286.458333333 runs/s, max= 290.237467018 runs/s

* Parser/innerHTML-setter.html: Added.

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

8 years agoMake HTMLDocumentParser::create(DocumentFragment*,Element*, FragmentScriptingPermissi...
kseo@webkit.org [Fri, 22 Jun 2012 02:47:15 +0000 (02:47 +0000)]
Make HTMLDocumentParser::create(DocumentFragment*,Element*, FragmentScriptingPermission) private.
https://bugs.webkit.org/show_bug.cgi?id=89724

Reviewed by Darin Adler.

It is used only by HTMLDocumentParser::parseDocumentFragment. No behavioral changes.

* html/parser/HTMLDocumentParser.h:
(WebCore::HTMLDocumentParser::create):
(HTMLDocumentParser):

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

8 years ago[chromium] Initialize compositor's visibility state upon initialization
commit-queue@webkit.org [Fri, 22 Jun 2012 02:39:22 +0000 (02:39 +0000)]
[chromium] Initialize compositor's visibility state upon initialization
https://bugs.webkit.org/show_bug.cgi?id=89712

Patch by James Robinson <jamesr@chromium.org> on 2012-06-21
Reviewed by Adrienne Walker.

A given WebViewImpl's visibility state might change any number of times before compositing is enabled. If the
visibility state is not the default (visible) when the compositor is initialized, we need to let it know the
correct visibility state or it will start ticking uselessly in threaded mode.

Tested manually, there's no way to create a new WebViewImpl in a non-visible state in a WebKit test that I know
of.

* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::setIsAcceleratedCompositingActive):

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

8 years ago[Chromium] Reset mediaPlaybackRequiresUserGesture WebSettings after each test
abarth@webkit.org [Fri, 22 Jun 2012 02:37:07 +0000 (02:37 +0000)]
[Chromium] Reset mediaPlaybackRequiresUserGesture WebSettings after each test
https://bugs.webkit.org/show_bug.cgi?id=89718

Reviewed by Kent Tamura.

We should reset this WebSetting to its default value so that it behaves
consistently across tests.

* DumpRenderTree/chromium/WebPreferences.cpp:
(WebPreferences::reset):
(WebPreferences::applyTo):
* DumpRenderTree/chromium/WebPreferences.h:
(WebPreferences):

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

8 years ago[GTK] Use the empty plugin support on non-X11 and non-Windows platforms
commit-queue@webkit.org [Fri, 22 Jun 2012 02:05:25 +0000 (02:05 +0000)]
[GTK] Use the empty plugin support on non-X11 and non-Windows platforms
https://bugs.webkit.org/show_bug.cgi?id=89501

Patch by Kalev Lember <kalevlember@gmail.com> on 2012-06-21
Reviewed by Martin Robinson.

The GTK+ port doesn't currently support NPAPI plugins on platforms other
than X11 or Windows. Using PluginPackageNone and PluginViewNone makes it
easier to build it on other platforms and also allows us to drop some
ifdefs from PluginPackageGtk and PluginViewGtk.

* GNUmakefile.list.am:

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

8 years ago[chromium] Add touch-event support for WebPluginContainerImpl
commit-queue@webkit.org [Fri, 22 Jun 2012 02:05:13 +0000 (02:05 +0000)]
[chromium] Add touch-event support for WebPluginContainerImpl
https://bugs.webkit.org/show_bug.cgi?id=89089

Patch by Sadrul Habib Chowdhury <sadrul@chromium.org> on 2012-06-21
Reviewed by Adam Barth.

* src/WebPluginContainerImpl.cpp:
(WebKit::WebPluginContainerImpl::handleEvent):
* src/WebPluginContainerImpl.h:
(WebCore):
(WebPluginContainerImpl):

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

8 years ago[Shadow][Editing] Assertion in VisibleSelection::adjuseSelectionToAvoidCrossingBounda...
shinyak@chromium.org [Fri, 22 Jun 2012 02:02:38 +0000 (02:02 +0000)]
[Shadow][Editing] Assertion in VisibleSelection::adjuseSelectionToAvoidCrossingBoundaries() is triggered.
https://bugs.webkit.org/show_bug.cgi?id=89081

Reviewed by Ryosuke Niwa.

Source/WebCore:

firstEditablePositionAfterPositionInRoot and lastEditablePositionBeforePositionInRoot did not
consider a case that an argument hiehestRoot can be in Shadow DOM. So when adjusting selection to
avoid crossing editing boundaries, VisiblePosition can break shadow boundaries, and it causes
an assertion trigger.

By this patch, firstEditablePositionAfterPositionInRoot and lastEditablePositionBeforePositionInRoot will
adjust position to the tree scope of highestRoot instead of its parent tree scope.

Test: editing/shadow/adjusting-editing-boundary-with-table-in-shadow.html

* editing/htmlediting.cpp:
(WebCore::firstEditablePositionAfterPositionInRoot):
(WebCore::lastEditablePositionBeforePositionInRoot):

LayoutTests:

* editing/shadow/adjusting-editing-boundary-with-table-in-shadow-expected.txt: Added.
* editing/shadow/adjusting-editing-boundary-with-table-in-shadow.html: Added.

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

8 years agoMake GL error messages consistent in LayoutTests
commit-queue@webkit.org [Fri, 22 Jun 2012 01:46:12 +0000 (01:46 +0000)]
Make GL error messages consistent in LayoutTests
https://bugs.webkit.org/show_bug.cgi?id=89689

Patch by Gregg Tavares <gman@google.com> on 2012-06-21
Reviewed by Kenneth Russell.

* fast/canvas/webgl/resources/webgl-test.js:
(shouldGenerateGLError):
(glErrorShouldBe):
* fast/canvas/webgl/webgl-depth-texture-expected.txt:

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

8 years agoop_resolve_global should not prevent DFG inlining
fpizlo@apple.com [Fri, 22 Jun 2012 01:33:30 +0000 (01:33 +0000)]
op_resolve_global should not prevent DFG inlining
https://bugs.webkit.org/show_bug.cgi?id=89726

Reviewed by Gavin Barraclough.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::shrinkToFit):
* bytecode/GlobalResolveInfo.h:
(JSC::GlobalResolveInfo::GlobalResolveInfo):
(GlobalResolveInfo):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
* dfg/DFGCapabilities.h:
(JSC::DFG::canInlineOpcode):
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):

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

8 years agoWeb Inspector: exception in TimelinePresentationModel when recording timeline
caseq@chromium.org [Fri, 22 Jun 2012 01:30:19 +0000 (01:30 +0000)]
Web Inspector: exception in TimelinePresentationModel when recording timeline
https://bugs.webkit.org/show_bug.cgi?id=89716

Reviewed by Pavel Feldman.

* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline.processRecord):
(WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
* inspector/front-end/TimelinePresentationModel.js:
(WebInspector.TimelinePresentationModel.prototype.filteredRecords):
(WebInspector.TimelinePresentationModel.prototype.isVisible):

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

8 years ago[Blackberry] BlackBerry::Platform::Settings::get() rename to BlackBerry::Platform...
commit-queue@webkit.org [Fri, 22 Jun 2012 01:18:31 +0000 (01:18 +0000)]
[Blackberry] BlackBerry::Platform::Settings::get() rename to BlackBerry::Platform::Settings::instance() to make it consistent with our other singletons
https://bugs.webkit.org/show_bug.cgi?id=89684

Source/WebKit/blackberry:

Patch by Parth Patel <parpatel@rim.com> on 2012-06-21
Reviewed by Yong Li.

Update setting instance access to use instance() instead of get().

* Api/BlackBerryGlobal.cpp:
(BlackBerry::WebKit::globalInitialize):
* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::init):
(BlackBerry::WebKit::WebPagePrivate::shouldSendResizeEvent):
* WebCoreSupport/AboutData.cpp:
(WebCore::configPage):
* WebCoreSupport/CacheClientBlackBerry.cpp:
(WebCore::CacheClientBlackBerry::updateCacheCapacity):
* WebKitSupport/FatFingers.cpp:
(BlackBerry::WebKit::FatFingers::getPaddings):
* WebKitSupport/InputHandler.cpp:
(BlackBerry::WebKit::InputHandler::isInputModeEnabled):
(BlackBerry::WebKit::InputHandler::setInputModeEnabled):
(BlackBerry::WebKit::InputHandler::ensureFocusTextElementVisible):
* WebKitSupport/SurfacePool.cpp:
(BlackBerry::WebKit::SurfacePool::initialize):

Source/WTF:

Patch by Parth Patel <parpatel@rim.com> on 2012-06-21
Reviewed by Yong Li.

Update setting instance access to use instance() instead of get().

* wtf/ThreadingPthreads.cpp:
(WTF::createThreadInternal):

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

8 years ago[chromium] Layout Test fast/speech/scripted/speechgrammar-basics.html is flaky
kbr@google.com [Fri, 22 Jun 2012 00:53:48 +0000 (00:53 +0000)]
[chromium] Layout Test fast/speech/scripted/speechgrammar-basics.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=89717

Unreviewed. Added suppression for flaky crash.

* platform/chromium/TestExpectations:

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

8 years agoAdd methods to select between offsets in an editable field.
commit-queue@webkit.org [Fri, 22 Jun 2012 00:49:25 +0000 (00:49 +0000)]
Add methods to select between offsets in an editable field.
https://bugs.webkit.org/show_bug.cgi?id=89098

Patch by Oli Lan <olilan@chromium.org> on 2012-06-21
Reviewed by Ryosuke Niwa.

Reviewed by Ryosuke Niwa.

Source/WebCore:

Adds a new method setSelectionOffsets to Editor. This selects between
the two integer offsets provided in the node currently being edited,
assuming the offsets are given relative to the rootEditableElement.
If no node or field is currently being edited, the method returns false.

Test: a new test has been added to the chromium port's WebViewTest that
calls this via WebViewImpl::setSelectionEditableOffsets.

* editing/Editor.cpp:
(WebCore::Editor::setSelectionOffsets):
(WebCore):
* editing/Editor.h:
(Editor):

Source/WebKit/chromium:

This adds a new method WebViewImpl::setEditableSelectionOffsets, which
can be used to select between two character positions in the node
currently beign edited.

The offsets are assumed to be relative to the rootEditableElement.

This can be used for IME features that require the ability to manipulate
the selection, for example on Android where the method InputConnection#setSelection
is used.

This method calls a new method Editor::setSelectionOffsets.

The method works for inputs/textareas (i.e. text form controls) and
contenteditable nodes, and the new test in WebViewTest tests both these cases.

* public/WebView.h:
(WebView):
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::setEditableSelectionOffsets):
(WebKit):
* src/WebViewImpl.h:
(WebViewImpl):
* tests/WebViewTest.cpp:
(WebKit::TEST_F):
(WebKit):
* tests/data/content_editable_populated.html: Added.
* tests/data/input_field_populated.html: Added.

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

8 years agoAdd support for the grid and inline-grid display types.
jchaffraix@webkit.org [Fri, 22 Jun 2012 00:36:07 +0000 (00:36 +0000)]
Add support for the grid and inline-grid display types.
https://bugs.webkit.org/show_bug.cgi?id=60732

Reviewed by Tony Chang.

Source/WebCore:

Tests: fast/css-grid-layout/containing-block-grids-expected.html
       fast/css-grid-layout/containing-block-grids.html
       fast/css-grid-layout/floating-empty-grids-expected.html
       fast/css-grid-layout/floating-empty-grids.html

Based on an earlier patch by David Hyatt <hyatt@apple.com>.

Added the first renderer for grid elements.

* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Added RenderGrid files to the build systems.

* rendering/RenderGrid.cpp: Added.
(WebCore::RenderGrid::RenderGrid):
(WebCore::RenderGrid::~RenderGrid):
(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::renderName):
* rendering/RenderGrid.h: Added.
(RenderGrid):
Skeleton renderer for now.

* rendering/RenderObject.cpp:
(WebCore::RenderObject::createObject):
Return our new RenderGrid for our 2 new |display| values.

* rendering/style/RenderStyle.h:
Added INLINE_GRID to the inline and replaced types.

LayoutTests:

Based on an earlier patch by David Hyatt <hyatt@apple.com>.

* fast/css-grid-layout/containing-block-grids-expected.html: Added.
* fast/css-grid-layout/containing-block-grids.html: Added.
* fast/css-grid-layout/floating-empty-grids-expected.html: Added.
* fast/css-grid-layout/floating-empty-grids.html: Added.

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

8 years agoClang build fix.
rniwa@webkit.org [Thu, 21 Jun 2012 23:55:56 +0000 (23:55 +0000)]
Clang build fix.

* dom/NodeRareData.h:

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

8 years ago[chromium] LayerRendererChromium is not getting visibility messages in single threade...
jamesr@google.com [Thu, 21 Jun 2012 23:52:48 +0000 (23:52 +0000)]
[chromium] LayerRendererChromium is not getting visibility messages in single threaded compositing mode.
https://bugs.webkit.org/show_bug.cgi?id=89045

Reviewed by Adrienne Walker.

Based on patch by Michal Mocny <mmocny@google.com>.

Source/WebCore:

Invariants:

1.) We never commit (paint, animate, any of it) when not visible on the main thread -except- for
compositeAndReadback, regardless of threaded vs non-threaded mode
2.) CCLayerTreeHost::m_contentsTextureManager's memory budget is only set by updateLayers() when we are going to
make a frame and is always set to a non-zero value
3.) Zero-sized allocations from the GPU process are always serviced immediately on the impl thread.  Non-zero
allocations are met in the next frame, whenever we would produce that frame according to our usual frame
scheduling logic.
4.) The impl thread always knows the set of currently-allocated managed texture IDs and can delete them all
whenever it likes without needing the main thread to be responsive.

Details:

There are two main changes - tweaking how the contents texture manager's budget is handled and tweaking frame
scheduling for the !visible case.

The scheduling change is a bit more subtle but it unifies the single and multi threaded paths and is really
important.  Except for compositeAndReadback (which I'll talk about below), we simply won't produce frames when
not visible.  This already happens in the single threaded path thanks to render_widget so the only change is to
the threaded path.  The difficulty here is we might post a beginFrame task from the impl thread and then get a
setVisible(false) call on the main thread before the beginFrame task runs.  Since I'm making the setVisible()
call a blocking call from main thread -> impl thread, when the beginFrame task eventually does run on the main
thread we can know that the impl thread's notion of visibility is in sync with the main threads.  Thus I'm
planning to simply abort the frame before doing any processing on the main thread.  The scheduler will know if
it gets a beginFrameAborted and COMMIT_STATE_IDLE.

compositeAndReadback is special - this call currently does come in when we aren't visible (in single and
threaded mode) and we need to service it.  In particular, we need to send a beginFrame over and have it
not be ignored on the main thread.  For this I'm thinking of having the proxy keep track of whether it's
servicing a compositeAndReadback() and use that bit on the main thread to know to process the beginFrame
normally.  On the impl side, we need a few changes.  First, we have to allocate a default framebuffer
(ensureFramebufferCHROMIUM) even if we've dropped it previously and remember to discard it after the
readPixels().  Second, we have to provide a non-zero contents texture allocation on the beginFrame message, and
again remember to delete the textures after the readPixels().  Third, we have to know that the beginFrame is a
forced frame so when we get the beginFrameComplete we go ahead with the rest of the frame.  For this, I think
I'll have to add ACTION_BEGIN_FORCED_FRAME and a corresponding COMMIT_STATE_FORCED_FRAME_IN_PROGRESS so the
scheduler can keep track of the magicness of this frame, and then add some logic after the readpixels call to
drop resources after the readback.  It's probably a good time to stop swapping on readbacks too....

The contents texture manager's budget is only relevant when we want to make a frame, so it's now passed in on
the updateLayers().  Since we only make frames when we are visible and we never have a zero allocation when
visible (thanks to the frame scheduling changes above), this value is always non-zero.  The other thing the
texture manager needs to know about is if we've killed all of the underlying textures from the impl thread -
this bit is passed in by the proxy before the updateLayers() call.  This means if we're running while visible
and the manager wants to decrease our budget to something other than zero, we'll get a new (non-zero) allocation
on the impl thread, schedule a frame, then when it's time to make the frame pass the new lower limit in to
updateLayers(), then have the contents texture manager evict down to our new limit and make a frame with the new
budget.  When the commit completes we'll get notified on the impl thread of which textures the contents texture
manager decided to evict and issue the deleteTexture() calls on them.

The texture budget we pass in will be based on the most recent non-zero memory allocation we received from the
GPU memory manager, or some default value I'll pull out my ass if we haven't heard anything yet.  On compositor
initialization, we can't afford to wait for a round-trip through the GPU process to get a budget for the first
frame.  I don't think handling a decrease to a non-zero budget on a visible tab needs to be terribly urgent - we
can get to it when we get to making the next frame.  If we wanted to satisfy reduced texture budgets directly
from the impl thread, we could keep a priority-list ordered set of textures once we have priorities and delete
based on that.  Let's worry about that later.

* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::onGpuMemoryAllocationChangedOnImpl):
(WebCore::LayerRendererChromium::LayerRendererChromium):
(WebCore::LayerRendererChromium::initialize):
(WebCore::LayerRendererChromium::setVisible):
(WebCore::LayerRendererChromium::setGpuMemoryAllocation):
(WebCore):
(WebCore::LayerRendererChromium::swapBuffers):
(WebCore::LayerRendererChromium::getFramebufferPixels):
* platform/graphics/chromium/LayerRendererChromium.h:
(WebCore):
(LayerRendererChromium):
* platform/graphics/chromium/TextureManager.cpp:
(WebCore::TextureManager::evictAndRemoveAllDeletedTextures):
(WebCore):
* platform/graphics/chromium/TextureManager.h:
(TextureAllocator):
(TextureManager):
* platform/graphics/chromium/TrackingTextureAllocator.cpp:
(WebCore::TrackingTextureAllocator::createTexture):
(WebCore::TrackingTextureAllocator::deleteTexture):
(WebCore):
(WebCore::TrackingTextureAllocator::deleteAllTextures):
* platform/graphics/chromium/TrackingTextureAllocator.h:
(TrackingTextureAllocator):
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::CCLayerTreeHost):
(WebCore::CCLayerTreeHost::initializeLayerRenderer):
(WebCore::CCLayerTreeHost::finishCommitOnImplThread):
(WebCore::CCLayerTreeHost::setVisible):
(WebCore::CCLayerTreeHost::evictAllContentTextures):
(WebCore::CCLayerTreeHost::updateLayers):
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
(CCLayerTreeHost):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
(WebCore::CCLayerTreeHostImpl::commitComplete):
(WebCore::CCLayerTreeHostImpl::canDraw):
(WebCore::CCLayerTreeHostImpl::context):
(WebCore::CCLayerTreeHostImpl::releaseContentsTextures):
(WebCore):
(WebCore::CCLayerTreeHostImpl::setMemoryAllocationLimitBytes):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
(CCLayerTreeHostImplClient):
(WebCore::CCLayerTreeHostImpl::contentsTexturesWerePurgedSinceLastCommit):
(WebCore::CCLayerTreeHostImpl::memoryAllocationLimitBytes):
(CCLayerTreeHostImpl):
* platform/graphics/chromium/cc/CCProxy.h:
(CCProxy):
* platform/graphics/chromium/cc/CCRenderer.h:
(CCRendererClient):
* platform/graphics/chromium/cc/CCScheduler.cpp:
(WebCore::CCScheduler::beginFrameComplete):
(WebCore::CCScheduler::beginFrameAborted):
(WebCore):
(WebCore::CCScheduler::didSwapBuffersComplete):
(WebCore::CCScheduler::didLoseContext):
(WebCore::CCScheduler::didRecreateContext):
(WebCore::CCScheduler::vsyncTick):
* platform/graphics/chromium/cc/CCScheduler.h:
(CCScheduler):
* platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
(WebCore::CCSchedulerStateMachine::beginFrameAborted):
(WebCore):
* platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
* platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
(WebCore::CCSingleThreadProxy::setVisible):
(WebCore):
(WebCore::CCSingleThreadProxy::stop):
(WebCore::CCSingleThreadProxy::commitAndComposite):
* platform/graphics/chromium/cc/CCSingleThreadProxy.h:
(CCSingleThreadProxy):
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxy::CCThreadProxy):
(WebCore::CCThreadProxy::compositeAndReadback):
(WebCore::CCThreadProxy::setVisible):
(WebCore):
(WebCore::CCThreadProxy::setVisibleOnImplThread):
(WebCore::CCThreadProxy::scheduledActionBeginFrame):
(WebCore::CCThreadProxy::beginFrame):
(WebCore::CCThreadProxy::beginFrameAbortedOnImplThread):
(WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
(WebCore::CCThreadProxy::layerTreeHostClosedOnImplThread):
* platform/graphics/chromium/cc/CCThreadProxy.h:
(CCThreadProxy):
(BeginFrameAndCommitState):
* platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
(WebCore::CCVideoLayerImpl::~CCVideoLayerImpl):
(WebCore::CCVideoLayerImpl::willDraw):
(WebCore::CCVideoLayerImpl::willDrawInternal):
(WebCore::CCVideoLayerImpl::FramePlane::allocateData):
(WebCore::CCVideoLayerImpl::FramePlane::freeData):
(WebCore::CCVideoLayerImpl::allocatePlaneData):
(WebCore::CCVideoLayerImpl::freePlaneData):
(WebCore::CCVideoLayerImpl::freeUnusedPlaneData):
(WebCore::CCVideoLayerImpl::didLoseContext):
* platform/graphics/chromium/cc/CCVideoLayerImpl.h:
(FramePlane):

Source/WebKit/chromium:

Update various test fixtures and tests to cover scheduling, visibility, and resource allocation changes.

* tests/CCLayerTreeHostImplTest.cpp:
* tests/CCLayerTreeHostTest.cpp:
(CCLayerTreeHostTestAbortFrameWhenInvisible):
(WTF::CCLayerTreeHostTestAbortFrameWhenInvisible::CCLayerTreeHostTestAbortFrameWhenInvisible):
(WTF::CCLayerTreeHostTestAbortFrameWhenInvisible::beginTest):
(WTF::CCLayerTreeHostTestAbortFrameWhenInvisible::afterTest):
(WTF):
(WTF::TEST_F):
(WTF::CCLayerTreeHostTestLayerOcclusion::beginTest):
(WTF::CCLayerTreeHostTestLayerOcclusionWithFilters::beginTest):
(WTF::CCLayerTreeHostTestManySurfaces::beginTest):
* tests/CCSchedulerStateMachineTest.cpp:
(WebCore::TEST):
* tests/CCTiledLayerTestCommon.h:
* tests/FakeWebGraphicsContext3D.h:
(WebKit::FakeWebGraphicsContext3D::FakeWebGraphicsContext3D):
(FakeWebGraphicsContext3D):
(WebKit::FakeWebGraphicsContext3D::createTexture):
* tests/LayerRendererChromiumTest.cpp:
(TEST_F):
* tests/TiledLayerChromiumTest.cpp:

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

8 years ago[chromium] Layout test failures after fixing GraphicsLayerChromium scale factors
kbr@google.com [Thu, 21 Jun 2012 23:40:29 +0000 (23:40 +0000)]
[chromium] Layout test failures after fixing GraphicsLayerChromium scale factors
https://bugs.webkit.org/show_bug.cgi?id=89702

Unreviewed TestExpectations update to suppress failures.

* platform/chromium/TestExpectations:

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

8 years agoShrink NodeListsNodeData
rniwa@webkit.org [Thu, 21 Jun 2012 23:37:56 +0000 (23:37 +0000)]
Shrink NodeListsNodeData
https://bugs.webkit.org/show_bug.cgi?id=89036

Reviewed by Andreas Kling.

Replaced 6 hash maps of AtomicString, String, and RefPtr<QualifiedName::QualifiedNameImpl> and a raw pointer
by 3 hash maps of std::pair<unsigned short, AtomicString>, std::pair<unsigned short, String>, and QualifiedName,
to halve the NodeListsNodeData's size (Reduced from 7 pointers to 3 pointers). Made those hash maps private and
added addCacheWith* and removeCacheWith* member functions to reduce the code duplication.

Also got rid of removeCached*NodeList member functions from Node and Document now that DynamicSubtreeNodeList can
simply call nodeLists()->removeCacheWith* on m_node.

* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::ChildNodeList):
* dom/ClassNodeList.cpp:
(WebCore::ClassNodeList::~ClassNodeList):
* dom/Document.cpp:
(WebCore::Document::getItems): Use addCacheWithName.
* dom/Document.h: Got rid of removeCachedMicroDataItemList.
(Document):
* dom/DynamicNodeList.cpp:
(WebCore): Moved the constructor to the header file.
* dom/DynamicNodeList.h: Added NodeListType and InvalidationType to be used in NodeListsNodeData.
(WebCore::DynamicNodeList::DynamicNodeList): Takes the invalidation type.
(WebCore::DynamicNodeList::document): Added.
(WebCore::DynamicNodeList::shouldInvalidateOnAttributeChange): Added.
(WebCore::DynamicNodeList::Caches::Caches): Added shouldInvalidateOnAttributeChange to retain the invalidation type.
(Caches):
(WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):
* dom/MicroDataItemList.cpp:
(WebCore::MicroDataItemList::~MicroDataItemList):
* dom/NameNodeList.cpp:
(WebCore::NameNodeList::NameNodeList):
(WebCore::NameNodeList::~NameNodeList):
(WebCore::NameNodeList::nodeMatches):
* dom/NameNodeList.h:
(WebCore):
(NameNodeList):
(WebCore::NameNodeList::create):
* dom/Node.cpp:
(WebCore::Node::nodeLists): Added so that node lists can directly call removeCacheWith*.
(WebCore::Node::getElementsByTagName):
(WebCore::Node::getElementsByTagNameNS):
(WebCore::Node::getElementsByName):
(WebCore::Node::getElementsByClassName):
(WebCore::Node::radioNodeList):
(WebCore::NodeListsNodeData::invalidateCaches): Merged invalidateCachesThatDependOnAttributes. The function takes
the attribute name to avoid invalidating tag node lists when only attributes are modified. Also, now we have exactly
three hash maps to invalidate: m_atomicNameCaches, m_nameCaches, and m_tagNodeListCacheNS.
(WebCore): NodeListsNodeData::isEmpty is moved to NodeRareData.h.
* dom/Node.h:
(WebCore):
(Node):
* dom/NodeRareData.h:
(NodeListsNodeData):
(WebCore::NodeListsNodeData::addCacheWithAtomicName):
(WebCore::NodeListsNodeData::addCacheWithName):
(WebCore::NodeListsNodeData::addCacheWithQualifiedName):
(WebCore::NodeListsNodeData::removeCacheWithAtomicName):
(WebCore::NodeListsNodeData::removeCacheWithName):
(WebCore::NodeListsNodeData::removeCacheWithQualifiedName):
(WebCore::NodeListsNodeData::isEmpty): Moved from Node.cpp now that this function is much shorter.
(WebCore::NodeListsNodeData::NodeListsNodeData):
(WebCore::NodeListsNodeData::namedNodeListKey): Helper member functions to obtain the key for AtomicString and
String hash maps.
* dom/TagNodeList.cpp:
(WebCore::TagNodeList::TagNodeList):
(WebCore::TagNodeList::~TagNodeList):
(WebCore::HTMLTagNodeList::HTMLTagNodeList): Hard code namespaceURI = starAtom since other values are never used.
(WebCore::HTMLTagNodeList::nodeMatches): Given that, assert m_namespace == starAtom.
* dom/TagNodeList.h:
(WebCore::TagNodeList::create): Add a new version of create that doesn't take namespace (assume starAtom) so that
addCacheWithAtomicName works with this class.
(WebCore::HTMLTagNodeList::create): Removed namespaceURI from the argument list since it's always starAtom.
(HTMLTagNodeList):
* html/LabelableElement.cpp:
(WebCore::LabelableElement::labels):
* html/LabelsNodeList.cpp:
(WebCore::LabelsNodeList::LabelsNodeList): Removed redundant m_forNode (identical to m_node in DynamicNodeList).
(WebCore::LabelsNodeList::~LabelsNodeList):
(WebCore::LabelsNodeList::nodeMatches):
* html/LabelsNodeList.h:
(WebCore::LabelsNodeList::create):
(LabelsNodeList):
* html/RadioNodeList.cpp:
(WebCore::RadioNodeList::RadioNodeList): Removed redundant m_baseElement (identical to m_node in DynamicNodeList).
Also changed the first argument's type from Element* to Node* so that it works better with new template member
functions of NodeListsNodeData.
(WebCore::RadioNodeList::~RadioNodeList):
(WebCore::RadioNodeList::checkElementMatchesRadioNodeListFilter):
* html/RadioNodeList.h:
(WebCore::RadioNodeList::create):
(RadioNodeList):

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

8 years agoUnreviewed, rolling out r120945.
commit-queue@webkit.org [Thu, 21 Jun 2012 23:32:22 +0000 (23:32 +0000)]
Unreviewed, rolling out r120945.
http://trac.webkit.org/changeset/120945
https://bugs.webkit.org/show_bug.cgi?id=89703

editing/shadow/breaking-editing-boundaries.html started to
crash (Requested by hayato on #webkit).

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

Source/WebCore:

* dom/EventDispatcher.cpp:
(WebCore::EventRelatedTargetAdjuster::adjust):
(WebCore::EventDispatcher::ensureEventAncestors):

LayoutTests:

* fast/dom/shadow/shadow-dom-event-dispatching-expected.txt:

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

8 years agoDRT/WTR python interface handles about:blank incorrectly
zoltan@webkit.org [Thu, 21 Jun 2012 23:32:04 +0000 (23:32 +0000)]
DRT/WTR python interface handles about:blank incorrectly
https://bugs.webkit.org/show_bug.cgi?id=89563

Reviewed by Dirk Pranke.

Currently DRT/WTR python interface's _command_from_driver_input function
puts the test directory path before about:blank. Remove this incorrect behavior.

* Scripts/webkitpy/layout_tests/port/webkit.py:
(WebKitDriver._command_from_driver_input):

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

8 years agoIndexedDB: Fix layout tests to clear previous database structures
jsbell@chromium.org [Thu, 21 Jun 2012 23:28:43 +0000 (23:28 +0000)]
IndexedDB: Fix layout tests to clear previous database structures
https://bugs.webkit.org/show_bug.cgi?id=89609

Reviewed by Tony Chang.

A handful of tests weren't deleting previously created stores (or the whole
database), which made them fail if trivially re-run in Chromium or under
NRWT with --iterations=2.

* storage/indexeddb/cursor-key-order-expected.txt:
* storage/indexeddb/cursor-primary-key-order-expected.txt:
* storage/indexeddb/open-during-transaction-expected.txt:
* storage/indexeddb/resources/cursor-key-order.js:
(prepareDatabase.deleteRequest.onsuccess.openreq.onsuccess.verreq.onsuccess):
(prepareDatabase.deleteRequest.onsuccess.openreq.onsuccess):
(prepareDatabase.deleteRequest.onsuccess):
(prepareDatabase):
* storage/indexeddb/resources/cursor-primary-key-order.js:
(prepareDatabase.deleteRequest.onsuccess.openRequest.onsuccess.versionChangeRequest.onsuccess):
(prepareDatabase.deleteRequest.onsuccess.openRequest.onsuccess):
(prepareDatabase.deleteRequest.onsuccess):
(prepareDatabase):
* storage/indexeddb/resources/factory-deletedatabase-interactions.js:
* storage/indexeddb/resources/open-close-version.js:
(test6):
(test6.halfDone):
* storage/indexeddb/resources/open-during-transaction.js:
(prepareDatabase.deleteRequest.onsuccess.openreq1.onsuccess.setverreq.onsuccess.setverreq.result.oncomplete):
(prepareDatabase.deleteRequest.onsuccess.openreq1.onsuccess.setverreq.onsuccess):
(prepareDatabase.deleteRequest.onsuccess.openreq1.onsuccess):
(prepareDatabase.deleteRequest.onsuccess):
(prepareDatabase):
* storage/indexeddb/transaction-abort-with-js-recursion-cross-frame-expected.txt:
* storage/indexeddb/transaction-abort-with-js-recursion-cross-frame.html:

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

8 years ago[GStreamer] Use setGstElementClassMetadata.
philn@webkit.org [Thu, 21 Jun 2012 22:56:56 +0000 (22:56 +0000)]
[GStreamer] Use setGstElementClassMetadata.

Rubber/stamped by Martin Robinson.

This function was introduced in r120790 but I forgot to actually
use it in that patch.

* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
(webkit_video_sink_class_init):
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

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

8 years agoDFG should inline 'new Array()'
fpizlo@apple.com [Thu, 21 Jun 2012 22:55:42 +0000 (22:55 +0000)]
DFG should inline 'new Array()'
https://bugs.webkit.org/show_bug.cgi?id=89632

Reviewed by Geoffrey Garen.

This adds support for treating InternalFunction like intrinsics. The code
to do so is actually quite clean, so I don't feel bad about perpetuating
the InternalFunction vs. JSFunction-with-NativeExecutable dichotomy.

Currently this newfound power is only used to inline 'new Array()'.

* dfg/DFGByteCodeParser.cpp:
(ByteCodeParser):
(JSC::DFG::ByteCodeParser::handleCall):
(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):
(DFG):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::isInternalFunctionConstant):
(JSC::DFG::Graph::valueOfInternalFunctionConstant):

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

8 years ago[Chromium] Enable CSP_NEXT on the Chromium port.
commit-queue@webkit.org [Thu, 21 Jun 2012 22:40:51 +0000 (22:40 +0000)]
[Chromium] Enable CSP_NEXT on the Chromium port.
https://bugs.webkit.org/show_bug.cgi?id=89683

Patch by Mike West <mkwst@chromium.org> on 2012-06-21
Reviewed by Adam Barth.

Enable CSP 1.1 on the Chromium port. This has zero practical effect,
as no CSP 1.1 patches have landed yet. But it will. Oh it will.

* features.gypi: ENABLE_CSP_NEXT=1

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

8 years ago[Chromium] Rebaseline video tests after r120939
kbr@google.com [Thu, 21 Jun 2012 22:39:59 +0000 (22:39 +0000)]
[Chromium] Rebaseline video tests after r120939
https://bugs.webkit.org/show_bug.cgi?id=89696

Unreviewed test expectations update to adjust bug number and
silence failures on Windows platform. Rebaselines are still needed.

* platform/chromium/TestExpectations:

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

8 years agoAdding copyrights to new files.
mhahnenberg@apple.com [Thu, 21 Jun 2012 22:38:39 +0000 (22:38 +0000)]
Adding copyrights to new files.

* heap/HeapTimer.cpp:
* heap/HeapTimer.h:
* heap/IncrementalSweeper.cpp:
* heap/IncrementalSweeper.h:

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

8 years ago[V8] Use v8::V8::AddImplicitReferences instead of SetHiddenValue
arv@chromium.org [Thu, 21 Jun 2012 22:34:26 +0000 (22:34 +0000)]
[V8] Use v8::V8::AddImplicitReferences instead of SetHiddenValue
https://bugs.webkit.org/show_bug.cgi?id=80880

Reviewed by Adam Barth.

We used to add a hidden property in the getter to the returned wrapper.
With this patch we instead handle the liveness of the wrapper in the GC phase by
calling v8::V8::AddHiddenReference.

To reduce the amount of custom code we need, the V8 code generator now supports
GenerateIsReachable (as well as CustomIsReachable) which, even though different
from the JSC attribute, is used in the same cases and takes the same values (even though
at the moment not all JSC values are supported by V8). Interfaces that have *IsReachable
also have a dependent life time (just like if V8DependentLifetime was present).

No new tests. Covered by existing tests.

* Target.pri:
* UseV8.cmake:
* WebCore.gypi:
* bindings/scripts/CodeGeneratorJS.pm:
(GetGenerateIsReachable): Abstracted GenerateIsReachable and JSGenerateIsReachable.
(GetCustomIsReachable): Ditto.
(GenerateHeader):
(GenerateImplementation):
* bindings/scripts/CodeGeneratorV8.pm:
(NeedsToVisitDOMWrapper):
(GetGenerateIsReachable):
(GetCustomIsReachable):
(GenerateVisitDOMWrapper):
(GenerateHeader):
(GenerateNamedConstructorCallback):
(GenerateImplementation):
* bindings/scripts/IDLAttributes.txt:
* bindings/scripts/test/V8/V8Float64Array.cpp:
(WebCore):
* bindings/scripts/test/V8/V8Float64Array.h:
(V8Float64Array):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestActiveDOMObject.h:
(V8TestActiveDOMObject):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
(V8TestCustomNamedGetter):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestEventConstructor.h:
(V8TestEventConstructor):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestEventTarget.h:
(V8TestEventTarget):
* bindings/scripts/test/V8/V8TestException.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestException.h:
(V8TestException):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestInterface.h:
(V8TestInterface):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
(V8TestMediaQueryListListener):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestNamedConstructor.h:
(V8TestNamedConstructor):
* bindings/scripts/test/V8/V8TestNode.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestNode.h:
(V8TestNode):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestObj.h:
(V8TestObj):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
(V8TestSerializedScriptValueInterface):
* bindings/v8/NPV8Object.cpp:
(WebCore::npObjectTypeInfo):
* bindings/v8/V8GCController.cpp:
(WebCore::GrouperVisitor::visitDOMWrapper):
* bindings/v8/WrapperTypeInfo.h:
(WebCore):
(WrapperTypeInfo):
* bindings/v8/custom/V8CSSStyleSheetCustom.cpp: Removed.
* bindings/v8/custom/V8DOMStringMapCustom.cpp:
* bindings/v8/custom/V8DOMTokenListCustom.cpp: Removed.
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore):
* bindings/v8/custom/V8NamedNodeMapCustom.cpp:
* bindings/v8/custom/V8StyleSheetCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8TextTrackListCustom.cpp: Removed.
* css/CSSStyleSheet.idl:
* css/StyleSheet.idl:
* dom/DOMStringMap.idl:
* dom/NamedNodeMap.idl:
* html/DOMTokenList.idl:
* html/track/TextTrackList.idl:

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

8 years agoIndexedDB: Implement spec behavior for multiEntry indexes with invalid/duplicate...
commit-queue@webkit.org [Thu, 21 Jun 2012 22:28:40 +0000 (22:28 +0000)]
IndexedDB: Implement spec behavior for multiEntry indexes with invalid/duplicate subkeys
https://bugs.webkit.org/show_bug.cgi?id=86123

Patch by Alec Flett <alecflett@chromium.org> on 2012-06-21
Reviewed by Darin Fisher.

Source/WebCore:

Distinguish between an actual invalid IDBKey, and an array of
possibly-invalid subkeys by making IDBKey::isValid() check subkeys
if the type is an array.

Introduce a new way to transform an IDBKey into a
multiEntry-specific IDBKey, (IDBKey::createMultiEntryArray)
throwing out duplicates and invalid keys. Use it when storing
index entries for multiEntry indexes.

No new tests: existing tests have been altered to include new behavior.

* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::continueFunction):
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::cmp):
* Modules/indexeddb/IDBIndex.cpp:
(WebCore::IDBIndex::get):
(WebCore::IDBIndex::getKey):
* Modules/indexeddb/IDBKey.cpp:
(WebCore::IDBKey::isValid):
(WebCore):
* Modules/indexeddb/IDBKey.h:
(WebCore::IDBKey::createMultiEntryArray):
(IDBKey):
* Modules/indexeddb/IDBKeyRange.cpp:
(WebCore::IDBKeyRange::only):
(WebCore::IDBKeyRange::lowerBound):
(WebCore::IDBKeyRange::upperBound):
(WebCore::IDBKeyRange::bound):
* Modules/indexeddb/IDBLevelDBBackingStore.cpp:
(WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
(WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
* Modules/indexeddb/IDBLevelDBCoding.cpp:
(WebCore::IDBLevelDBCoding::encodeIDBKey):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::get):
(WebCore::IDBObjectStore::add):
(WebCore::IDBObjectStore::put):
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::putInternal):
(WebCore):
* bindings/v8/IDBBindingUtilities.cpp:
(WebCore::createIDBKeyFromValue):

Source/WebKit/chromium:

Add matching isValid() to WebIDBKey to match the one in IDBKey.

* public/WebIDBKey.h:
* src/WebIDBKey.cpp:
(WebKit::WebIDBKey::isValid):
(WebKit):
* src/WebIDBKeyRange.cpp:
(WebKit::WebIDBKeyRange::assign):

LayoutTests:

* storage/indexeddb/index-multientry-expected.txt:
* storage/indexeddb/resources/index-multientry.js:
(addData):
(verifyIndexes.request.onsuccess):
(verifyIndexes):
(verifyUniqueConstraint.request.onsuccess.request.onsuccess.request.onerror):
(verifyUniqueConstraint.request.onsuccess.request.onsuccess):
(verifyUniqueConstraint.request.onsuccess):
(verifyUniqueConstraint):

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

8 years ago[chromium] Overlays when using the web inspector are blurry with device scale factor > 1
commit-queue@webkit.org [Thu, 21 Jun 2012 22:02:32 +0000 (22:02 +0000)]
[chromium] Overlays when using the web inspector are blurry with device scale factor > 1
https://bugs.webkit.org/show_bug.cgi?id=89676

Patch by Ian Vollick <vollick@chromium.org> on 2012-06-21
Reviewed by James Robinson.

Whenever we construct a GraphicsLayerChromium, make initialize the
device and page scale factors, if possible.

Source/WebCore:

Unit test: GraphicsLayerChromiumTest.shouldStartWithCorrectContentsScale

* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::GraphicsLayerChromium):

Source/WebKit/chromium:

* tests/GraphicsLayerChromiumTest.cpp:
(WebKitTests::TEST_F):
(WebKitTests):

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

8 years agoreenable perf tests on win
dpranke@chromium.org [Thu, 21 Jun 2012 21:48:20 +0000 (21:48 +0000)]
reenable perf tests on win
https://bugs.webkit.org/show_bug.cgi?id=89690

Reviewed by Ryosuke Niwa.

Only the replay tests don't work, and those are disabled by
default. This change also fixes the undefined _log reference
that was causing a crash.

* Scripts/run-perf-tests:

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

8 years ago[Qt] REGRESSION(r120790): broke video rendering
philn@webkit.org [Thu, 21 Jun 2012 21:23:56 +0000 (21:23 +0000)]
[Qt] REGRESSION(r120790): broke video rendering
https://bugs.webkit.org/show_bug.cgi?id=89619

Reviewed by Alexis Menard.

Invert the pixel components of the Image on little endian architectures.

* platform/graphics/gstreamer/ImageGStreamerQt.cpp:
(ImageGStreamer::ImageGStreamer):

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

8 years ago[WK2] Add C API to inspect a Web Intent
commit-queue@webkit.org [Thu, 21 Jun 2012 21:23:28 +0000 (21:23 +0000)]
[WK2] Add C API to inspect a Web Intent
https://bugs.webkit.org/show_bug.cgi?id=89275

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-06-21
Reviewed by Anders Carlsson.

Add C API for Web Intent so that it can be queried
on client side.

* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* UIProcess/API/C/WKIntentData.cpp: Copied from Source/WebKit2/UIProcess/WebIntentData.cpp.
(WKIntentDataGetTypeID):
(WKIntentDataCopyAction):
(WKIntentDataCopyType):
(WKIntentDataCopyService):
(WKIntentDataCopySuggestions):
(WKIntentDataCopyExtra):
(WKIntentDataCopyExtras):
* UIProcess/API/C/WKIntentData.h: Copied from Source/WebKit2/UIProcess/WebIntentData.cpp.
* UIProcess/WebIntentData.cpp:
(WebKit::WebIntentData::suggestions):
(WebKit):
(WebKit::WebIntentData::extra):
(WebKit::WebIntentData::extras):
* UIProcess/WebIntentData.h:
(WebIntentData):

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