[chromium] Impl scrolling crashes when the renderer's initialization failed
https://bugs.webkit.org/show_bug.cgi?id=94232

Reviewed by James Robinson.

Source/WebCore:

CCLayerTreeHostImpl::calculateRenderSurfaceLayerList should not be
called when there is no renderer present or it will crash.

Chromium bug: crbug.com/125482

Tests: CCLayerTreeHostImplTest.scrollWithoutRenderer

* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
(WebCore::CCLayerTreeHostImpl::ensureRenderSurfaceLayerList):

Source/WebKit/chromium:

Also updated the finishAllRenderingAfterContextLost to properly fail
renderer initialization.

* tests/CCLayerTreeHostImplTest.cpp:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125799 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Schedule texture uploads based on hard-coded timer and vsync.
https://bugs.webkit.org/show_bug.cgi?id=84281

Patch by David Reveman <reveman@chromium.org> on 2012-08-16
Reviewed by James Robinson.

Source/WebCore:

Improve interaction between vsync and texture uploads by performing
uploads in smaller batches and use a hard-coded timer to emulate
upload completion. This greatly reduces the chance of the compositor
missing a vsync due to being busy with texture uploads.

The CCScheduler client is now given a time limit when told to update
more resources. This time limit is passed to an instance of the
CCTextureUpdateController class, which is responsible for performing
texture updates until the limit is reached.

Unit tests: CCSchedulerTest.RequestCommit
            CCTextureUpdateControllerTest.UpdateMoreTextures
            CCTextureUpdateControllerTest.HasMoreUpdates

* platform/graphics/chromium/cc/CCFrameRateController.cpp:
(WebCore::CCFrameRateController::nextTickTime):
(WebCore):
* platform/graphics/chromium/cc/CCFrameRateController.h:
(CCFrameRateController):
* platform/graphics/chromium/cc/CCScheduler.cpp:
(WebCore::CCScheduler::processScheduledActions):
* platform/graphics/chromium/cc/CCScheduler.h:
(CCSchedulerClient):
* platform/graphics/chromium/cc/CCTextureUpdateController.cpp:
(WebCore::CCTextureUpdateController::maxPartialTextureUpdates):
(WebCore::CCTextureUpdateController::CCTextureUpdateController):
(WebCore::CCTextureUpdateController::updateMoreTextures):
(WebCore):
(WebCore::CCTextureUpdateController::onTimerFired):
(WebCore::CCTextureUpdateController::monotonicTimeNow):
(WebCore::CCTextureUpdateController::updateMoreTexturesTime):
(WebCore::CCTextureUpdateController::updateMoreTexturesSize):
(WebCore::CCTextureUpdateController::updateMoreTexturesIfEnoughTimeRemaining):
(WebCore::CCTextureUpdateController::updateMoreTexturesNow):
* platform/graphics/chromium/cc/CCTextureUpdateController.h:
(WebCore::CCTextureUpdateController::create):
(CCTextureUpdateController):
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
(WebCore::CCThreadProxy::scheduledActionUpdateMoreResources):
* platform/graphics/chromium/cc/CCThreadProxy.h:

Source/WebKit/chromium:

* tests/CCSchedulerTest.cpp:
(WebKitTests::TEST):
* tests/CCSchedulerTestCommon.h:
(WebKitTests::FakeCCTimeSource::FakeCCTimeSource):
(WebKitTests::FakeCCTimeSource::setNextTickTime):
(FakeCCTimeSource):
* tests/CCTextureUpdateControllerTest.cpp:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125800 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Typo in old-run-webkit-tests script from https://bugs.webkit.org/show_bug.cgi?id=93904.
https://bugs.webkit.org/show_bug.cgi?id=94228

Patch by Roger Fong <roger_fong@apple.com> on 2012-08-16
Reviewed by Tim Horton.

I previously made the change but made a typo that causes the script not ignore mismatch ref tests.

* Scripts/old-run-webkit-tests:
(isUsedInReftest):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125801 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Avoid aliasing global symbol monotonicallyIncreasingTime().
https://bugs.webkit.org/show_bug.cgi?id=94233

Patch by David Reveman <reveman@chromium.org> on 2012-08-16
Reviewed by James Robinson.

Source/WebCore:

Rename virtual function CCDelayBasedTimeSource::monotonicallyIncreasingTime()
that exist for testing purposes to CCDelayBasedTimeSource::monotonicTimeNow().

No new tests.

* platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
(WebCore::CCDelayBasedTimeSource::setActive):
(WebCore::CCDelayBasedTimeSource::onTimerFired):
(WebCore::CCDelayBasedTimeSource::monotonicTimeNow):
* platform/graphics/chromium/cc/CCDelayBasedTimeSource.h:

Source/WebKit/chromium:

* tests/CCDelayBasedTimeSourceTest.cpp:
(WebKitTests::TEST):
* tests/CCFrameRateControllerTest.cpp:
(WebKitTests::TEST):
* tests/CCSchedulerTestCommon.h:
(WebKitTests::FakeCCDelayBasedTimeSource::setMonotonicTimeNow):
(WebKitTests::FakeCCDelayBasedTimeSource::FakeCCDelayBasedTimeSource):
(FakeCCDelayBasedTimeSource):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125802 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Reload valid page from Error Page keeps history ViewState and zoom.
https://bugs.webkit.org/show_bug.cgi?id=94123

Reviewed by Antonio Gomes.

Reviewed internally by Leo Yang, Jacky Jiang.
PR 178305

* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::setLoadState):Reset the scales and
the user scalable flag if we're reloading from an error page.
(BlackBerry::WebKit::WebPagePrivate::updateViewportSize): Don't update the
viewport size if we're still in the WebPagePrivate::init method.
(BlackBerry::WebKit::WebPagePrivate::zoomToInitialScaleOnLoad):
Properly set the shouldZoom flag if we're not going to restore the
view state.
* WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
(WebCore::FrameLoaderClientBlackBerry::FrameLoaderClientBlackBerry):
(WebCore::FrameLoaderClientBlackBerry::dispatchDidCommitLoad): Set the
ViewState's shouldSaveViewState flag if we're coming from an error page.
(WebCore::FrameLoaderClientBlackBerry::saveViewStateToItem): Set the
new member variable m_shouldRestoreViewState based on the ViewState's
shouldSaveViewState flag.
(WebCore::FrameLoaderClientBlackBerry::restoreViewState): Added early
return if m_shouldRestoreViewState is false.
* WebCoreSupport/FrameLoaderClientBlackBerry.h: Add new method to have
the client track whether we should restore the view state.
(WebCore::FrameLoaderClientBlackBerry::shouldRestoreViewState):
(FrameLoaderClientBlackBerry):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125803 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Changing Canvas2DLayerBridge to use SkDeferredCanvas's notification client API
https://bugs.webkit.org/show_bug.cgi?id=94234

Patch by Justin Novosad <junov@chromium.org> on 2012-08-16
Reviewed by James Robinson.

The existing DeviceContext API in skia's SkDeferredCanvas is being
deprecated in favor of the new NotificationClient interface, which is
designed to allow WebKit to control deferred canvas global memory
consumption.

No new tests: this patch does not fix any bug and does not add new
functionality. It is just a transition to a new skia interface.
Coverage is assured by existing tests.

* platform/graphics/chromium/Canvas2DLayerBridge.cpp:
(WebCore):
Removed the AcceleratedDeviceContext class completely and mixed it
into Canvas2DLayerBridge by inheriting
SkDeferredCanvas::NotificationClient
(WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
(WebCore::Canvas2DLayerBridge::deferredCanvas):
(WebCore::Canvas2DLayerBridge::prepareForDraw):
(WebCore::Canvas2DLayerBridge::skCanvas):
* platform/graphics/chromium/Canvas2DLayerBridge.h:
(Canvas2DLayerBridge):
* platform/graphics/skia/ImageBufferSkia.cpp:
Cleaning up unnecessary include of SkDeferredCanvas.h

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125804 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove StyleSheetContents::m_finalURL 
https://bugs.webkit.org/show_bug.cgi?id=94140

Reviewed by Andreas Kling.

It is equal (or empty in case of inline stylesheets) to the baseURL passed in CSSParserContext.
Removing it simplifies the constructors and the related code.

* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::createInline):
(WebCore::CSSStyleSheet::canAccessRules):
(WebCore::CSSStyleSheet::rules):
(WebCore::CSSStyleSheet::cssRules):

    - factor access check to a function
    - allow document always access rules of its inline stylesheets

* css/StyleRuleImport.cpp:
(WebCore::StyleRuleImport::setCSSStyleSheet):
(WebCore::StyleRuleImport::requestStyleSheet):
* css/StyleSheetContents.cpp:
(WebCore::StyleSheetContents::StyleSheetContents):
(WebCore::StyleSheetContents::parseAuthorStyleSheet):
* css/StyleSheetContents.h:
(WebCore::StyleSheetContents::create):
(WebCore::StyleSheetContents::originalURL):
(StyleSheetContents):
* dom/ProcessingInstruction.cpp:
(WebCore::ProcessingInstruction::setCSSStyleSheet):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::setCSSStyleSheet):
* inspector/InspectorStyleSheet.cpp:
(WebCore::fillMediaListChain):
(WebCore::InspectorStyleSheet::styleSheetURL):
* xml/XSLImportRule.cpp:
(WebCore::XSLImportRule::loadSheet):



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