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: http://svn.webkit.org/repository/webkit/trunk@124488 268f45cc-cd09-0410-ab3c-d52691b4dbfc
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: http://svn.webkit.org/repository/webkit/trunk@124489 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[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: http://svn.webkit.org/repository/webkit/trunk@124490 268f45cc-cd09-0410-ab3c-d52691b4dbfc
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: http://svn.webkit.org/repository/webkit/trunk@124491 268f45cc-cd09-0410-ab3c-d52691b4dbfc
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: http://svn.webkit.org/repository/webkit/trunk@124492 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Turn on tests for the mac-ews, for realz this time.

* Scripts/webkitpy/tool/commands/earlywarningsystem.py:
(MacEWS):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@124493 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[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: http://svn.webkit.org/repository/webkit/trunk@124495 268f45cc-cd09-0410-ab3c-d52691b4dbfc
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: http://svn.webkit.org/repository/webkit/trunk@124496 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, build fix for DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE).

* dfg/DFGStructureCheckHoistingPhase.cpp:
(JSC::DFG::StructureCheckHoistingPhase::run):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@124497 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[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: http://svn.webkit.org/repository/webkit/trunk@124498 268f45cc-cd09-0410-ab3c-d52691b4dbfc
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: http://svn.webkit.org/repository/webkit/trunk@124499 268f45cc-cd09-0410-ab3c-d52691b4dbfc
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: http://svn.webkit.org/repository/webkit/trunk@124501 268f45cc-cd09-0410-ab3c-d52691b4dbfc
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: http://svn.webkit.org/repository/webkit/trunk@124503 268f45cc-cd09-0410-ab3c-d52691b4dbfc
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: http://svn.webkit.org/repository/webkit/trunk@124504 268f45cc-cd09-0410-ab3c-d52691b4dbfc
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: http://svn.webkit.org/repository/webkit/trunk@124506 268f45cc-cd09-0410-ab3c-d52691b4dbfc
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: http://svn.webkit.org/repository/webkit/trunk@124510 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[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: http://svn.webkit.org/repository/webkit/trunk@124511 268f45cc-cd09-0410-ab3c-d52691b4dbfc
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: http://svn.webkit.org/repository/webkit/trunk@124512 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[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: http://svn.webkit.org/repository/webkit/trunk@124513 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Let XCode have its own away and also sort the files.

* WebCore.xcodeproj/project.pbxproj:


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