fpizlo@apple.com [Fri, 3 Aug 2012 03:38:55 +0000 (03:38 +0000)]
Unreviewed, land some overrides for Chromium for the tests I just added, since
V8 attachs a slightly different (but equally valid) string for the exception we
expect to see.
* platform/chromium/fast/js/dfg-compare-final-object-to-final-object-or-other-when-both-proven-final-object-expected.txt: Added.
* platform/chromium/fast/js/dfg-compare-final-object-to-final-object-or-other-when-proven-final-object-expected.txt: Added.
* platform/chromium/fast/js/dfg-peephole-compare-final-object-to-final-object-or-other-when-both-proven-final-object-expected.txt: Added.
* platform/chromium/fast/js/dfg-peephole-compare-final-object-to-final-object-or-other-when-proven-final-object-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124557
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
tkent@chromium.org [Fri, 3 Aug 2012 03:31:22 +0000 (03:31 +0000)]
Fix crashes for <input> and <textarea> with display:run-in.
https://bugs.webkit.org/show_bug.cgi?id=87300
Reviewed by Abhishek Arya.
Source/WebCore:
Introduce RenderObject::canBeReplacedWithInlineRunIn, and renderers which
should not be run-in override it so that it returns false.
Test: fast/runin/input-text-runin.html
fast/runin/textarea-runin.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::moveRunInUnderSiblingBlockIfNeeded):
Checks canBeReplacedWithInlineRunIn instead of checking tag names.
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::canBeReplacedWithInlineRunIn):
Added. Disallow run-in.
* rendering/RenderFileUploadControl.h:
(RenderFileUploadControl): Declare canBeReplacedWithInlineRunIn.
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::canBeReplacedWithInlineRunIn):
Added. Disallow run-in. This is not a behavior change.
* rendering/RenderListBox.h:
(RenderListBox): Declare canBeReplacedWithInlineRunIn.
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::canBeReplacedWithInlineRunIn):
Added. Disallow run-in. This is not a behavior change.
* rendering/RenderMenuList.h:
(RenderMenuList): Declare canBeReplacedWithInlineRunIn.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::canBeReplacedWithInlineRunIn):
Added. Allow run-in by default.
* rendering/RenderObject.h:
(RenderObject): Declare canBeReplacedWithInlineRunIn.
* rendering/RenderProgress.cpp:
(WebCore::RenderProgress::canBeReplacedWithInlineRunIn):
Added. Disallow run-in. This is not a behavior change.
* rendering/RenderProgress.h:
(RenderProgress): Declare canBeReplacedWithInlineRunIn.
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::canBeReplacedWithInlineRunIn):
Added. Disallow run-in.
* rendering/RenderSlider.h:
(RenderSlider): Declare canBeReplacedWithInlineRunIn.
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::canBeReplacedWithInlineRunIn):
Added. Disallow run-in.
* rendering/RenderTextControl.h:
(RenderTextControl): Declare canBeReplacedWithInlineRunIn.
LayoutTests:
* fast/runin/input-text-runin-expected.txt: Added.
* fast/runin/input-text-runin.html: Added.
* fast/runin/textarea-runin-expected.txt: Added.
* fast/runin/textarea-text-runin.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124556
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Fri, 3 Aug 2012 03:27:08 +0000 (03:27 +0000)]
ASSERTION FAILED: at(m_compileIndex).canExit() || m_isCheckingArgumentTypes
https://bugs.webkit.org/show_bug.cgi?id=91074
Reviewed by Mark Hahnenberg.
Source/JavaScriptCore:
Fixes a bug where the speculative JIT was performing an unnecessary speculation that the
CFA had proven shouldn't be performed, leading to asserts that a node should not have
exit sites. This is a debug-only assert with no release symptom - we were just emitting
a check that was not reachable.
Also found, and fixed, a bug where structure check hoisting was slightly confusing the
CFA by inserting GetLocal's into the graph. CSE would clean the GetLocal's up, which
would make the backend happy - but the CFA would produce subtly wrong results.
* bytecode/SpeculatedType.h:
(JSC::isOtherOrEmptySpeculation):
(JSC):
* dfg/DFGDriver.cpp:
(JSC::DFG::compile):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dump):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
LayoutTests:
Added a test for this specific case (dfg-peephole-compare-final-object-to-final-object-or-other-when-both-proven-final-object)
as well as three other tests to cover similar, though not necessarily currently broken, cases, since it was previously the
case that we apparently had no explicit coverage for these code paths.
* fast/js/dfg-compare-final-object-to-final-object-or-other-when-both-proven-final-object-expected.txt: Added.
* fast/js/dfg-compare-final-object-to-final-object-or-other-when-both-proven-final-object.html: Added.
* fast/js/dfg-compare-final-object-to-final-object-or-other-when-proven-final-object-expected.txt: Added.
* fast/js/dfg-compare-final-object-to-final-object-or-other-when-proven-final-object.html: Added.
* fast/js/dfg-peephole-compare-final-object-to-final-object-or-other-when-both-proven-final-object-expected.txt: Added.
* fast/js/dfg-peephole-compare-final-object-to-final-object-or-other-when-both-proven-final-object.html: Added.
* fast/js/dfg-peephole-compare-final-object-to-final-object-or-other-when-proven-final-object-expected.txt: Added.
* fast/js/dfg-peephole-compare-final-object-to-final-object-or-other-when-proven-final-object.html: Added.
* fast/js/script-tests/dfg-compare-final-object-to-final-object-or-other-when-both-proven-final-object.js: Added.
(foo):
* fast/js/script-tests/dfg-compare-final-object-to-final-object-or-other-when-proven-final-object.js: Added.
(foo):
* fast/js/script-tests/dfg-peephole-compare-final-object-to-final-object-or-other-when-both-proven-final-object.js: Added.
(foo):
* fast/js/script-tests/dfg-peephole-compare-final-object-to-final-object-or-other-when-proven-final-object.js: Added.
(foo):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124555
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
yosin@chromium.org [Fri, 3 Aug 2012 03:23:04 +0000 (03:23 +0000)]
Unreviewed. Rebaseline fast/forms/basic-selects.html for Chromium-Mac and Chromium-Win.
r124416 changes rendering of non-disabled option element in disabled select.
* platform/chromium-mac-snowleopard/fast/forms/basic-selects-expected.png:
* platform/chromium-mac/fast/forms/basic-selects-expected.png:
* platform/chromium-mac/fast/forms/basic-selects-expected.txt: Added.
* platform/chromium-win/fast/forms/basic-selects-expected.png:
* platform/chromium-win/fast/forms/basic-selects-expected.txt:
* platform/chromium/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124554
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
piman@chromium.org [Fri, 3 Aug 2012 02:46:13 +0000 (02:46 +0000)]
[chromium] add lost context test case for HW video decoder
https://bugs.webkit.org/show_bug.cgi?id=93057
Reviewed by Adrienne Walker.
We check that we don't use resources after a lost context (assuming
proper WebVideoFrameProvider behavior).
* tests/CCLayerTreeHostImplTest.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124553
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 3 Aug 2012 02:40:14 +0000 (02:40 +0000)]
[EFL] Fix wrong assigned value of BatteryStatus
https://bugs.webkit.org/show_bug.cgi?id=93058
Patch by Kihong Kwon <kihong.kwon@samsung.com> on 2012-08-02
Reviewed by Kentaro Hara.
There is a wrong change in the bug 92964.
property variable have to be used after assigned value in the setBatteryClient.
* platform/efl/BatteryProviderEfl.cpp:
(WebCore::BatteryProviderEfl::setBatteryClient):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124552
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 3 Aug 2012 02:35:41 +0000 (02:35 +0000)]
Layout Test: fast/css/image-orientation/image-orientation needs to be added to skip list for Windows.
https://bugs.webkit.org/show_bug.cgi?id=93053
Patch by Roger Fong <roger_fong@apple.com> on 2012-08-02
Reviewed by Tim Horton.
The feature has not been completed yet.
It has been added to all other platforms' skip lists (see https://bugs.webkit.org/show_bug.cgi?id=89624), except for Windows.
* platform/win/Skipped:
Added fast/css/image-orientation/image-orientation to skip list.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124551
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 3 Aug 2012 02:26:44 +0000 (02:26 +0000)]
[BlackBerry] Add default implementation of GraphicsLayerClient::contentsVisible()
https://bugs.webkit.org/show_bug.cgi?id=93036
Patch by Arvid Nilsson <anilsson@rim.com> on 2012-08-02
Reviewed by George Staikos.
Source/WebCore:
Returning true by default would cause memory usage to balloon, because
the LayerTiler would believe every tile is visible and always needs to
be rendered. Instead, we choose to return false by default, relying
entirely on reactive rendering through render jobs.
However this revealed a subtle bug. If the entire layer was invalidated
every frame, checkerboard would never resolve with this default
implementation.
Fixed by not clearing render jobs when the entire layer is invalidated,
thus making us robust against an incomplete contentsVisible
implementation.
Also removed dead code related to the deprecated
LayerTiler::m_tilesWebKitThread mechanism, which has been replaced by
the implicit visibility management resulting from render jobs.
With m_tilesWebKitThread out of the way, rename m_tilesCompositingThread
to be simply m_tiles.
PR 187458
This is not currently testable using BlackBerry testing infrastructure.
* platform/graphics/GraphicsLayerClient.h:
(WebCore::GraphicsLayerClient::contentsVisible): Gets a default implementation instead of being pure virtual.
* platform/graphics/blackberry/LayerTile.cpp:
(WebCore::LayerTile::LayerTile): Merged LayerTileData into LayerTile now that m_tilesWebKitThread is gone.
* platform/graphics/blackberry/LayerTile.h:
(LayerTile):
* platform/graphics/blackberry/LayerTiler.cpp:
(WebCore::LayerTiler::~LayerTiler):
(WebCore::LayerTiler::updateTextureContentsIfNeeded): Bug fix to make us robust against the new default implementation of GraphicsLayerClient::contentsVisible()
(WebCore::LayerTiler::shouldPerformRenderJob):
(WebCore::LayerTiler::layerVisibilityChanged):
(WebCore::LayerTiler::uploadTexturesIfNeeded):
(WebCore::LayerTiler::drawTexturesInternal):
(WebCore::LayerTiler::deleteTextures):
(WebCore::LayerTiler::pruneTextures):
(WebCore::LayerTiler::bindContentsTexture):
* platform/graphics/blackberry/LayerTiler.h:
(LayerTiler):
Source/WebKit/blackberry:
Remove implementation of GraphicsLayerClient::contentsVisible() now
that it has a default implementation.
This also fixes a bug where memory usage for the inspector highlight
overlay would balloon because it returned true from contentsVisible()
which would cause the LayerTiler to populate all tiles. The default
implementation returns false instead.
PR 187458, 184377
* WebCoreSupport/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::showRepaintCounter):
* WebCoreSupport/InspectorOverlay.h:
(InspectorOverlay):
* WebKitSupport/DefaultTapHighlight.h:
* WebKitSupport/SelectionOverlay.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124550
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
keishi@webkit.org [Fri, 3 Aug 2012 02:05:51 +0000 (02:05 +0000)]
Slider should snap to datalist tick marks
https://bugs.webkit.org/show_bug.cgi?id=92640
Reviewed by Kent Tamura.
Source/WebCore:
Input type=range slider snaps to datalist tick marks.
Test: fast/forms/datalist/range-snap-to-datalist.html
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::findClosestTickMarkValue): Just calls InputType::findClosestTickMarkValue.
(WebCore):
* html/HTMLInputElement.h:
(HTMLInputElement):
* html/InputType.cpp:
(WebCore):
(WebCore::InputType::findClosestTickMarkValue): Overridden by RangeInputType.
* html/InputType.h:
(InputType):
* html/RangeInputType.cpp:
(WebCore::RangeInputType::RangeInputType):
(WebCore):
(WebCore::RangeInputType::listAttributeTargetChanged): Mark m_tickMarkValues as dirty.
(WebCore::decimalCompare):
(WebCore::RangeInputType::updateTickMarkValues): Sets m_tickMarkValues to a list of sorted valid datalist values.
(WebCore::RangeInputType::findClosestTickMarkValue): Finds closest tick mark value to a given value.
* html/RangeInputType.h:
(RangeInputType):
* html/shadow/SliderThumbElement.cpp:
(WebCore):
(WebCore::SliderThumbElement::setPositionFromPoint): Snaps to the closest tick mark value if it is within a certain distance.
LayoutTests:
* fast/forms/datalist/range-snap-to-datalist-expected.txt: Added.
* fast/forms/datalist/range-snap-to-datalist.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124549
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ryuan.choi@samsung.com [Fri, 3 Aug 2012 01:54:50 +0000 (01:54 +0000)]
[EFL] Crash while loading plugin after r121467
https://bugs.webkit.org/show_bug.cgi?id=92943
Reviewed by Laszlo Gombos.
r121467 replaced POSIX dlopen to helpers in eina_module, but some codes
are not changed.
No new tests, behavior has not changed.
* plugins/efl/PluginPackageEfl.cpp:
(WebCore::PluginPackage::fetchInfo):
Changes dlsym to eina_module_symbol_get to follow changes of r121467.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124548
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
abarth@webkit.org [Fri, 3 Aug 2012 01:51:35 +0000 (01:51 +0000)]
V8 bindings code that tries to find its context should use BindingState functions rather than V8Proxy
https://bugs.webkit.org/show_bug.cgi?id=93038
Reviewed by Eric Seidel.
After this patch, most code in the V8 bindings that tries to determine
it's "context" goes through BindingState.h rather than V8Proxy. This
patch is a step towards unifying all these code paths.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateNamedConstructorCallback):
* bindings/v8/BindingState.cpp:
(WebCore::currentFrame):
(WebCore):
* bindings/v8/BindingState.h:
(WebCore):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::retrieveFrameForEnteredContext):
(WebCore::ScriptController::retrieveFrameForCurrentContext):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::v8UncaughtExceptionHandler):
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::reportUnsafeAccessTo):
* bindings/v8/V8Proxy.h:
(V8Proxy):
* bindings/v8/V8Utilities.cpp:
(WebCore::getScriptExecutionContext):
* bindings/v8/custom/V8AudioContextCustom.cpp:
(WebCore::V8AudioContext::constructorCallback):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::handlePostMessageCallback):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::V8HTMLDocument::writeCallback):
(WebCore::V8HTMLDocument::writelnCallback):
(WebCore::V8HTMLDocument::openCallback):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::v8HTMLImageElementConstructorCallback):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124547
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
paroga@webkit.org [Fri, 3 Aug 2012 01:43:05 +0000 (01:43 +0000)]
[WINCE] Return 0 at calculateDSTOffset(double, double)
https://bugs.webkit.org/show_bug.cgi?id=92953
Reviewed by Ryosuke Niwa.
localtime() is implemented as a call to gmtime() in ce_time.c.
Since this will never return correct values, returning 0 instead
does not remove any existing functionality, but decreases the
dependency on the (external) ce_time implementation.
* wtf/DateMath.cpp:
(WTF::calculateDSTOffsetSimple):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124546
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dimich@chromium.org [Fri, 3 Aug 2012 01:32:28 +0000 (01:32 +0000)]
Unreviewed, rolling out r124540.
http://trac.webkit.org/changeset/124540
https://bugs.webkit.org/show_bug.cgi?id=93055
Broke compile on Chromium Win bot (Requested by dimich on
#webkit).
Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-08-02
Source/WebCore:
* Modules/indexeddb/IDBBackingStore.h:
(IDBBackingStore):
* Modules/indexeddb/IDBCallbacks.h:
(IDBCallbacks):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::PendingOpenCall::PendingOpenCall):
(WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
(WebCore::IDBDatabaseBackendImpl::openInternal):
(WebCore::IDBDatabaseBackendImpl::metadata):
(WebCore::IDBDatabaseBackendImpl::setVersion):
(WebCore::IDBDatabaseBackendImpl::transactionFinished):
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
(WebCore::IDBDatabaseBackendImpl::registerFrontendCallbacks):
(WebCore::IDBDatabaseBackendImpl::deleteDatabase):
(WebCore::IDBDatabaseBackendImpl::close):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseCallbacks.h:
(IDBDatabaseCallbacks):
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
(WebCore::IDBFactoryBackendImpl::open):
* Modules/indexeddb/IDBLevelDBBackingStore.cpp:
(WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
(WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
(WebCore::IDBLevelDBBackingStore::deleteDatabase):
* Modules/indexeddb/IDBLevelDBBackingStore.h:
(IDBLevelDBBackingStore):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::commit):
Source/WebKit/chromium:
* tests/IDBAbortOnCorruptTest.cpp:
(WebCore::FailingBackingStore::createIDBDatabaseMetaData):
* tests/IDBFakeBackingStore.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124545
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 3 Aug 2012 01:14:59 +0000 (01:14 +0000)]
[BlackBerry] Upstream GraphicsLayerClient::contentsVisible()
https://bugs.webkit.org/show_bug.cgi?id=93040
Patch by Arvid Nilsson <anilsson@rim.com> on 2012-08-02
Reviewed by George Staikos.
Our LayerTiler uses both proactive and reactive rendering to populate
tiles. If contentsVisible() is accurate, it will cause the right tiles
to be rendered. Failing that, when a dirty tile is found to be visible
on the compositing thread, a render job is scheduled.
This is not currently testable using BlackBerry testing infrastructure.
* platform/graphics/GraphicsLayerClient.h:
(GraphicsLayerClient): New BlackBerry-specific method "contentsVisible" added.
* rendering/RenderLayerBacking.cpp:
(WebCore):
(WebCore::RenderLayerBacking::contentsVisible): BlackBerry-specific implementation.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124544
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 3 Aug 2012 00:51:39 +0000 (00:51 +0000)]
[chromium] deviceViewportSize cleanup
https://bugs.webkit.org/show_bug.cgi?id=92794
Patch by Alexandre Elias <aelias@google.com> on 2012-08-02
Reviewed by Adrienne Walker.
In the future, CSS layout size will become increasingly disassociated
from physical device size, and it will become impossible to infer one
from the other inside the compositor. Therefore, this patch allows
deviceViewportSize to be explicitly passed in by the outside client.
I also renamed the existing viewportSize field to "layoutViewportSize"
for clarity, and converted its uses to deviceViewportSize since
that is more appropriate.
I had to add some default-value scaffolding to WebLayerTreeView in
order to avoid breaking ui/compositor. We can delete it once that's
updated.
Source/Platform:
* chromium/public/WebLayerTreeView.h:
(WebLayerTreeView):
Source/WebCore:
No new tests (covered by existing tests).
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::finishCommitOnImplThread):
(WebCore::CCLayerTreeHost::setViewportSize):
(WebCore::CCLayerTreeHost::updateLayers):
(WebCore::CCLayerTreeHost::setDeviceScaleFactor):
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
(CCLayerTreeHost):
(WebCore::CCLayerTreeHost::layoutViewportSize):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::canDraw):
(WebCore::CCLayerTreeHostImpl::startPageScaleAnimation):
(WebCore::CCLayerTreeHostImpl::setViewportSize):
(WebCore::CCLayerTreeHostImpl::setDeviceScaleFactor):
(WebCore::CCLayerTreeHostImpl::updateMaxScrollPosition):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
(CCLayerTreeHostImpl):
(WebCore::CCLayerTreeHostImpl::layoutViewportSize):
Source/WebKit/chromium:
* src/WebLayerTreeView.cpp:
(WebKit::WebLayerTreeView::setViewportSize):
(WebKit::WebLayerTreeView::layoutViewportSize):
(WebKit):
(WebKit::WebLayerTreeView::deviceViewportSize):
(WebKit::WebLayerTreeView::setDeviceScaleFactor):
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::paint):
(WebKit::WebViewImpl::updateLayerTreeViewport):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124543
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
abarth@webkit.org [Fri, 3 Aug 2012 00:45:28 +0000 (00:45 +0000)]
V8Proxy::currentContext() doesn't do anything and should be removed
https://bugs.webkit.org/show_bug.cgi?id=93041
Reviewed by Eric Seidel.
Source/WebCore:
It's just a wrapper for GetCurrent().
* bindings/v8/DateExtension.cpp:
(WebCore::DateExtension::setAllowSleep):
* bindings/v8/V8NPUtils.cpp:
(WebCore::convertV8ObjectToNPVariant):
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::retrieve):
(WebCore::V8Proxy::mainWorldContext):
* bindings/v8/V8Proxy.h:
(V8Proxy):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::getJSListenerFunctions):
Source/WebKit/chromium:
* src/WebBindings.cpp:
(WebKit::makeIntArrayImpl):
(WebKit::makeStringArrayImpl):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124542
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
lforschler@apple.com [Fri, 3 Aug 2012 00:40:57 +0000 (00:40 +0000)]
Versioning.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124541
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dgrogan@chromium.org [Fri, 3 Aug 2012 00:35:59 +0000 (00:35 +0000)]
IndexedDB: Core upgradeneeded logic
https://bugs.webkit.org/show_bug.cgi?id=92558
Reviewed by Ojan Vafai.
Source/WebCore:
This is the backend webkit logic needed for integer versions. The rest
is in https://bugs.webkit.org/show_bug.cgi?id=89505.
I tried to make use of the existing processPendingCalls and added two
more queues, pendingOpenWithVersionCalls and
pendingSecondHalfOpenWithVersionCalls. The "second half" refers to
how there are two events that need to be fired in response to an
open-with-version call. The "second half" queue holds the open
requests that should immediately follow the caller's upgradeneeded
handler.
No new tests, there are so many they are in their own patch:
https://bugs.webkit.org/show_bug.cgi?id=92560
Though this patch doesn't change any expected behavior anyway, lack of
regressions is what we're hoping for here.
* Modules/indexeddb/IDBBackingStore.h:
(IDBBackingStore):
* Modules/indexeddb/IDBCallbacks.h:
(WebCore::IDBCallbacks::onBlocked):
(WebCore::IDBCallbacks::onUpgradeNeeded):
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(IDBDatabaseBackendImpl::PendingOpenCall):
(IDBDatabaseBackendImpl::PendingOpenWithVersionCall):
(WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::create):
(WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::callbacks):
(WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::version):
(WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::PendingOpenWithVersionCall):
(WebCore):
(WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
(WebCore::IDBDatabaseBackendImpl::openInternal):
(WebCore::IDBDatabaseBackendImpl::metadata):
(WebCore::IDBDatabaseBackendImpl::setVersion):
(WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
(WebCore::IDBDatabaseBackendImpl::transactionFinished):
(WebCore::IDBDatabaseBackendImpl::transactionFinishedAndEventsFired):
When an upgradeneeded event is fired in response to an
open-with-version call, the version change transaction must receive its
complete event before processPendingCalls fires a success event at
IDBOpenDBRequest. In the future this should probably be changed
instead to transactionFinishedAndAbortFired and
transactionFinishedAndCompleteFired so that we'll know to fire a
success or error event at IDBOpenDBRequest. Currently, instead of
firing error when there's an abort, we don't fire anything.
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
Now that this is called after a connection is opened, we unfortunately
lose the invariant that there is only one existing connection when this
is called, but nothing inside this function actually relied on that.
Additionally, the secondHalfOpen calls only ever need to be serviced
in one place: right after a version change transaction completes, so
it could be moved out of here.
(WebCore::IDBDatabaseBackendImpl::registerFrontendCallbacks):
Now that setVersion and deleteDatabase calls are queued up behind
secondHalfOpen calls, we have to service those queues when
secondHalfOpen calls complete, which is here. So call
processPendingCalls().
(WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
(WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
(WebCore::IDBDatabaseBackendImpl::deleteDatabase):
(WebCore::IDBDatabaseBackendImpl::close):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
(IDBDatabaseBackendImpl):
* Modules/indexeddb/IDBDatabaseCallbacks.h:
(WebCore::IDBDatabaseCallbacks::onVersionChange):
* Modules/indexeddb/IDBFactoryBackendImpl.cpp:
(WebCore::IDBFactoryBackendImpl::open):
This is refactored some so that the call to openConection{WithVersion}
happens once, at the end.
* Modules/indexeddb/IDBLevelDBBackingStore.cpp:
(WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
(WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
(WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
(WebCore):
(WebCore::IDBLevelDBBackingStore::deleteDatabase):
* Modules/indexeddb/IDBLevelDBBackingStore.h:
(IDBLevelDBBackingStore):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::commit):
See above comments about transactionFinishedAndEventsFired. I tried
moving the call to transactionFinished after the events were fired but
that failed some asserts. But changing those asserts is still an
alternative to splitting up transactionFinished as is done here.
Source/WebKit/chromium:
Update overridden methods to match new signatures.
* tests/IDBAbortOnCorruptTest.cpp:
(WebCore::FailingBackingStore::createIDBDatabaseMetaData):
* tests/IDBFakeBackingStore.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124540
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rwlbuis@webkit.org [Fri, 3 Aug 2012 00:23:14 +0000 (00:23 +0000)]
SVG text selection doesn't work with hyperlinked text
https://bugs.webkit.org/show_bug.cgi?id=29166
Reviewed by Eric Seidel.
Cleanup SVGAElement. There is no need to test for middle mouse button here, this
is handled elsewhere, so remove isMiddleMouseButtonEvent. Similarly handleLinkClick
is not used anymore by HTMLAnchorElement, remove it. Finally, _self indeed is not needed.
No new tests, since no change in behaviour.
* WebCore.order:
* html/HTMLAnchorElement.cpp:
* html/HTMLAnchorElement.h:
(WebCore):
* svg/SVGAElement.cpp:
(WebCore::SVGAElement::defaultEventHandler):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124538
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kseo@webkit.org [Fri, 3 Aug 2012 00:16:33 +0000 (00:16 +0000)]
Move causesFosterParenting() to HTMLStackItem
https://bugs.webkit.org/show_bug.cgi?id=93048
Reviewed by Adam Barth.
Changed to share causesFosterParenting() between HTMLTreeBuilder and HTMLConstructionSite
by moving this function to HTMLStackItem.
No functional change, so no new tests.
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::shouldFosterParent):
* html/parser/HTMLStackItem.h:
(WebCore::HTMLStackItem::causesFosterParenting):
(HTMLStackItem):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124537
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kseo@webkit.org [Fri, 3 Aug 2012 00:15:18 +0000 (00:15 +0000)]
Read tag names and attributes from the saved tokens in HTMLTreeBuilder::callTheAdoptionAgency(AtomicHTMLToken*)
https://bugs.webkit.org/show_bug.cgi?id=93047
Reviewed by Adam Barth.
This is a follow-up patch for r123577.
Changed to retrieve the stack item of commonAncestor and read the local name from the saved token.
No new tests, covered by existing tests.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124536
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
scheib@chromium.org [Thu, 2 Aug 2012 23:58:09 +0000 (23:58 +0000)]
Remove old Pointer Lock API.
https://bugs.webkit.org/show_bug.cgi?id=88892
Reviewed by Adam Barth.
Source/WebCore:
Removing the old Pointer Lock API as one of the final cleanup
changes for the Update to Fullscreen style locking Spec meta
bug https://bugs.webkit.org/show_bug.cgi?id=84402.
This change primarily removes idl, access in navigator,
one event, and supporting infrastructure in page/PointerLock.
In PointerLockController changes were already noted clearly with
TODOs differentiating old and new api sections.
Test: pointer-lock/pointerlockchange-event-on-lock-lost.html
* WebCore.gypi:
* dom/Element.cpp:
(WebCore::Element::webkitRequestPointerLock):
* dom/EventNames.h:
(WebCore):
* page/Navigator.cpp:
* page/Navigator.h:
(WebCore):
(Navigator):
* page/Navigator.idl:
* page/PointerLock.cpp: Removed.
* page/PointerLock.h: Removed.
* page/PointerLock.idl: Removed.
* page/PointerLockController.cpp:
(WebCore::PointerLockController::requestPointerLock):
(WebCore::PointerLockController::didAcquirePointerLock):
(WebCore::PointerLockController::didNotAcquirePointerLock):
(WebCore::PointerLockController::didLosePointerLock):
* page/PointerLockController.h:
(PointerLockController):
Source/WebKit/chromium:
* src/WebViewImpl.cpp:
Removed #include to old API header.
LayoutTests:
Tests for old API removed, and most remaining tests required only small
changes.
* platform/chromium/fast/dom/navigator-detached-no-crash-expected.txt:
* pointer-lock/lock-already-locked-expected.txt:
* pointer-lock/lock-already-locked.html:
* pointer-lock/lock-fail-responses-expected.txt: Removed.
* pointer-lock/lock-fail-responses.html: Removed.
This test only covered the old API. The related concept is tested
for the new api in pointerlockchange-pointerlockerror-events.html.
* pointer-lock/pointer-lock-api-expected.txt:
* pointer-lock/pointer-lock-api.html:
* pointer-lock/pointerlockchange-event-on-lock-lost-expected.txt: Added.
* pointer-lock/pointerlockchange-event-on-lock-lost.html: Added.
* pointer-lock/pointerlocklost-event-expected.txt: Removed.
* pointer-lock/pointerlocklost-event.html: Removed.
pointerlocklost-event.html renamed to pointerlockchange-event-on-lock-lost.html.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124535
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dpranke@chromium.org [Thu, 2 Aug 2012 23:09:11 +0000 (23:09 +0000)]
test-webkitpy can fail on a clean checkout
https://bugs.webkit.org/show_bug.cgi?id=93039
Reviewed by Adam Barth.
Now that we run tests in parallel that can cause the installer
to try and install packages in parallel (even the same package),
and that probably won't work. We fix this by autoinstalling
everything up front (serially).
* Scripts/webkitpy/test/main.py:
(Tester._run_tests):
* Scripts/webkitpy/thirdparty/__init__.py:
(autoinstall_everything):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124523
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rniwa@webkit.org [Thu, 2 Aug 2012 23:02:30 +0000 (23:02 +0000)]
scripts in formaction should be stripped upon paste
https://bugs.webkit.org/show_bug.cgi?id=92298
Reviewed by Eric Seidel.
Source/WebCore:
Strip formaction attribute values when the URL is of javascript protocol.
Test: editing/pasteboard/paste-noscript-xhtml.html
editing/pasteboard/paste-noscript.html
* dom/Element.cpp:
(WebCore::isAttributeToRemove): Explicitly compare with href and nohref instead of comparing
the ends of strings since comparing two AtomicString is much faster.
LayoutTests:
Added formaction attributes to tests.
* editing/pasteboard/paste-noscript-expected.txt:
* editing/pasteboard/paste-noscript-xhtml-expected.txt:
* editing/pasteboard/paste-noscript.html:
* editing/pasteboard/resources/paste-noscript-content.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124520
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 22:50:52 +0000 (22:50 +0000)]
Built in quotes don't use lang attribute
https://bugs.webkit.org/show_bug.cgi?id=92918
Patch by Elliott Sprehn <esprehn@gmail.com> on 2012-08-02
Reviewed by Alexey Proskuryakov.
Source/WebCore:
Previously even though there was a table in RenderQuote of languages mapped
to quotes we always used basic quotes. This patch removes the broken tree
walking and uses Element::computeInheritedLanguage fixing this.
Tests: fast/css-generated-content/quotes-lang-expected.html
fast/css-generated-content/quotes-lang.html
fast/css-generated-content/quotes-xml-lang-expected.html
fast/css-generated-content/quotes-xml-lang.html
* rendering/RenderQuote.cpp:
(WebCore::RenderQuote::originalText):
(WebCore::RenderQuote::quotesData): New method that determines the right QuotesData to use.
(WebCore):
* rendering/RenderQuote.h:
(RenderQuote):
LayoutTests:
Add a test that the built in quote languages are used and that custom
languages work as well. This also tests that xml:lang takes precedence
over lang.
* fast/css-generated-content/quotes-lang-expected.html: Added.
* fast/css-generated-content/quotes-lang.html: Added.
* fast/css-generated-content/quotes-xml-lang-expected.html: Added.
* fast/css-generated-content/quotes-xml-lang.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124518
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
abarth@webkit.org [Thu, 2 Aug 2012 22:48:27 +0000 (22:48 +0000)]
Add back a header I mistakenly removed in my previous commit.
* WebCore.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124517
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
enne@google.com [Thu, 2 Aug 2012 22:47:38 +0000 (22:47 +0000)]
[chromium] Remove dependency on Scrollbar.h from ScrollbarLayerChromium
https://bugs.webkit.org/show_bug.cgi?id=93024
Reviewed by James Robinson.
Change part enum from the Scrollbar version to WebScrollbar's.
Tested by composited layout tests.
* platform/graphics/chromium/ScrollbarLayerChromium.cpp:
(WebCore::ScrollbarBackgroundPainter::create):
(WebCore::ScrollbarBackgroundPainter::ScrollbarBackgroundPainter):
(ScrollbarBackgroundPainter):
(WebCore::ScrollbarLayerChromium::createTextureUpdaterIfNeeded):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124516
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
abarth@webkit.org [Thu, 2 Aug 2012 22:46:01 +0000 (22:46 +0000)]
BindingSecurityBase serves no purpose and should be removed
https://bugs.webkit.org/show_bug.cgi?id=93025
Reviewed by Eric Seidel.
Now that we don't use templates in the generic bindings, we can merge
BindingSecurity and BindingSecurityBase. This patch also removes some
functions that are no longer used (and reduces the number of
#includes).
No behavior change.
* GNUmakefile.list.am:
* WebCore.gypi:
* bindings/generic/BindingSecurity.h:
(WebCore):
(BindingSecurity):
* bindings/generic/BindingSecurityBase.cpp: Removed.
* bindings/generic/BindingSecurityBase.h: Removed.
* bindings/v8/V8Binding.h:
* bindings/v8/V8Utilities.cpp:
* bindings/v8/custom/V8MutationObserverCustom.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124515
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rniwa@webkit.org [Thu, 2 Aug 2012 22:41:18 +0000 (22:41 +0000)]
Let XCode have its own away and also sort the files.
* WebCore.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124514
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 22:39:01 +0000 (22:39 +0000)]
[chromium] Add CCScrollbarAnimationController class for compositor scrollbar animation
https://bugs.webkit.org/show_bug.cgi?id=91688
Patch by Tien-Ren Chen <trchen@chromium.org> on 2012-08-02
Reviewed by Adrienne Walker.
Source/WebCore:
Add CCScrollbarAnimationController that serves as the middle man
between the scrolling layer and scrollbar layer. Now all scroll offset
information are pushed through the controller, and individual platform
can provide specialized controller for extra processing.
A basic fadeout controller for Android scrollbar is included.
New test: ScrollbarLayerChromiumTest.scrollOffsetSynchronization
CCScrollbarAnimationControllerLinearFade.*
* WebCore.gypi:
* page/FrameView.cpp:
(WebCore::FrameView::calculateScrollbarModesForLayout):
* page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
(WebCore::createScrollbarLayer):
* platform/graphics/chromium/TreeSynchronizer.cpp:
(WebCore::TreeSynchronizer::synchronizeTreeRecursive):
(WebCore::TreeSynchronizer::updateScrollbarLayerPointersRecursive):
* platform/graphics/chromium/cc/CCLayerImpl.cpp:
(WebCore::CCLayerImpl::scrollBy):
(WebCore::CCLayerImpl::setMaxScrollPosition):
(WebCore):
(WebCore::CCLayerImpl::horizontalScrollbarLayer):
(WebCore::CCLayerImpl::setHorizontalScrollbarLayer):
(WebCore::CCLayerImpl::verticalScrollbarLayer):
(WebCore::CCLayerImpl::setVerticalScrollbarLayer):
* platform/graphics/chromium/cc/CCLayerImpl.h:
(WebCore):
(CCLayerImpl):
(WebCore::CCLayerImpl::scrollbarAnimationController):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::animate):
(WebCore::CCLayerTreeHostImpl::pinchGestureBegin):
(WebCore::CCLayerTreeHostImpl::pinchGestureUpdate):
(WebCore::CCLayerTreeHostImpl::pinchGestureEnd):
(WebCore::CCLayerTreeHostImpl::animateScrollbars):
(WebCore):
(WebCore::CCLayerTreeHostImpl::animateScrollbarsRecursive):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
(CCLayerTreeHostImpl):
* platform/graphics/chromium/cc/CCScrollbarAnimationController.cpp: Added.
(WebCore):
(WebCore::CCScrollbarAnimationController::create):
(WebCore::CCScrollbarAnimationController::CCScrollbarAnimationController):
(WebCore::CCScrollbarAnimationController::~CCScrollbarAnimationController):
(WebCore::CCScrollbarAnimationController::getScrollLayerBounds):
(WebCore::CCScrollbarAnimationController::updateScrollOffset):
* platform/graphics/chromium/cc/CCScrollbarAnimationController.h: Added.
(WebCore):
(CCScrollbarAnimationController):
(WebCore::CCScrollbarAnimationController::animate):
(WebCore::CCScrollbarAnimationController::didPinchGestureBegin):
(WebCore::CCScrollbarAnimationController::didPinchGestureUpdate):
(WebCore::CCScrollbarAnimationController::didPinchGestureEnd):
(WebCore::CCScrollbarAnimationController::setHorizontalScrollbarLayer):
(WebCore::CCScrollbarAnimationController::horizontalScrollbarLayer):
(WebCore::CCScrollbarAnimationController::setVerticalScrollbarLayer):
(WebCore::CCScrollbarAnimationController::verticalScrollbarLayer):
* platform/graphics/chromium/cc/CCScrollbarAnimationControllerAndroid.cpp: Added.
(WebCore):
(WebCore::CCScrollbarAnimationController::create):
(WebCore::CCScrollbarAnimationControllerAndroid::CCScrollbarAnimationControllerAndroid):
(WebCore::CCScrollbarAnimationControllerAndroid::~CCScrollbarAnimationControllerAndroid):
(WebCore::CCScrollbarAnimationControllerAndroid::animate):
(WebCore::CCScrollbarAnimationControllerAndroid::didPinchGestureUpdate):
(WebCore::CCScrollbarAnimationControllerAndroid::didPinchGestureEnd):
(WebCore::CCScrollbarAnimationControllerAndroid::updateScrollOffset):
(WebCore::CCScrollbarAnimationControllerAndroid::opacityAtTime):
* platform/graphics/chromium/cc/CCScrollbarAnimationControllerAndroid.h: Added.
(WebCore):
(CCScrollbarAnimationControllerAndroid):
* platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
(WebCore::CCScrollbarLayerImpl::CCScrollbarLayerImpl):
(WebCore):
(WebCore::CCScrollbarLayerImpl::CCScrollbar::value):
(WebCore::CCScrollbarLayerImpl::CCScrollbar::currentPos):
(WebCore::CCScrollbarLayerImpl::CCScrollbar::totalSize):
(WebCore::CCScrollbarLayerImpl::CCScrollbar::maximum):
* platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
(WebCore::CCScrollbarLayerImpl::orientation):
(WebCore::CCScrollbarLayerImpl::setCurrentPos):
(WebCore::CCScrollbarLayerImpl::setTotalSize):
(WebCore::CCScrollbarLayerImpl::setMaximum):
(CCScrollbarLayerImpl):
Source/WebKit/chromium:
New unit test ScrollbarLayerChromiumTest.scrollOffsetSynchronization to verify
scroll offset is updated during tree synchronization and threaded scrolling.
Another new unit test CCScrollbarAnimationControllerLinearFadeTest to verify
opacity animates as intended.
* tests/ScrollbarLayerChromiumTest.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124513
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dbarton@mathscribe.com [Thu, 2 Aug 2012 22:34:52 +0000 (22:34 +0000)]
MathML: nested square root symbols have varying descenders
https://bugs.webkit.org/show_bug.cgi?id=43819
Reviewed by Eric Seidel.
Source/WebCore:
This bug stems from the use of offsetHeight() on a renderer that's possibly a
RenderInline, in getBoxModelObjectHeight() in RenderMathMLBlock.h.
RenderInline::offsetHeight() actually returns linesBoundingBox().height(), which can be
overly large, especially for the big STIX fonts that include a few mathematical symbols
with unusually tall ascenders or descenders. A better solution for MathML in general is
the CSS properties { -webkit-line-box-contain: glyphs replaced; line-height: 0; }. This
gives tight glyph-based formatting in radical expressions, subscripts, superscripts,
underscripts, overscripts, numerators, denominators, etc. To make this work, inline
elements such as <mn> and <mi> must be wrapped inside implicit <mrow>s or just
RenderMathMLBlocks, when a tight height is desired. We also replace
getBoxModelObjectWidth(), which uses offsetWidth(), with contentLogicalWidth(). Finally,
we enable the STIXGeneral font for use inside layout tests.
Tested by existing LayoutTests/mathml/presentation/ files including roots.xhtml.
* css/mathml.css:
(math):
(mtext):
(mroot > * + *):
(mtd):
* rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::preferredLogicalHeightAfterSizing):
(WebCore::RenderMathMLBlock::baselinePosition):
* rendering/mathml/RenderMathMLBlock.h:
* rendering/mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::baselinePosition):
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::createStackableStyle):
(WebCore::RenderMathMLOperator::baselinePosition):
* rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::addChild):
(WebCore::RenderMathMLRoot::computePreferredLogicalWidths):
(WebCore::RenderMathMLRoot::paint):
* rendering/mathml/RenderMathMLRoot.h:
* rendering/mathml/RenderMathMLSquareRoot.cpp:
* rendering/mathml/RenderMathMLSquareRoot.h:
* rendering/mathml/RenderMathMLSubSup.cpp:
(WebCore::RenderMathMLSubSup::layout):
* rendering/mathml/RenderMathMLUnderOver.cpp:
(WebCore::RenderMathMLUnderOver::baselinePosition):
* rendering/mathml/RenderMathMLUnderOver.h:
Tools:
Allow the STIXGeneral font to be used during layout tests, especially for MathML.
* DumpRenderTree/mac/DumpRenderTree.mm:
(allowedFontFamilySet):
* WebKitTestRunner/InjectedBundle/mac/ActivateFonts.mm:
(WTR::allowedFontFamilySet):
LayoutTests:
These tests are rebaselined to use the STIXGeneral font, and tight glyph-based MathML
layout using the CSS properties
{ -webkit-line-box-contain: glyphs replaced; line-height: 0; }.
* mathml/presentation/style.xhtml:
* platform/mac/mathml/presentation/attributes-expected.png:
* platform/mac/mathml/presentation/attributes-expected.txt:
* platform/mac/mathml/presentation/fenced-expected.png:
* platform/mac/mathml/presentation/fenced-expected.txt:
* platform/mac/mathml/presentation/fenced-mi-expected.png:
* platform/mac/mathml/presentation/fenced-mi-expected.txt:
* platform/mac/mathml/presentation/fractions-expected.png:
* platform/mac/mathml/presentation/fractions-expected.txt:
* platform/mac/mathml/presentation/fractions-vertical-alignment-expected.png:
* platform/mac/mathml/presentation/fractions-vertical-alignment-expected.txt:
* platform/mac/mathml/presentation/mo-expected.png:
* platform/mac/mathml/presentation/mo-expected.txt:
* platform/mac/mathml/presentation/mo-stretch-expected.png:
* platform/mac/mathml/presentation/mo-stretch-expected.txt:
* platform/mac/mathml/presentation/mroot-pref-width-expected.png:
* platform/mac/mathml/presentation/mroot-pref-width-expected.txt:
* platform/mac/mathml/presentation/over-expected.png:
* platform/mac/mathml/presentation/over-expected.txt:
* platform/mac/mathml/presentation/roots-expected.png:
* platform/mac/mathml/presentation/roots-expected.txt:
* platform/mac/mathml/presentation/row-alignment-expected.png:
* platform/mac/mathml/presentation/row-alignment-expected.txt:
* platform/mac/mathml/presentation/row-expected.png:
* platform/mac/mathml/presentation/row-expected.txt:
* platform/mac/mathml/presentation/style-expected.png:
* platform/mac/mathml/presentation/style-expected.txt:
* platform/mac/mathml/presentation/sub-expected.png:
* platform/mac/mathml/presentation/sub-expected.txt:
* platform/mac/mathml/presentation/subsup-expected.png:
* platform/mac/mathml/presentation/subsup-expected.txt:
* platform/mac/mathml/presentation/sup-expected.png:
* platform/mac/mathml/presentation/sup-expected.txt:
* platform/mac/mathml/presentation/tables-expected.png:
* platform/mac/mathml/presentation/tables-expected.txt:
* platform/mac/mathml/presentation/tokenElements-expected.png:
* platform/mac/mathml/presentation/tokenElements-expected.txt:
* platform/mac/mathml/presentation/under-expected.png:
* platform/mac/mathml/presentation/under-expected.txt:
* platform/mac/mathml/presentation/underover-expected.png:
* platform/mac/mathml/presentation/underover-expected.txt:
* platform/mac/mathml/xHeight-expected.png:
* platform/mac/mathml/xHeight-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124512
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
enne@google.com [Thu, 2 Aug 2012 22:29:38 +0000 (22:29 +0000)]
[chromium] Make CCScrollbarLayerImpl handle lost contexts properly
https://bugs.webkit.org/show_bug.cgi?id=93021
Reviewed by James Robinson.
Source/WebCore:
The resource ids that CCScrollbarLayerImpl holds onto need to be
discarded during a lost context as the resource provider they came
from is also destroyed.
Make a scrollbarGeometry function that wraps all uses of the
m_geometry member to make it possible to test CCScrollbarLayerImpl
without depending on WebCore.
Test: CCLayerTreeHostImplTest.dontUseOldResourcesAfterLostContext
* platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
(WebCore::CCScrollbarLayerImpl::scrollbarGeometry):
(WebCore):
(WebCore::CCScrollbarLayerImpl::appendQuads):
(WebCore::CCScrollbarLayerImpl::didLoseContext):
* platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
(CCScrollbarLayerImpl):
Source/WebKit/chromium:
Add CCScrollbarLayerImpl to the dontUseOldResourceAfterLostContext
test. Additionally, modify this test so that stale resource ids
properly point at invalid texture ids so that the test actually tests
what it is supposed to be testing.
* tests/CCLayerTreeHostImplTest.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124511
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
oliver@apple.com [Thu, 2 Aug 2012 22:24:08 +0000 (22:24 +0000)]
A few objects aren't being safely protected from GC in all cases
https://bugs.webkit.org/show_bug.cgi?id=93031
Reviewed by Filip Pizlo.
I haven't seen evidence that anyone is hitting bugs due to this, but any
GC error can lead to later -- hard to diagnose -- bugs if they result in
resurrecting dead objects.
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::create):
(WebCore::JSCustomXPathNSResolver::JSCustomXPathNSResolver):
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
* bindings/js/JSCustomXPathNSResolver.h:
(JSCustomXPathNSResolver):
* bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::tryGetProperty):
* bindings/js/JSDictionary.h:
(WebCore::JSDictionary::JSDictionary):
(WebCore::JSDictionary::initializerObject):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124510
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eae@chromium.org [Thu, 2 Aug 2012 21:59:47 +0000 (21:59 +0000)]
Range::isPointInRange incorrectly throws WRONG_DOCUMENT_ERR
https://bugs.webkit.org/show_bug.cgi?id=93009
Reviewed by Ojan Vafai.
Source/WebCore:
The latest working draft of the DOM4 spec has all but killed the
WRONG_DOCUMENT_ERR exception. Update isPointInRange to return false
instead of throwing an exception when the range and point are in
different documents. This matches the Mozilla behavior.
Test: fast/html/range-point-in-range-for-different-documents.html
* dom/Range.cpp:
(WebCore::Range::isPointInRange):
Return false instead of throwing WRONG_DOCUMENT_ERR when the point is in
a different document.
LayoutTests:
Add test for Range::isPointInRange where the point is in a different
document than the range.
* fast/dom/move-nodes-across-documents.html: Change expectations for isPointInRange
* fast/html/range-point-in-range-for-different-documents-expected.txt: Added.
* fast/html/range-point-in-range-for-different-documents.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124506
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dpranke@chromium.org [Thu, 2 Aug 2012 21:38:16 +0000 (21:38 +0000)]
test-webkitpy: some tests need to run by themselves
https://bugs.webkit.org/show_bug.cgi?id=92926
Reviewed by Ojan Vafai.
Due to timing issues some of the executive tests will collide
and fail if they're run concurrently. This patch adds support
for writing tests that will be executed one at a time
(serially); to get them, add "serial_" to the front of the test
method name.
* Scripts/webkitpy/common/system/executive_unittest.py:
(ExecutiveTest.serial_test_kill_process):
(ExecutiveTest.serial_test_kill_all):
(ExecutiveTest.serial_test_check_running_pid):
(ExecutiveTest.serial_test_running_pids):
(ExecutiveTest.serial_test_run_in_parallel):
* Scripts/webkitpy/test/main.py:
(Tester._run_tests):
(Tester._test_names):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124504
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dpranke@chromium.org [Thu, 2 Aug 2012 21:36:45 +0000 (21:36 +0000)]
test-webkitpy: integrate proper support for integration tests
https://bugs.webkit.org/show_bug.cgi?id=92925
Reviewed by Ojan Vafai.
This patch merges the custom loader I used for integration tests
into the main test-webkitpy code. Integration tests are not run
by default yet, but at least they can be run.
* Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py:
(MockTestShellTest.test_test_shell_parse_options):
* Scripts/webkitpy/layout_tests/port/port_testcase.py:
(test_path_to_apache_config_file):
* Scripts/webkitpy/layout_tests/servers/http_server_integrationtest.py:
(WebsocketserverTest):
* Scripts/webkitpy/test/main.py:
(Tester._parse_args):
(Tester._run_tests):
(Tester._test_names):
(Tester._log_exception):
(_Loader):
(_Loader.getTestCaseNames):
(_Loader.getTestCaseNames.isTestMethod):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124503
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dpranke@chromium.org [Thu, 2 Aug 2012 21:35:34 +0000 (21:35 +0000)]
test-webkitpy: clean up runner in preparation for running tests serially as necessary
https://bugs.webkit.org/show_bug.cgi?id=92922
Reviewed by Ojan Vafai.
In order to run some tests by themselves (serially, rather than
in parallel with other tests), we will need to be able to run
multiple test suites; this causes us to move loading the logic
for finding test method names out of the runner and into main.
I'm taking advantage of this to simplify some other stuff from
the runner as well; it is now very simple and doesn't expose its
dependency on unittest.TestResult at all (nor will the Printer
use TestResult).
Subsequent patches will move the custom loader from
port_testcase so that we can properly choose whether to run
integration tests and/or serial tests, and then update the
appropriate tests to run only serially.
* Scripts/webkitpy/test/main.py:
(Tester._run_tests):
(Tester):
(Tester._check_imports):
(Tester._test_names):
(Tester._all_test_names):
* Scripts/webkitpy/test/printer.py:
(Printer.__init__):
(Printer.write_update):
(Printer):
(Printer.print_finished_test):
(Printer.print_result):
* Scripts/webkitpy/test/runner.py:
(unit_test_name):
(Runner.__init__):
(Runner.run):
(Runner.handle):
(_Worker.handle):
* Scripts/webkitpy/test/runner_unittest.py:
(FakeLoader.loadTestsFromName):
(RunnerTest.test_run):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124501
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
arv@chromium.org [Thu, 2 Aug 2012 21:28:12 +0000 (21:28 +0000)]
DOM4: className should be defined on Element and not on HTMLElement
https://bugs.webkit.org/show_bug.cgi?id=93014
Reviewed by Adam Barth.
DOM4 specs that Element should have the className WebIDL attribute. This moves the
attribute to the correct IDL file.
Source/WebCore:
Test: fast/dom/Element/class-name.html
* dom/Element.idl:
* html/HTMLElement.idl:
LayoutTests:
* fast/dom/Element/class-name-expected.txt: Added.
* fast/dom/Element/class-name.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124499
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
arv@chromium.org [Thu, 2 Aug 2012 21:25:37 +0000 (21:25 +0000)]
[V8] Handle case where Error.prototype returns an empty object
https://bugs.webkit.org/show_bug.cgi?id=91792
Reviewed by Kentaro Hara.
In some edge cases we get an empty object back from Error.prototype.
No new tests. I cannot reproduce this.
* bindings/v8/V8BindingPerContextData.cpp:
(WebCore::V8BindingPerContextData::constructorForTypeSlowCase):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124498
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Thu, 2 Aug 2012 21:10:43 +0000 (21:10 +0000)]
Unreviewed, build fix for DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE).
* dfg/DFGStructureCheckHoistingPhase.cpp:
(JSC::DFG::StructureCheckHoistingPhase::run):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124497
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 2 Aug 2012 21:06:06 +0000 (21:06 +0000)]
Add back ASSERT(!needsLayout) to RenderTableSection which is now valid
https://bugs.webkit.org/show_bug.cgi?id=92954
Unreviewed, follow-up per Mitz's request.
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::paint):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124496
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jamesr@google.com [Thu, 2 Aug 2012 21:00:39 +0000 (21:00 +0000)]
[chromium] Remove unused includes from compositor code
https://bugs.webkit.org/show_bug.cgi?id=92930
Reviewed by Adrienne Walker.
* platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
* platform/graphics/chromium/ScrollbarLayerChromium.cpp:
* platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124495
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
abarth@webkit.org [Thu, 2 Aug 2012 20:50:45 +0000 (20:50 +0000)]
Turn on tests for the mac-ews, for realz this time.
* Scripts/webkitpy/tool/commands/earlywarningsystem.py:
(MacEWS):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124493
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
abarth@webkit.org [Thu, 2 Aug 2012 20:49:19 +0000 (20:49 +0000)]
The generic bindings shouldn't use templates
https://bugs.webkit.org/show_bug.cgi?id=93016
Reviewed by Eric Seidel.
Source/WebCore:
We originally created the generic bindings to share code between the
JavaScriptCore and V8 bindings. However, the code came out sort of ugly
because we used templates (with the idea that templates would let us
use more than one scripting engine).
This patch rips out the templates in an attempt to make the code
prettier and therefore easier to use in both V8 and JSC. I've tried to
keep this patch small by remaning things mostly in place. In the next
patch, I'll move a bunch of code out of headers and into cpp files.
No behavior change.
* GNUmakefile.am:
* UseV8.cmake:
* WebCore.gyp/WebCore.gyp:
* WebCore.gypi:
* WebCore.pri:
* bindings/generic/BindingSecurity.h:
(WebCore):
(BindingSecurity):
(WebCore::BindingSecurity::canAccessWindow):
(WebCore::BindingSecurity::canAccessFrame):
(WebCore::BindingSecurity::shouldAllowAccessToNode):
(WebCore::BindingSecurity::allowPopUp):
(WebCore::BindingSecurity::allowSettingFrameSrcToJavascriptUrl):
(WebCore::BindingSecurity::allowSettingSrcToJavascriptURL):
* bindings/generic/GenericBinding.h:
(WebCore::completeURL):
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateDomainSafeFunctionGetter):
(GenerateNormalAttrGetter):
(GenerateReplaceableAttrSetter):
(GenerateFunctionCallback):
(GenerateImplementation):
* bindings/scripts/test/V8/V8Float64Array.cpp:
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
(WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
* bindings/scripts/test/V8/V8TestException.cpp:
* bindings/scripts/test/V8/V8TestInterface.cpp:
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
* bindings/scripts/test/V8/V8TestNode.cpp:
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::contentDocumentAttrGetter):
(WebCore::TestObjV8Internal::getSVGDocumentCallback):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
* bindings/v8/BindingState.cpp: Renamed from Source/WebCore/bindings/v8/specialization/V8BindingState.cpp.
(WebCore):
(WebCore::BindingState::instance):
(WebCore::activeWindow):
(WebCore::firstWindow):
(WebCore::activeFrame):
(WebCore::firstFrame):
(WebCore::immediatelyReportUnsafeAccessTo):
* bindings/v8/BindingState.h: Renamed from Source/WebCore/bindings/v8/specialization/V8BindingState.h.
(WebCore):
(BindingState):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::canAccessFromCurrentOrigin):
* bindings/v8/V8Binding.h:
(WebCore):
* bindings/v8/V8DOMWindowShell.cpp:
* bindings/v8/V8Proxy.cpp:
* bindings/v8/V8Utilities.cpp:
(WebCore::callingOrEnteredFrame):
(WebCore::completeURL):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::WindowSetTimeoutImpl):
(WebCore::V8DOMWindow::eventAccessorGetter):
(WebCore::V8DOMWindow::eventAccessorSetter):
(WebCore::V8DOMWindow::locationAccessorSetter):
(WebCore::V8DOMWindow::openerAccessorSetter):
(WebCore::V8DOMWindow::addEventListenerCallback):
(WebCore::V8DOMWindow::removeEventListenerCallback):
(WebCore::V8DOMWindow::showModalDialogCallback):
(WebCore::V8DOMWindow::openCallback):
(WebCore::V8DOMWindow::namedSecurityCheck):
(WebCore::V8DOMWindow::indexedSecurityCheck):
* bindings/v8/custom/V8DocumentLocationCustom.cpp:
(WebCore::V8Document::locationAccessorSetter):
* bindings/v8/custom/V8EntryCustom.cpp:
* bindings/v8/custom/V8EntrySyncCustom.cpp:
* bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
(WebCore::V8HTMLFrameElement::locationAccessorSetter):
* bindings/v8/custom/V8HistoryCustom.cpp:
(WebCore::V8History::indexedSecurityCheck):
(WebCore::V8History::namedSecurityCheck):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
* bindings/v8/custom/V8InjectedScriptManager.cpp:
(WebCore::InjectedScriptManager::canAccessInspectedWindow):
* bindings/v8/custom/V8LocationCustom.cpp:
(WebCore::V8Location::hashAccessorSetter):
(WebCore::V8Location::hostAccessorSetter):
(WebCore::V8Location::hostnameAccessorSetter):
(WebCore::V8Location::hrefAccessorSetter):
(WebCore::V8Location::pathnameAccessorSetter):
(WebCore::V8Location::portAccessorSetter):
(WebCore::V8Location::protocolAccessorSetter):
(WebCore::V8Location::searchAccessorSetter):
(WebCore::V8Location::reloadAccessorGetter):
(WebCore::V8Location::replaceAccessorGetter):
(WebCore::V8Location::assignAccessorGetter):
(WebCore::V8Location::reloadCallback):
(WebCore::V8Location::replaceCallback):
(WebCore::V8Location::assignCallback):
(WebCore::V8Location::toStringCallback):
(WebCore::V8Location::indexedSecurityCheck):
(WebCore::V8Location::namedSecurityCheck):
* bindings/v8/custom/V8NamedNodeMapCustom.cpp:
* bindings/v8/custom/V8NodeCustom.cpp:
Source/WebKit/chromium:
Update #include.
* src/WebBindings.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124492
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
inferno@chromium.org [Thu, 2 Aug 2012 20:44:31 +0000 (20:44 +0000)]
No isChildAllowed checked when adding RenderFullScreen as the child..
https://bugs.webkit.org/show_bug.cgi?id=92995
Reviewed by Eric Seidel.
Source/WebCore:
Test: fullscreen/fullscreen-child-not-allowed-crash.html
* dom/Document.cpp:
(WebCore::Document::webkitWillEnterFullScreenForElement): pass the object's parent
pointer as an additional argument.
* dom/NodeRenderingContext.cpp:
(WebCore::NodeRendererFactory::createRendererIfNeeded): pass the to be parent |parentRenderer|
as the argument.
* rendering/RenderFullScreen.cpp:
(RenderFullScreen::wrapRenderer): make sure that parent allows RenderFullScreen as the child.
* rendering/RenderFullScreen.h:
(RenderFullScreen): support the object's parent
pointer as an additional argument.
LayoutTests:
* fullscreen/fullscreen-child-not-allowed-crash-expected.txt: Added.
* fullscreen/fullscreen-child-not-allowed-crash.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124491
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jamesr@google.com [Thu, 2 Aug 2012 20:33:42 +0000 (20:33 +0000)]
[chromium] Wrap shared context getters in WebKit API and avoid WebCore::GraphicsContext3D use in compositor internals
https://bugs.webkit.org/show_bug.cgi?id=92917
Reviewed by Adrienne Walker.
Source/Platform:
This adds Platform API for creating and accessing shared GraphicsContext3D and Ganesh contexts from the main or
compositor threads. These can be used for evaluating filters or doing accelerated painting. These contexts are
generally leaked until lost or process exit, the details are documented in WebSharedGraphicsContext3D.h
* Platform.gypi:
* chromium/public/WebSharedGraphicsContext3D.h: Added.
(WebKit):
(WebSharedGraphicsContext3D):
Source/WebCore:
This uses Platform API wrappers to access the shared WebGraphicsContext3D / Ganesh contexts from the compositor
to evaluate accelerated filters or do accelerated painting.
Filters changes covered by css3/filters/*-hw.html layout tests.
* WebCore.gypi:
* platform/chromium/support/WebSharedGraphicsContext3D.cpp:
(WebKit):
(WebKit::WebSharedGraphicsContext3D::mainThreadContext):
(WebKit::WebSharedGraphicsContext3D::mainThreadGrContext):
(WebKit::WebSharedGraphicsContext3D::compositorThreadContext):
(WebKit::WebSharedGraphicsContext3D::compositorThreadGrContext):
(WebKit::WebSharedGraphicsContext3D::haveCompositorThreadContext):
(WebKit::WebSharedGraphicsContext3D::createCompositorThreadContext):
* platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
(WebCore::createAcceleratedCanvas):
(WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::Texture::updateRect):
(WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
* platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.h:
(WebKit):
(FrameBufferSkPictureCanvasLayerTextureUpdater):
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::applyFilters):
* platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
(WebCore::CCRenderSurfaceFilters::apply):
* platform/graphics/chromium/cc/CCRenderSurfaceFilters.h:
(WebKit):
(CCRenderSurfaceFilters):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124490
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bdakin@apple.com [Thu, 2 Aug 2012 20:30:15 +0000 (20:30 +0000)]
https://bugs.webkit.org/show_bug.cgi?id=93020
REGRESSION (tiled scrolling): Full-screen video is broken if page is
scrolled
-and corresponding-
<rdar://problem/
11629778>
Reviewed by Anders Carlsson.
The bug here is that ScrollingTreeNodeMac::setScrollLayerPosition()
uses the CALayer (PlatformLayer) directly to set the position. That
means that the GraphicsLayer that owns that PlatformLayer does not
have updated position information. That results in this bug when we
switch from fast scrolling to main thread scrolling, because at that
point, the GraphicsLayer needs to have the correct information. So
make sure to update the main thread scroll position and layer
position before transitioning to main thread scrolling.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124489
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 20:23:16 +0000 (20:23 +0000)]
Unreviewed debug build fix (bug 92889)
Patch by Antonio Gomes <agomes@rim.com> on 2012-08-02
* WebKitSupport/InRegionScroller.cpp:
(BlackBerry::WebKit::pushBackInRegionScrollable):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124488
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 19:53:52 +0000 (19:53 +0000)]
[BlackBerry] Rounding error of destination rect of checkerboard
https://bugs.webkit.org/show_bug.cgi?id=93012
Patch by Leo Yang <leoyang@rim.com> on 2012-08-02
Reviewed by Rob Buis.
Reviewed internally by Jakob Petsovits.
Intersect with the destination rectangle to eliminate the rounding error.
* Api/BackingStore.cpp:
(BlackBerry::WebKit::BackingStorePrivate::blitContents):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124487
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 19:42:01 +0000 (19:42 +0000)]
Web Inspector: Rename 'User agent' to 'Overrides' in settings screen
https://bugs.webkit.org/show_bug.cgi?id=92990
Patch by Addy Osmani <addyo@chromium.org> on 2012-08-02
Reviewed by Pavel Feldman.
Simple setting rename of User agent -> Overrides
* English.lproj/localizedStrings.js:
* inspector/front-end/SettingsScreen.js:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124486
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pdr@google.com [Thu, 2 Aug 2012 19:36:04 +0000 (19:36 +0000)]
Do not dispatch modification events in SVG attribute synchronization
https://bugs.webkit.org/show_bug.cgi?id=92604
Reviewed by Ryosuke Niwa.
Source/WebCore:
Previously, calling hasAttribute() during layout could hit a
layout-during-layout bug because calling hasAttribute() could dispatch a
subtree modification event which could synchronously force a layout. hasAttribute()
exhibits this behavior because property synchronization is done lazily.
This patch skips dispatching subtree modification events during attribute
synchronization.
Additionally, this patch contains a refactoring of lazy attribute setting. We
now have a single place where lazy attributes are set (setSynchronizedLazyAttribute)
and lazy attribute flags have been moved to just Element and ElementAttributeData.
Test: svg/custom/path-domsubtreemodified-crash.html
* dom/Element.cpp:
(WebCore::Element::setAttribute):
(WebCore::Element::setSynchronizedLazyAttribute):
(WebCore):
(WebCore::Element::setAttributeInternal):
* dom/Element.h:
(Element):
* dom/ElementAttributeData.cpp:
(WebCore::ElementAttributeData::addAttribute):
(WebCore::ElementAttributeData::removeAttribute):
* dom/ElementAttributeData.h:
(ElementAttributeData):
* dom/StyledElement.cpp:
(WebCore::StyledElement::updateStyleAttribute):
* svg/properties/SVGAnimatedPropertyMacros.h:
(WebCore::SVGSynchronizableAnimatedProperty::synchronize):
LayoutTests:
* svg/custom/path-domsubtreemodified-crash-expected.txt: Added.
* svg/custom/path-domsubtreemodified-crash.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124485
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kpiascik@rim.com [Thu, 2 Aug 2012 19:29:26 +0000 (19:29 +0000)]
Web Inspector: Override the DeviceOrientation
https://bugs.webkit.org/show_bug.cgi?id=91008
Reviewed by Pavel Feldman.
Source/WebCore:
Re-added the m_page member variable to DeviceOrientationController and
added InspectorInstrumentation to see if the DeviceOrientationData
should be overridden or not.
Added UI to the web inspector front-end to allow users to override the
device orientation. This is currently hidden behind an experiment.
Test: inspector/device-orientation-success.html
* English.lproj/localizedStrings.js:
* dom/DeviceOrientationController.cpp:
(WebCore::DeviceOrientationController::DeviceOrientationController):
(WebCore::DeviceOrientationController::create):
(WebCore::DeviceOrientationController::didChangeDeviceOrientation):
(WebCore::provideDeviceOrientationTo):
* dom/DeviceOrientationController.h:
(DeviceOrientationController):
* inspector/Inspector.json:
* inspector/InspectorInstrumentation.cpp:
(WebCore):
(WebCore::InspectorInstrumentation::overrideDeviceOrientationImpl):
* inspector/InspectorInstrumentation.h:
(WebCore):
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::overrideDeviceOrientation):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::setDeviceOrientationOverride):
(WebCore):
(WebCore::InspectorPageAgent::clearDeviceOrientationOverride):
(WebCore::InspectorPageAgent::canOverrideDeviceOrientation):
(WebCore::InspectorPageAgent::overrideDeviceOrientation):
* inspector/InspectorPageAgent.h:
* inspector/front-end/Settings.js:
(WebInspector.ExperimentsSettings):
* inspector/front-end/SettingsScreen.js:
(WebInspector.UserAgentSettingsTab):
(WebInspector.UserAgentSettingsTab.prototype._createInput):
(WebInspector.UserAgentSettingsTab.prototype._createDeviceMetricsElement):
(WebInspector.UserAgentSettingsTab.prototype._createGeolocationOverrideElement):
(WebInspector.UserAgentSettingsTab.prototype._onDeviceOrientationOverrideCheckboxClicked):
(WebInspector.UserAgentSettingsTab.prototype._applyDeviceOrientationUserInput):
(WebInspector.UserAgentSettingsTab.prototype._setDeviceOrientation.set if):
(WebInspector.UserAgentSettingsTab.prototype._setDeviceOrientation):
(WebInspector.UserAgentSettingsTab.prototype._createDeviceOrientationOverrideElement):
* inspector/front-end/UserAgentSupport.js:
(WebInspector.UserAgentSupport.DeviceOrientation):
(WebInspector.UserAgentSupport.DeviceOrientation.prototype.toSetting):
(WebInspector.UserAgentSupport.DeviceOrientation.parseSetting):
(WebInspector.UserAgentSupport.DeviceOrientation.parseUserInput):
(WebInspector.UserAgentSupport.DeviceOrientation.clearDeviceOrientationOverride):
* inspector/front-end/inspector.js:
(WebInspector.doLoadedDone):
LayoutTests:
New tests for Device Orientation override.
* inspector/device-orientation-success-expected.txt: Added.
* inspector/device-orientation-success.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124484
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 19:20:33 +0000 (19:20 +0000)]
TypedArray set method is slow when called with another typed array
https://bugs.webkit.org/show_bug.cgi?id=92556
Patch by Arnaud Renevier <a.renevier@sisa.samsung.com> on 2012-08-02
Reviewed by Kenneth Russell.
PerformanceTests:
* Bindings/typed-array-set-from-typed.html: Added.
Source/WebCore:
When setting multiples values to a typed array from an array like
element, try to determine if the argument is a typed array. If so,
cast the argument to a typed array, and read each element with .item()
method. That avoid reading the value as a JSValue, and speedups set
method by approximatively 10x.
Introduce setWebGLArrayWithTypedArrayArgument template function which
checks if argument is a typed array. If so, it copies the data to
target typed array and returns true. Otherwise, it returns false.
Introduce copyTypedArrayBuffer template function which copies data
from a typed array to another one. This function is also used from
constructArrayBufferViewWithTypedArrayArgument.
* bindings/js/JSArrayBufferViewHelper.h:
(WebCore):
(WebCore::copyTypedArrayBuffer):
(WebCore::setWebGLArrayWithTypedArrayArgument):
(WebCore::setWebGLArrayHelper):
(WebCore::constructArrayBufferViewWithTypedArrayArgument):
* bindings/js/JSFloat32ArrayCustom.cpp:
(WebCore::JSFloat32Array::set):
* bindings/js/JSFloat64ArrayCustom.cpp:
(WebCore::JSFloat64Array::set):
* bindings/js/JSInt16ArrayCustom.cpp:
(WebCore::JSInt16Array::set):
* bindings/js/JSInt32ArrayCustom.cpp:
(WebCore::JSInt32Array::set):
* bindings/js/JSInt8ArrayCustom.cpp:
(WebCore::JSInt8Array::set):
* bindings/js/JSUint16ArrayCustom.cpp:
(WebCore::JSUint16Array::set):
* bindings/js/JSUint32ArrayCustom.cpp:
(WebCore::JSUint32Array::set):
* bindings/js/JSUint8ArrayCustom.cpp:
(WebCore::JSUint8Array::set):
* bindings/js/JSUint8ClampedArrayCustom.cpp:
(WebCore::JSUint8ClampedArray::set):
Source/WTF:
Add an checkInboundData function to TypedArrayBase to check if a
position will be not be out of bound or overflow from the typed array.
* wtf/TypedArrayBase.h:
(WTF::TypedArrayBase::checkInboundData):
(TypedArrayBase):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124483
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cfleizach@apple.com [Thu, 2 Aug 2012 18:53:16 +0000 (18:53 +0000)]
AXEnabled = false for AXIncrementors inside text fields
https://bugs.webkit.org/show_bug.cgi?id=93008
Reviewed by Anders Carlsson.
Source/WebCore:
Mock objects should return "enabled" by default, since they are valid objects.
* accessibility/AccessibilityMockObject.h:
(WebCore::AccessibilityMockObject::isEnabled):
(AccessibilityMockObject):
LayoutTests:
Update tests to reflect that mock objects should be enabled by default.
* platform/mac/accessibility/html5-input-number-expected.txt:
* platform/mac/accessibility/html5-input-number.html:
* platform/mac/accessibility/table-attributes-expected.txt:
* platform/mac/accessibility/table-sections-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124482
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
wangxianzhu@chromium.org [Thu, 2 Aug 2012 18:46:24 +0000 (18:46 +0000)]
[Chromium-Android] Run layout tests on multiple devices in parallel
https://bugs.webkit.org/show_bug.cgi?id=92877
Reviewed by Dirk Pranke.
Moved methods that run command on a particular device from ChromiumAndroidPort to ChromiumAndroidDriver.
The drivers run adb commands with the '-s serial_number' parameter which specifies the device according to the work_number.
* Scripts/webkitpy/layout_tests/port/chromium_android.py:
(ChromiumAndroidPort.__init__):
(ChromiumAndroidPort.default_child_processes): Default to the number of attached devices.
(ChromiumAndroidPort.test_expectations): Removed because it is unused.
(ChromiumAndroidPort.setup_test_run): Most contents moved into ChromiumAndroidDriver._setup_test()
(ChromiumAndroidPort.clean_up_test_run): Now the http server is stopped here.
(ChromiumAndroidPort._get_devices):
(ChromiumAndroidPort._get_device_serial):
(ChromiumAndroidDriver):
(ChromiumAndroidDriver.__init__):
(ChromiumAndroidDriver.__del__):
(ChromiumAndroidDriver._setup_test): Original contents of ChromiumAndroidPort.setup_test_run().
(ChromiumAndroidDriver._push_executable): Moved from ChromiumAndroidPort.
(ChromiumAndroidDriver._push_fonts): Moved from ChromiumAndroidPort.
(ChromiumAndroidDriver._push_test_resources): Moved from ChromiumAndroidPort.
(ChromiumAndroidDriver._synchronize_datetime): Moved from ChromiumAndroidPort.
(ChromiumAndroidDriver._run_adb_command): Moved from ChromiumAndroidPort.
(ChromiumAndroidDriver._teardown_performance): Moved from ChromiumAndroidPort.
(ChromiumAndroidDriver._get_crash_log): Moved from ChromiumAndroidPort.
(ChromiumAndroidDriver.cmd_line):
(ChromiumAndroidDriver._file_exists_on_device):
(ChromiumAndroidDriver._remove_all_pipes):
(ChromiumAndroidDriver._start):
(ChromiumAndroidDriver._start_once):
(ChromiumAndroidDriver.stop):
* Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py:
(MockRunCommand):
(MockRunCommand.__init__):
(MockRunCommand.mock_run_command_fn):
(MockRunCommand.mock_no_device):
(MockRunCommand.mock_one_device):
(MockRunCommand.mock_two_devices):
(MockRunCommand.mock_no_tombstone_dir):
(MockRunCommand.mock_no_tombstone_file):
(MockRunCommand.mock_ten_tombstones):
(MockRunCommand.mock_logcat):
(ChromiumAndroidPortTest):
(ChromiumAndroidPortTest.make_port):
(ChromiumAndroidPortTest.test_driver_cmd_line):
(ChromiumAndroidPortTest.test_get_devices_no_device):
(ChromiumAndroidPortTest.test_get_devices_one_device):
(ChromiumAndroidPortTest.test_get_devices_two_devices):
(ChromiumAndroidPortTest.test_get_device_serial_no_device):
(ChromiumAndroidPortTest.test_get_device_serial_one_device):
(ChromiumAndroidPortTest.test_get_device_serial_two_devices):
(ChromiumAndroidDriverTest):
(ChromiumAndroidDriverTest.setUp):
(ChromiumAndroidDriverTest.test_get_last_stacktrace):
(ChromiumAndroidDriverTest.test_get_crash_log):
(ChromiumAndroidDriverTest.test_cmd_line):
(ChromiumAndroidDriverTwoDriversTest):
(ChromiumAndroidDriverTwoDriversTest.test_two_drivers):
* Scripts/webkitpy/layout_tests/port/driver.py:
(Driver.run_test):
(Driver._get_crash_log): Added to allow subclasses to override.
* Scripts/webkitpy/layout_tests/run_webkit_tests.py:
(parse_args): Removed the --adb-args command-line parameter because now we select device automatically. Added --adb-device to specify devices.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124481
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 18:41:47 +0000 (18:41 +0000)]
Layout Test: compositing/backface-visibility/backface-visibility-webgl.html is not supported on Windows.
No WebGL support.
https://bugs.webkit.org/show_bug.cgi?id=92929
Patch by Roger Fong <roger_fong@apple.com> on 2012-08-02
Reviewed by Tim Horton.
* platform/win/Skipped:
compositing/backface-visibility/backface-visibility-webgl.html added to Windows skip list.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124480
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
carlosgc@webkit.org [Thu, 2 Aug 2012 17:44:28 +0000 (17:44 +0000)]
[GTK] Inspector should set a default attached height before being attached
https://bugs.webkit.org/show_bug.cgi?id=90767
Reviewed by Xan Lopez.
We are currently using the minimum attached height in
WebKitWebViewBase as the default height for the inspector when
attached. It would be easier for WebKitWebViewBase and embedders
implementing attach() if the inspector already had an attached
height set when it's being attached.
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseContainerAdd): Don't initialize
inspectorViewHeight.
(webkitWebViewBaseSetInspectorViewHeight): Allow to set the
inspector view height before having an inpector view, but only
queue a resize when the view already has an inspector view.
* UIProcess/API/gtk/tests/TestInspector.cpp:
(testInspectorDefault):
(testInspectorManualAttachDetach):
* UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformAttach): Set the default
attached height before attach the inspector view.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124479
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
peter@chromium.org [Thu, 2 Aug 2012 17:40:27 +0000 (17:40 +0000)]
[Chromium] Add a stub for WebView::getTouchHighlightQuads()
https://bugs.webkit.org/show_bug.cgi?id=92997
Reviewed by Adam Barth.
Chrome on Android will be using this method for the link preview
implementation, discussion about which is available in Bug 79150. Since
that system is fairly big, will require refactoring, and the unavailable
APIs are blocking API compatibility, add a stub for now.
Together with the WebView API, also add the "WebTouchCandidatesInfo"
structure which is being used by it.
Source/Platform:
* Platform.gypi: List WebTouchCandidatesInfo.h
* chromium/public/WebTouchCandidatesInfo.h: Added.
(WebKit):
(WebTouchCandidatesInfo):
(WebKit::WebTouchCandidatesInfo::WebTouchCandidatesInfo):
Source/WebKit/chromium:
* public/WebView.h:
(WebKit):
(WebView):
* src/WebViewImpl.cpp:
(WebKit):
(WebKit::WebViewImpl::getTouchHighlightQuads):
* src/WebViewImpl.h:
(WebViewImpl):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124478
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 17:36:59 +0000 (17:36 +0000)]
WebKitTestRunner needs layoutTestController.setUserStyleSheetEnabled
https://bugs.webkit.org/show_bug.cgi?id=42679
Patch by Dinu Jacob <dinu.jacob@nokia.com> on 2012-08-02
Reviewed by Eric Seidel.
Source/WebKit2:
Added WKBundleSetUserStyleSheetLocation API.
* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleSetUserStyleSheetLocation): Added.
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Added WKBundleSetUserStyleSheetLocation.
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setUserStyleSheetLocation): Added. Sets the user style sheet location
for all pages in the page group.
(WebKit):
* WebProcess/InjectedBundle/InjectedBundle.h:
(InjectedBundle):
Tools:
* WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: Added
setUserStyleSheetEnabled and setUserStyleSheetLocation.
* WebKitTestRunner/InjectedBundle/LayoutTestController.cpp:
(WTR::LayoutTestController::LayoutTestController): Initialize new members added.
(WTR::LayoutTestController::setUserStyleSheetEnabled): Added.
(WTR::LayoutTestController::setUserStyleSheetLocation): Added.
* WebKitTestRunner/InjectedBundle/LayoutTestController.h: Added members
userStyleSheetEnabled, and m_userStyleSheetLocation and methods
setUserStyleSheetEnabled, and setUserStyleSheetLocation.
LayoutTests:
Removed tests that are now passing.
* platform/wk2/Skipped:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124477
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mhahnenberg@apple.com [Thu, 2 Aug 2012 17:32:35 +0000 (17:32 +0000)]
Remove all uses of ClassInfo for JSStrings in JIT code
https://bugs.webkit.org/show_bug.cgi?id=92935
Reviewed by Geoffrey Garen.
This is the first step in removing our dependence on in-object ClassInfo pointers
in JIT code. Most of the changes are to check the Structure, which is unique for
JSString primitives.
* bytecode/SpeculatedType.cpp:
(JSC::speculationFromClassInfo):
(JSC::speculationFromStructure): Changed to check the TypeInfo in the Structure
since there wasn't a JSGlobalData immediately available to grab the JSString
Structure out of.
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileGetIndexedPropertyStorage):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* jit/JITInlineMethods.h:
(JSC::JIT::emitLoadCharacterString):
* jit/JITOpcodes.cpp:
(JSC::JIT::privateCompileCTIMachineTrampolines):
(JSC::JIT::emit_op_to_primitive):
(JSC::JIT::emit_op_convert_this):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::privateCompileCTIMachineTrampolines):
(JSC::JIT::emit_op_to_primitive):
(JSC::JIT::emitSlow_op_eq):
(JSC::JIT::emitSlow_op_neq):
(JSC::JIT::compileOpStrictEq):
(JSC::JIT::emit_op_convert_this):
* jit/JITPropertyAccess.cpp:
(JSC::JIT::stringGetByValStubGenerator):
(JSC::JIT::emitSlow_op_get_by_val):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::stringGetByValStubGenerator):
(JSC::JIT::emitSlow_op_get_by_val):
* jit/SpecializedThunkJIT.h:
(JSC::SpecializedThunkJIT::loadJSStringArgument):
* jit/ThunkGenerators.cpp:
(JSC::stringCharLoad):
(JSC::charCodeAtThunkGenerator):
(JSC::charAtThunkGenerator):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124476
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric@webkit.org [Thu, 2 Aug 2012 17:25:10 +0000 (17:25 +0000)]
Add back ASSERT(!needsLayout) to RenderTableSection which is now valid
https://bugs.webkit.org/show_bug.cgi?id=92954
Reviewed by Julien Chaffraix.
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::paint):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124475
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
hans@chromium.org [Thu, 2 Aug 2012 17:14:03 +0000 (17:14 +0000)]
Speech JavaScript API: Fire speech start event at the same time as sound start event
https://bugs.webkit.org/show_bug.cgi?id=92971
Reviewed by Adam Barth.
Source/WebKit/chromium:
Chromium's speech recognizer doesn't differentiate between "sound
started" and "speech started". Just fire those events at the same
time, and don't provide functions for them in
WebSpeechRecognizerClient.
* public/WebSpeechRecognizerClient.h:
* src/SpeechRecognitionClientProxy.cpp:
(WebKit::SpeechRecognitionClientProxy::didStartSound):
(WebKit::SpeechRecognitionClientProxy::didEndSound):
* src/SpeechRecognitionClientProxy.h:
(SpeechRecognitionClientProxy):
Tools:
Update the MockWebSpeechRecognizer to not fire "speech started" events
separately.
* DumpRenderTree/chromium/MockWebSpeechRecognizer.cpp:
(MockWebSpeechRecognizer::start):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124474
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 17:01:56 +0000 (17:01 +0000)]
Month-year selector on calendar picker should be touch friendly.
https://bugs.webkit.org/show_bug.cgi?id=92678
Patch by Kevin Ellis <kevers@chromium.org> on 2012-08-02
Reviewed by Kent Tamura.
Previously the month-year popup menu was implemented using a listbox,
which does not support CSS customization. Entries in the listbox
were too shallow to reliably target with touch gestures. The
replacement popup is CSS configurable with larger entries on devices
that support touch input.
Manually tested with and without touch support in English, Japanese
and Arabic.
* Resources/calendarPicker.css:
(.month-selector-popup): Update to use scrollable div instead of listbox.
(.month-selector-popup-contents): Render popup as a table within a scrollable div.
(.month-selector-popup-entry): Formatting entries in the month-year popup.
(.selected-month-year): Highlight the selected month-year.
(@media (pointer:coarse)): Enlarge entries in the popup meu on devices that support touch.
* Resources/calendarPicker.js:
(YearMonthController.prototype.attachTo): Change selector popup from a list-box to a div.
(YearMonthController.prototype._redraw): Populate table based popup rather than listbox.
(YearMonthController.prototype._showPopup): Set scroll position and resize for scrollbar.
(YearMonthController.prototype._closePopup): Restore focus to the calendar.
(YearMonthController.prototype._getSelection): Added to retrieve the selected month-year.
(YearMonthController.prototype._handleMouseMove): Added to update selected month-year on hover.
(YearMonthController.prototype._handleMonthPopupKey): Add keyboard navigation.
(YearMonthController.prototype._handleYearMonthChange): Retrieve value from selected month-year.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124473
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
philn@webkit.org [Thu, 2 Aug 2012 16:53:21 +0000 (16:53 +0000)]
[GTK] make sometimes using a single core
https://bugs.webkit.org/show_bug.cgi?id=92998
Reviewed by Martin Robinson.
In the GTK 64-bit Release buildbot some builds use a single core
for the make process. I suspect this is because in those cases
nproc reports a single core available. The proposed solution is to
always rely on all the cores available in the machine.
* Scripts/webkitdirs.pm:
(determineNumberOfCPUs):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124472
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
abarth@webkit.org [Thu, 2 Aug 2012 16:48:33 +0000 (16:48 +0000)]
[Chromium] WebViewImpl::showTouchHighlightQuads isn't needed for Android
https://bugs.webkit.org/show_bug.cgi?id=92921
Reviewed by Nate Chapin.
We originally added a stub implementation of this function to make
merging detectContentOnTouch easier, but showTouchHighlightQuads is
being removed from the chromium-android branch in favor of the code in
https://bugs.webkit.org/show_bug.cgi?id=84487. This patch removes the
stub.
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::detectContentIntentOnTouch):
* src/WebViewImpl.h:
(WebViewImpl):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124471
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
tonikitoo@webkit.org [Thu, 2 Aug 2012 16:42:13 +0000 (16:42 +0000)]
[BlackBerry] Implement InRegionScroller class as a in-region scroll controller
https://bugs.webkit.org/show_bug.cgi?id=92889
PR #186587
Reviewed by Yong Li.
Patch by Antonio Gomes <agomes@rim.com>
Internally reviewed by Arvid Nilsson.
Source/WebKit:
* PlatformBlackBerry.cmake: Added InRegionScroller.cpp|h to the build system.
Source/WebKit/blackberry:
Moved all in-region scrolling code out of WebPagePrivate to the just
created InRegionScroller class. This class aims to:
1) Centralize all in-region scroll code and clean up WebPagePrivate as a consequence.
2) Be the bases to add UI/Compositing thread driven scrolls to in-region.
The patch does not change any functionallity change.
* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::WebPagePrivate):
(BlackBerry::WebKit::WebPagePrivate::init):
(BlackBerry::WebKit::WebPagePrivate::scrollBy):
(BlackBerry::WebKit::WebPagePrivate::notifyInRegionScrollStatusChanged):
(BlackBerry::WebKit::WebPagePrivate::clearDocumentData):
(BlackBerry::WebKit::WebPagePrivate::setScrollOriginPoint):
* Api/WebPage_p.h:
(WebPagePrivate):
* WebKitSupport/InRegionScrollableArea.cpp:
(BlackBerry::WebKit::InRegionScrollableArea::layer):
* WebKitSupport/InRegionScroller.cpp: Added.
(WebKit):
(BlackBerry::WebKit::canScrollInnerFrame):
(BlackBerry::WebKit::canScrollRenderBox):
(BlackBerry::WebKit::parentLayer):
(BlackBerry::WebKit::enclosingLayerNode):
(BlackBerry::WebKit::isNonRenderViewFixedPositionedContainer):
(BlackBerry::WebKit::pushBackInRegionScrollable):
(BlackBerry::WebKit::InRegionScroller::InRegionScroller):
(BlackBerry::WebKit::InRegionScroller::setNode):
(BlackBerry::WebKit::InRegionScroller::node):
(BlackBerry::WebKit::InRegionScroller::reset):
(BlackBerry::WebKit::InRegionScroller::isNull):
(BlackBerry::WebKit::InRegionScroller::scrollBy):
(BlackBerry::WebKit::InRegionScroller::inRegionScrollableAreasForPoint):
(BlackBerry::WebKit::InRegionScroller::scrollNodeRecursively):
(BlackBerry::WebKit::InRegionScroller::scrollRenderer):
(BlackBerry::WebKit::InRegionScroller::adjustScrollDelta):
* WebKitSupport/InRegionScroller.h: Added.
(WebCore):
(WebKit):
(InRegionScroller):
* WebKitSupport/TouchEventHandler.cpp:
(BlackBerry::WebKit::TouchEventHandler::drawTapHighlight):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124470
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
vsevik@chromium.org [Thu, 2 Aug 2012 16:36:56 +0000 (16:36 +0000)]
Web Inspector: [Regression] context menu does not open on Sources panel tabs on mac
https://bugs.webkit.org/show_bug.cgi?id=93000
Reviewed by Pavel Feldman.
* inspector/front-end/UIUtils.js:
(WebInspector._elementDragStart):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124469
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
abarth@webkit.org [Thu, 2 Aug 2012 16:36:50 +0000 (16:36 +0000)]
Re-land trac.webkit.org/changeset/94441 now that lforschler is ready.
This patch enables testing on the mac-ews bots.
* Scripts/webkitpy/tool/commands/earlywarningsystem.py:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124468
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
abarth@webkit.org [Thu, 2 Aug 2012 16:30:43 +0000 (16:30 +0000)]
[Chromium] Merge final nits to DumpRenderTree.gyp for Android
https://bugs.webkit.org/show_bug.cgi?id=90920
Reviewed by Tony Chang.
This patch contains the last few small changes to DumpRenderTree.gyp
from the chromium-android branch. After this change, this file will be
fully merged.
* DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124467
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 16:14:35 +0000 (16:14 +0000)]
[EFL][GTK] Implement font-feature settings
https://bugs.webkit.org/show_bug.cgi?id=84239
Unreviewed EFL gardening.
Now working after bug 91864 is closed.
Patch by Dominik Röttsches <dominik.rottsches@intel.com> on 2012-08-02
* platform/efl/TestExpectations:
* platform/efl/css3/font-feature-settings-rendering-expected.png:
* platform/efl/css3/font-feature-settings-rendering-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124466
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 16:11:50 +0000 (16:11 +0000)]
Check if the last table element's parent node is an element when determining the foster parent element.
https://bugs.webkit.org/show_bug.cgi?id=92977
Patch by Kwang Yul Seo <skyul@company100.net> on 2012-08-02
Reviewed by Adam Barth.
Source/WebCore:
According to the HTML5 spec, if the last table element in the stack of open elements has no parent,
or ITS PARENT NODE IS NOT AN ELEMENT, then the foster parent element is the element
before the last table element in the stack of open elements.
Changed to check if the table element's parent node is an element.
Test: fast/parser/foster-parent.html
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::findFosterSite):
LayoutTests:
This new test changes the table element's parent node to a newly created document fragment node.
Because a document fragment node is not an element, the foster parent element must be the element
before the last table element in the stack of open elements.
* fast/parser/foster-parent-expected.txt: Added.
* fast/parser/foster-parent.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124465
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
philn@webkit.org [Thu, 2 Aug 2012 16:09:32 +0000 (16:09 +0000)]
[GStreamer] Use GST_DEBUG instead of LOG_VERBOSE
https://bugs.webkit.org/show_bug.cgi?id=89350
Reviewed by Martin Robinson.
Wrap the media player's logging calls to a new macro that also
hooks into GStreamer's logging facilities. This way the developer
gets the best of both worlds, leaving the choice between GST_DEBUG
and WEBKIT_DEBUG environment variables.
* platform/graphics/gstreamer/GStreamerUtilities.h:
(WebCore):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::initializeGStreamerAndRegisterWebKitElements):
(WebCore::MediaPlayerPrivateGStreamer::load):
(WebCore::MediaPlayerPrivateGStreamer::commitLoad):
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition):
(WebCore::MediaPlayerPrivateGStreamer::play):
(WebCore::MediaPlayerPrivateGStreamer::pause):
(WebCore::MediaPlayerPrivateGStreamer::duration):
(WebCore::MediaPlayerPrivateGStreamer::seek):
(WebCore::MediaPlayerPrivateGStreamer::naturalSize):
(WebCore::MediaPlayerPrivateGStreamer::setRate):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::processBufferingStats):
(WebCore::MediaPlayerPrivateGStreamer::fillTimerFired):
(WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
(WebCore::MediaPlayerPrivateGStreamer::maxTimeLoaded):
(WebCore::MediaPlayerPrivateGStreamer::didLoadingProgress):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124464
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
antti@apple.com [Thu, 2 Aug 2012 16:08:48 +0000 (16:08 +0000)]
Inline stylesheets can confuse style sharing
https://bugs.webkit.org/show_bug.cgi?id=92970
Reviewed by Dan Bernstein.
Source/WebCore:
Consider document
<div class="i30"></div>
<style>.i30 { background-color:green; }</style>
<div class="i30"></div>
When processing the <style> element the scope optimization marks the first div as needing style recalc.
Next the parser adds the second div to the tree and immediately calculates its style. Since it looks exactly
like the first div the style sharing optimization copies the style from there. The pending recalc of the
first div is resolved by a timer but the second div is left with the old style.
Fix by disallowing style sharing from elements with pending style recalc.
Test: fast/css/style-sharing-inline-stylesheet.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithElement):
LayoutTests:
* fast/css/style-sharing-inline-stylesheet-expected.txt: Added.
* fast/css/style-sharing-inline-stylesheet.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124463
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 16:07:01 +0000 (16:07 +0000)]
[Qt] Fix axis locking when panning on N9
https://bugs.webkit.org/show_bug.cgi?id=92394
Patch by Lauro Neto <lauro.neto@openbossa.org> on 2012-08-02
Reviewed by Simon Hausmann.
Make the QQuickWebView axis locker calculate the
time between events using QInputEvent.timestamp, which
is set from the native event when available.
Also use touchPoint.pos() instead of screenPos() to
correct the axis detection when running on N9, which
has a native landscape display and the applications usually
run in portrait mode.
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::FlickableAxisLocker::FlickableAxisLocker):
(QQuickWebViewPrivate::FlickableAxisLocker::touchVelocity):
(QQuickWebViewPrivate::FlickableAxisLocker::update):
* UIProcess/API/qt/qquickwebview_p_p.h:
(FlickableAxisLocker):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124462
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 16:03:46 +0000 (16:03 +0000)]
[EFL][WK2]Add ewk_view_ui_client.
https://bugs.webkit.org/show_bug.cgi?id=89864
Patch by Hyerim Bae <hyerim.bae@samsung.com> on 2012-08-02
Reviewed by Kentaro Hara.
Add ewk_view_ui_client.h / cpp files for wrapping WKPageSetPageUIClient,
add close, createNewPage callback member to WKPageSetPageUIClient.
* PlatformEfl.cmake:
* UIProcess/API/efl/ewk_view.cpp:
(ewk_view_base_add):
(ewk_view_page_close):
(ewk_view_page_create):
* UIProcess/API/efl/ewk_view.h:
* UIProcess/API/efl/ewk_view_private.h:
* UIProcess/API/efl/ewk_view_ui_client.cpp: Added.
(toEwkView):
(closePage):
(createNewPage):
(ewk_view_ui_client_attach):
* UIProcess/API/efl/ewk_view_ui_client_private.h: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124461
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
tommyw@google.com [Thu, 2 Aug 2012 15:56:21 +0000 (15:56 +0000)]
MediaStream API: Add RTCPeerConnectionHandler infrastructure
https://bugs.webkit.org/show_bug.cgi?id=92866
Reviewed by Adam Barth.
Introducing RTCPeerConnectionHandler & RTCPeerConnectionHandlerClient,
together with the Chromium WebKit interface, following the pattern of
the previous PeerConnection00Handler but with the optimizations from MediaStreamCenter.
Source/Platform:
* Platform.gypi:
* chromium/public/Platform.h:
(WebKit):
(Platform):
(WebKit::Platform::createRTCPeerConnectionHandler):
* chromium/public/WebRTCPeerConnectionHandler.h: Added.
(WebKit):
(WebRTCPeerConnectionHandler):
(WebKit::WebRTCPeerConnectionHandler::~WebRTCPeerConnectionHandler):
* chromium/public/WebRTCPeerConnectionHandlerClient.h: Added.
(WebKit):
(WebRTCPeerConnectionHandlerClient):
(WebKit::WebRTCPeerConnectionHandlerClient::~WebRTCPeerConnectionHandlerClient):
Source/WebCore:
Not yet testable due to not enough code landed.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::create):
(WebCore::RTCPeerConnection::RTCPeerConnection):
* Modules/mediastream/RTCPeerConnection.h:
(RTCPeerConnection):
* WebCore.gypi:
* platform/mediastream/RTCPeerConnectionHandler.cpp: Added.
(WebCore):
(RTCPeerConnectionHandlerDummy):
(WebCore::RTCPeerConnectionHandler::create):
(WebCore::RTCPeerConnectionHandlerDummy::RTCPeerConnectionHandlerDummy):
(WebCore::RTCPeerConnectionHandlerDummy::~RTCPeerConnectionHandlerDummy):
(WebCore::RTCPeerConnectionHandlerDummy::initialize):
* platform/mediastream/RTCPeerConnectionHandler.h: Copied from Source/WebCore/Modules/mediastream/RTCPeerConnection.h.
(WebCore):
(RTCPeerConnectionHandler):
(WebCore::RTCPeerConnectionHandler::~RTCPeerConnectionHandler):
(WebCore::RTCPeerConnectionHandler::RTCPeerConnectionHandler):
* platform/mediastream/RTCPeerConnectionHandlerClient.h: Copied from Source/WebCore/Modules/mediastream/RTCPeerConnection.h.
(WebCore):
(RTCPeerConnectionHandlerClient):
(WebCore::RTCPeerConnectionHandlerClient::~RTCPeerConnectionHandlerClient):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp: Added.
(WebCore):
(WebCore::RTCPeerConnectionHandler::create):
(WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
(WebCore::RTCPeerConnectionHandlerChromium::~RTCPeerConnectionHandlerChromium):
(WebCore::RTCPeerConnectionHandlerChromium::initialize):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h: Added.
(WebCore):
(RTCPeerConnectionHandlerChromium):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124460
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
tkent@chromium.org [Thu, 2 Aug 2012 15:53:58 +0000 (15:53 +0000)]
Move number localization code in LocaleICU.cpp to new class
https://bugs.webkit.org/show_bug.cgi?id=92976
Reviewed by Kentaro Hara.
The number localization code by character mapping is usefull for non-ICU
platforms.
No new tests. This is just a refactoring, and is covered by
Source/WebKit/chromium/tests/LocalizedNumberICUTest.cpp.
* WebCore.gypi: Add NumberLocalizer.{cpp,h}.
* platform/text/LocaleICU.cpp:
(WebCore::LocaleICU::decimalSymbol):
Renamed from setDecimalSymbol. This function returns the resultant
string instead of setting it to a data member.
(WebCore::LocaleICU::decimalTextAttribute):
Renamed from setDecimalTextAttributel. This function returns the
resultant string instead of setting it to the specified string.
(WebCore::LocaleICU::initializeNumberLocalizerData):
Renamed from initializeDecimalFormat.
Calls NumberLocaizer::setNumberLocalizerData.
(WebCore::LocaleICU::localizedDecimalSeparator):
Rename initializeDecimalFormat to initializeNumberLocalizerData.
* platform/text/LocaleICU.h:
(LocaleICU): Remove some members, and inherit NumberLocalizer.
* platform/text/NumberLocalizer.cpp: Added. Move the code from LocaleICU.cpp
(WebCore):
(WebCore::NumberLocalizer::~NumberLocalizer):
(WebCore::NumberLocalizer::setNumberLocalizerData): Added.
(WebCore::NumberLocalizer::convertToLocalizedNumber):
(WebCore::matches):
(WebCore::NumberLocalizer::detectSignAndGetDigitRange):
(WebCore::NumberLocalizer::matchedDecimalSymbolIndex):
(WebCore::NumberLocalizer::convertFromLocalizedNumber):
(WebCore::NumberLocalizer::localizedDecimalSeparator):
* platform/text/NumberLocalizer.h: Added.
(NumberLocalizer):
(WebCore::NumberLocalizer::NumberLocalizer):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124459
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
apavlov@chromium.org [Thu, 2 Aug 2012 15:19:20 +0000 (15:19 +0000)]
Web Inspector: Move DOM breakpoints-related context menu items into a submenu
https://bugs.webkit.org/show_bug.cgi?id=92989
Reviewed by Vsevolod Vlasov.
A "Break on..." submenu is added to the element context menu, to host all DOM breakpoint items.
* English.lproj/localizedStrings.js:
* inspector/front-end/DOMBreakpointsSidebarPane.js:
(WebInspector.DOMBreakpointsSidebarPane):
(WebInspector.DOMBreakpointsSidebarPane.prototype.populateNodeContextMenu):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124458
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
peter@chromium.org [Thu, 2 Aug 2012 15:09:11 +0000 (15:09 +0000)]
[Chromium] Toggle the type of ant compile for webkit_unit_tests and TestWebKitAPI
https://bugs.webkit.org/show_bug.cgi?id=92858
Reviewed by Adam Barth.
Now that the sdk_build variable is available, we can remove these two differences
as well. This goes together with Adam's bug 90920.
After this patch, the whole Tools/ directory will be unforked :-).
Source/WebKit/chromium:
* WebKitUnitTests.gyp:
Tools:
* TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124457
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
carlosgc@webkit.org [Thu, 2 Aug 2012 15:01:14 +0000 (15:01 +0000)]
[GTK] No main resource in WebView on load committed when page has been loaded from history cache
https://bugs.webkit.org/show_bug.cgi?id=91482
Reviewed by Martin Robinson.
We assume that on load committed, we already have a main resource
in the web view, and it has already received a response. This is
not true for pages loaded from the history cache, so when going
back/forward, we don't have a main resource when the
load-committed signal is emitted. We must ensure that the loading
process documented in the API is the same for pages loaded from
the history cache too.
* UIProcess/API/gtk/WebKitLoaderClient.cpp:
(didCommitLoadForFrame): Call webkitWebViewLoadChanged() and let
the web view handle the certificate.
* UIProcess/API/gtk/WebKitWebResource.cpp:
(webkitWebResourceGetFrame): Helper private function to easily get
the WKFrame associated with a WebResource.
* UIProcess/API/gtk/WebKitWebResourcePrivate.h:
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewDisconnectMainResourceResponseChangedSignalHandler):
Disconnect the notify::response signal of the main resource.
(webkitWebViewFinalize): Call
webkitWebViewDisconnectMainResourceResponseChangedSignalHandler().
(setCertificateToMainResource): Set the TLS certificate on the
response of the main resource.
(webkitWebViewEmitLoadChanged): Helper function to emit
load-chancged signal.
(webkitWebViewEmitDelayedLoadEvents): If we were waiting for the
main resource, emit the signals that were delayed.
(webkitWebViewLoadChanged): Do not emit committed or finished if
we are still waiting for the main resource. Set the TLS
certificate if we already have a main resource or wait until we
have the main resource with a response.
(mainResourceResponseChangedCallback): Emitted when the main
resource received the response. Set the certificate on the
response and emit load signals delayed.
(waitForMainResourceResponseIfWaitingForResource): If we are
waiting for the main resource, connect to the notify::response
signal of the WebResource to make sure it has a response already
when load signal delayed are emitted.
(webkitWebViewResourceLoadStarted): Call
waitForMainResourceResponseIfWaitingForResource().
* UIProcess/API/gtk/tests/LoadTrackingTest.cpp:
(loadChangedCallback):
(LoadTrackingTest::goBack):
(LoadTrackingTest::goForward):
* UIProcess/API/gtk/tests/LoadTrackingTest.h:
(LoadTrackingTest):
* UIProcess/API/gtk/tests/TestLoaderClient.cpp:
(testWebViewHistoryLoad):
(serverCallback):
(beforeAll):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124456
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
abecsi@webkit.org [Thu, 2 Aug 2012 14:42:30 +0000 (14:42 +0000)]
[Qt][WK2] Click, mouse and links rely on touch mocking.
https://bugs.webkit.org/show_bug.cgi?id=83091
Reviewed by Simon Hausmann.
Send the incoming mouse events directly to the gesture recognizers to make
the WebView behave consistent with other Flickables.
This patch unifies the code paths for input events and makes it possible
to enable mouse events on the flickable web view again, thus makes the
mobile-version of QQuickWebView usable on desktop.
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::handleMouseEvent):
(QQuickWebViewFlickablePrivate::QQuickWebViewFlickablePrivate):
(QQuickWebViewFlickablePrivate::handleMouseEvent):
(QQuickWebView::mousePressEvent):
(QQuickWebView::mouseMoveEvent):
(QQuickWebView::mouseReleaseEvent):
(QQuickWebView::mouseDoubleClickEvent):
* UIProcess/API/qt/qquickwebview_p_p.h:
(QQuickWebViewPrivate):
(QQuickWebViewFlickablePrivate):
* UIProcess/qt/QtPanGestureRecognizer.cpp:
(WebKit::QtPanGestureRecognizer::update):
* UIProcess/qt/QtWebPageEventHandler.cpp:
(WebKit::QtWebPageEventHandler::QtWebPageEventHandler):
(WebKit::QtWebPageEventHandler::handleInputEvent):
(WebKit):
(WebKit::QtWebPageEventHandler::doneWithTouchEvent):
* UIProcess/qt/QtWebPageEventHandler.h:
(QtWebPageEventHandler):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124455
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 14:21:10 +0000 (14:21 +0000)]
[Cairo] Add complex font drawing using HarfbuzzNG
https://bugs.webkit.org/show_bug.cgi?id=91864
Patch by Dominik Röttsches <dominik.rottsches@intel.com> on 2012-08-02
Reviewed by Martin Robinson.
Source/WebCore:
Unfortunately the Freetype based approach that avoids allocations and UTF8 conversion
fails to produce correct results for some tests.
No new tests, at least
fast/dom/52776.html
fast/text/atsui-negative-spacing-features.html
fast/text/atsui-spacing-features.html
expose this problem.
* platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCairo.cpp:
(WebCore::harfbuzzGetGlyph): Revert to initial cairo_scaled_font based approach.
LayoutTests:
Unskipping tests, now passing with valid complex font results.
* platform/efl/TestExpectations:
* platform/efl/fast/text/atsui-pointtooffset-calls-cg-expected.txt:
* platform/efl/fast/text/international/text-spliced-font-expected.png: Added.
* platform/efl/fast/text/international/text-spliced-font-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124454
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 14:19:35 +0000 (14:19 +0000)]
Web Inspector: Fix protocol version check.
https://bugs.webkit.org/show_bug.cgi?id=91497
Patch by Eugene Klyuchnikov <eustas.big@gmail.com> on 2012-08-02
Reviewed by Pavel Feldman.
Generated method 'supportsInspectorProtocolVersion' should return
false when requested minor version is *greater* than actual
minor version.
* inspector/generate-inspector-protocol-version: Fixed stub text
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124453
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 14:14:58 +0000 (14:14 +0000)]
Web Inspector: count RenderStyle objects in the native memory profiler
https://bugs.webkit.org/show_bug.cgi?id=91759
Patch by Alexei Filippov <alexeif@chromium.org> on 2012-08-02
Reviewed by Yury Semikhatsky.
Source/WebCore:
The patch adds instrumentation to the following classes:
- RenderStyle
- StyleRareInheritedData
- StyleRareNonInheritedData
* bindings/js/ScriptWrappable.h:
* bindings/v8/ScriptWrappable.h:
* dom/MemoryInstrumentation.h:
(WebCore):
(WebCore::MemoryInstrumentation::OwningTraits::addObject):
(WebCore::MemoryInstrumentation::addInstrumentedObjectImpl):
(WebCore::MemoryInstrumentation::addObjectImpl):
* dom/Node.cpp:
(WebCore::Node::reportMemoryUsage):
* dom/Node.h:
(WebCore):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::reportMemoryUsage):
(WebCore):
* rendering/style/RenderStyle.h:
(WebCore):
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::reportMemoryUsage):
(WebCore):
* rendering/style/StyleRareInheritedData.h:
(WebCore):
(StyleRareInheritedData):
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::reportMemoryUsage):
(WebCore):
* rendering/style/StyleRareNonInheritedData.h:
(WebCore):
(StyleRareNonInheritedData):
Source/WebKit/chromium:
Add a test for DataRef<T> wrapped member instrumentation.
* tests/MemoryInstrumentationTest.cpp:
(WebCore::InstrumentedRefPtr::create):
(WebCore::TEST):
(WebCore):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124452
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 14:10:10 +0000 (14:10 +0000)]
Web Inspector: rename host->origin in the inspector protocol DOMStorage entry
https://bugs.webkit.org/show_bug.cgi?id=92979
Patch by Alexei Filippov <alexeif@chromium.org> on 2012-08-02
Reviewed by Yury Semikhatsky.
* inspector/Inspector.json:
* inspector/InspectorDOMStorageResource.cpp:
(WebCore::InspectorDOMStorageResource::bind):
* inspector/front-end/DOMStorage.js:
(WebInspector.DOMStorageDispatcher.prototype.addDOMStorage):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124451
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 13:45:41 +0000 (13:45 +0000)]
[EFL] Change return value of battey level
https://bugs.webkit.org/show_bug.cgi?id=92964
Patch by Kihong Kwon <kihong.kwon@samsung.com> on 2012-08-02
Reviewed by Simon Hausmann.
Change return value of navigator.webkitBattery.level from 0~100 to 0~1.0.
Battery level have to returns 0~1.0 by Battery Status API spec.
* platform/efl/BatteryProviderEfl.cpp:
(WebCore::BatteryProviderEfl::setBatteryClient):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124450
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrobinson@webkit.org [Thu, 2 Aug 2012 13:45:07 +0000 (13:45 +0000)]
[GTK] When farstream is not present do not enable MediaStream
Reviewed by Philippe Normand.
When farstream libraries are no present, simply do not build MediaStream
support.
* configure.ac:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124449
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
apavlov@chromium.org [Thu, 2 Aug 2012 13:17:06 +0000 (13:17 +0000)]
[Chromium] Unreviewed, mark accessibility/loading-iframe-updates-axtree.html as crashy on Mac.
* platform/chromium/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124448
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 13:13:29 +0000 (13:13 +0000)]
[Qt] MSVC specific buildfix for DRT.
https://bugs.webkit.org/show_bug.cgi?id=92978
Patch by Zoltan Arvai <zarvai@inf.u-szeged.hu> on 2012-08-02
Reviewed by Simon Hausmann.
DumpRenderTree/qt subdirectory is missing from generated makefile under MSVC build, need to be added to the pro file.
* DumpRenderTree/qt/DumpRenderTree.pro:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124447
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zandobersek@gmail.com [Thu, 2 Aug 2012 13:13:20 +0000 (13:13 +0000)]
Unreviewed GTK gardening.
Updating baselines for fast/box-sizing/box-sizing.html after r124347
and fast/forms/basic-selects.html after r124416.
Also fix a bogus TestExpectations entry so fast/css/widget-region-parser.html
is properly skipped.
* platform/gtk/TestExpectations:
* platform/gtk/fast/box-sizing/box-sizing-expected.png:
* platform/gtk/fast/box-sizing/box-sizing-expected.txt: Added.
* platform/gtk/fast/forms/basic-selects-expected.png:
* platform/gtk/fast/forms/basic-selects-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124446
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 12:56:16 +0000 (12:56 +0000)]
[EFL][WK2] WTR is failing when X server is not running
https://bugs.webkit.org/show_bug.cgi?id=92719
Patch by Alexander Shalamov <alexander.shalamov@intel.com> on 2012-08-02
Reviewed by Hajime Morita.
EFL's WebKitTestRunner doesn't execute tests when X server is not running.
This patch fixes the problem by checking environment variable before ecore x initialization.
* Scripts/webkitpy/layout_tests/port/efl.py:
(EflPort.setup_environ_for_server):
* WebKitTestRunner/efl/main.cpp:
(main):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124445
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
yurys@chromium.org [Thu, 2 Aug 2012 12:52:27 +0000 (12:52 +0000)]
Web Inspector: remove extraObjectSize parameter from MemoryClassInfo constructor
https://bugs.webkit.org/show_bug.cgi?id=92981
Reviewed by Alexander Pavlov.
Refactored MemoryInstrumentation to get rid of extraSize parameter from
MemoryObjectInfo constructor and MemoryObjectInfo::reportObjectInfo. The
extra size should always be reported as an object that occupies these extra
bytes.
* dom/ElementAttributeData.cpp:
(WebCore::ElementAttributeData::reportMemoryUsage):
(WebCore):
* dom/ElementAttributeData.h:
(WebCore):
(ElementAttributeData):
* dom/MemoryInstrumentation.h:
(WebCore::MemoryObjectInfo::reportObjectInfo):
(WebCore::MemoryClassInfo::MemoryClassInfo):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124444
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 12:33:47 +0000 (12:33 +0000)]
Unreviewed, rolling out r124439.
http://trac.webkit.org/changeset/124439
https://bugs.webkit.org/show_bug.cgi?id=92980
Broke Chromium Mac Release compile (Requested by apavlov on
#webkit).
Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-08-02
Source/Platform:
* Platform.gypi:
* chromium/public/Platform.h:
(WebKit):
(Platform):
(WebKit::Platform::createPeerConnectionHandler):
* chromium/public/WebRTCPeerConnectionHandler.h: Removed.
* chromium/public/WebRTCPeerConnectionHandlerClient.h: Removed.
Source/WebCore:
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::create):
(WebCore::RTCPeerConnection::RTCPeerConnection):
* Modules/mediastream/RTCPeerConnection.h:
* WebCore.gypi:
* platform/mediastream/RTCPeerConnectionHandler.cpp: Removed.
* platform/mediastream/RTCPeerConnectionHandler.h: Removed.
* platform/mediastream/RTCPeerConnectionHandlerClient.h: Removed.
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp: Removed.
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h: Removed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124443
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 2 Aug 2012 12:26:13 +0000 (12:26 +0000)]
[Qt] Uninitialized memory read in QObject runtime bridge
https://bugs.webkit.org/show_bug.cgi?id=92972
Patch by Simon Hausmann <simon.hausmann@nokia.com> on 2012-08-02
Reviewed by Kenneth Rohde Christiansen.
The vargs array has an initial size of 0 and when calling a method with no return value
and no arguments, vargs remains empty. Therefore unconditional access to vargs[0] results
in access to uninitialized memory.
No new tests, covered by valgrind in existing qobjectbridge tests.
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::QtRuntimeMetaMethod::call):
* bridge/qt/qt_runtime_qt4.cpp:
(JSC::Bindings::QtRuntimeMetaMethod::call):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124442
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zherczeg@webkit.org [Thu, 2 Aug 2012 12:03:13 +0000 (12:03 +0000)]
Alignment issue for readTime in PluginDatabase.cpp
https://bugs.webkit.org/show_bug.cgi?id=92746
Reviewed by Simon Hausmann.
When the byte stream is written, nothing guarantees that
the time_t data is aligned. This issue caused alignment
traps on ARM CPUs.
No new tests. Covered by existing tests.
* plugins/PluginDatabase.cpp:
(WebCore::readTime):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124441
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kkristof@inf.u-szeged.hu [Thu, 2 Aug 2012 12:02:22 +0000 (12:02 +0000)]
[Qt] Unreviewed gardening. Skip a failing test.
https://bugs.webkit.org/show_bug.cgi?id=92963.
Patch by Ádám Kallai <kadam@inf.u-szeged.hu> on 2012-08-02
* platform/qt-5.0-wk2/Skipped:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124440
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
tommyw@google.com [Thu, 2 Aug 2012 11:43:00 +0000 (11:43 +0000)]
MediaStream API: Add RTCPeerConnectionHandler infrastructure
https://bugs.webkit.org/show_bug.cgi?id=92866
Reviewed by Kentaro Hara.
Introducing RTCPeerConnectionHandler & RTCPeerConnectionHandlerClient,
together with the Chromium WebKit interface, following the pattern of
the previous PeerConnection00Handler but with the optimizations from MediaStreamCenter.
Source/Platform:
* Platform.gypi:
* chromium/public/Platform.h:
(WebKit):
(Platform):
(WebKit::Platform::createRTCPeerConnectionHandler):
* chromium/public/WebRTCPeerConnectionHandler.h: Added.
(WebKit):
(WebRTCPeerConnectionHandler):
(WebKit::WebRTCPeerConnectionHandler::~WebRTCPeerConnectionHandler):
* chromium/public/WebRTCPeerConnectionHandlerClient.h: Added.
(WebKit):
(WebRTCPeerConnectionHandlerClient):
(WebKit::WebRTCPeerConnectionHandlerClient::~WebRTCPeerConnectionHandlerClient):
Source/WebCore:
Not yet testable due to not enough code landed.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::create):
(WebCore::RTCPeerConnection::RTCPeerConnection):
* Modules/mediastream/RTCPeerConnection.h:
(RTCPeerConnection):
* WebCore.gypi:
* platform/mediastream/RTCPeerConnectionHandler.cpp: Added.
(WebCore):
(RTCPeerConnectionHandlerDummy):
(WebCore::RTCPeerConnectionHandler::create):
(WebCore::RTCPeerConnectionHandlerDummy::RTCPeerConnectionHandlerDummy):
(WebCore::RTCPeerConnectionHandlerDummy::~RTCPeerConnectionHandlerDummy):
(WebCore::RTCPeerConnectionHandlerDummy::initialize):
* platform/mediastream/RTCPeerConnectionHandler.h: Copied from Source/WebCore/Modules/mediastream/RTCPeerConnection.h.
(WebCore):
(RTCPeerConnectionHandler):
(WebCore::RTCPeerConnectionHandler::~RTCPeerConnectionHandler):
(WebCore::RTCPeerConnectionHandler::RTCPeerConnectionHandler):
* platform/mediastream/RTCPeerConnectionHandlerClient.h: Copied from Source/WebCore/Modules/mediastream/RTCPeerConnection.h.
(WebCore):
(RTCPeerConnectionHandlerClient):
(WebCore::RTCPeerConnectionHandlerClient::~RTCPeerConnectionHandlerClient):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp: Added.
(WebCore):
(WebCore::RTCPeerConnectionHandler::create):
(WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
(WebCore::RTCPeerConnectionHandlerChromium::~RTCPeerConnectionHandlerChromium):
(WebCore::RTCPeerConnectionHandlerChromium::initialize):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h: Added.
(WebCore):
(RTCPeerConnectionHandlerChromium):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124439
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
apavlov@chromium.org [Thu, 2 Aug 2012 11:28:37 +0000 (11:28 +0000)]
[Chromium] Unreviewed, mark 3 404-related appcache tests as TEXT.
* platform/chromium/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124438
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
keishi@webkit.org [Thu, 2 Aug 2012 11:02:22 +0000 (11:02 +0000)]
[Chromium] Rebaseline test color-suggestion-picker-with-scrollbar-appearance.html
Unreviewed.
* platform/chromium-linux/platform/chromium/fast/forms/color/color-suggestion-picker-with-scrollbar-appearance-expected.png: Added.
* platform/chromium-mac-snowleopard/platform/chromium/fast/forms/color/color-suggestion-picker-with-scrollbar-appearance-expected.png: Added.
* platform/chromium-win/platform/chromium/fast/forms/color/color-suggestion-picker-with-scrollbar-appearance-expected.png: Added.
* platform/chromium/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124437
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
apavlov@chromium.org [Thu, 2 Aug 2012 10:56:14 +0000 (10:56 +0000)]
[Chromium] Unreviewed, update expectations for 6 failing http/tests/appcache/abort-cache-on*.html tests.
* platform/chromium/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124436
268f45cc-cd09-0410-ab3c-
d52691b4dbfc