summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/GraphicsLayerAndroid.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add call to parent to resync for webglVeluppillai Arulesan2013-01-201-0/+5
| | | | | | | | Adding call to resync the parent for webgl compositing (cherry-picked from commit 6da7f679dc33e74ab2d7e6045fbecdbb5a772d3a) Change-Id: Id96c44da10a62e0dc90938868877b295a4327153
* WebGL implementation for AndroidPierre-Antoine LaFayette2013-01-201-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implementation of WebGL in Android WebKit. Exposes a low level 3D graphics API based on OpenGL ES 2.0 to JavaScript. WebGL is not compiled by default. It can be enabled by setting ENABLE_WEBGL = true in your device BoardConfig.mk or directly in external/webkit/Android.mk. Includes runtime enablement through Browser Settings -> Labs menu. Enable WebGL debug logs and FPS timing with: adb shell setprop debug.webgl 1 Includes Cross-origin resource sharing support. Includes fixes for the following Khronos WebGL 1.0.1. tests: - premultiplyalpha-test.html - struct-nesting-exceeds-maximum.html - index-validation.html - context-attributes-alpha-depth-stencil-antialias.html - program-test.html - object-deletion-behaviour.html Squashed patches: ----------------------------------------------------------- WebGL implementation for Android Implementation of WebGL in Android WebKit. Exposes a low level 3D graphics API based on OpenGL ES 2.0 to JavaScript. WebGL is not compiled by default. It can be enabled by setting ENABLE_WEBGL = true in your device BoardConfig.mk or directly in external/webkit/Android.mk. It is also disabled by default (in WebSettings.cpp) as required by Khronos until it reaches 100% conformance. -- From: Anders Edenbrandt <anders.edenbrandt@sonyericsson.com> Date: Thu, 26 Jan 2012 11:48:41 +0100 WebGL bug fixes and updates Some updates: - stability fixes - image decoder - redesign of how the FBOs are used - other bug fixes -- From: Anders Edenbrandt <anders.edenbrandt@sonyericsson.com> Date: Tue, 31 Jan 2012 17:20:13 +0100 WebGL code cleanup and bug fixes -- From: Anders Edenbrandt <anders.edenbrandt@sonyericsson.com> Date: Thu Mar 15 10:15:33 2012 +0100 More improvements and bug fixes Updates: - cleaned up buffer handling, allowing for arbitrary number of buffers - removed rect from invalidation - removed screen update request from drawGL - releasing buffers when the browser is paused - added missing method 'slice' for typed arrays - fixed bug in bindFramebuffer https://www.codeaurora.org/gitweb/quic/la/?p=platform/external/webkit.git;a=commit;h=c72ff2aa562941d94ceb51ba685d60809ca882a6 Updates to fix some test failures in Khronos Conformance Test Suite: - Increase max identifier length in shaders to 256 - Add length check on uniforms and attributes - Add minimal support for compressed textures (that is, just return the correct error codes) - Add support for Uint8ClampedByteArray - Modify how error checking is done on framebuffer operations - Activate the GL_OES_packed_depth_stencil extension - Activate the GL_OES_texture_float extension https://www.codeaurora.org/gitweb/quic/la/?p=platform/external/webkit.git;a=commit;h=5bfe05848c12a2894697fbb503cfa79981eb96bd Fix WebGL 1.0.1 premultiplyalpha-test conformance test Fixing bug with toDataURL when called against a Canvas in which WebGL content is being rendered and make sure paintRenderingResultsToImageData isn't used for the premultiplied case. ihttps://www.codeaurora.org/gitweb/quic/la/?p=platform/external/webkit.git;a=commit;h=5834a1e00f89d898a7a0039d47916b196e40a2c8 Update ANGLE to r1009 to fix WebGL 1.0.1 conformance test Fixes struct-nesting-exceeds-maximum Khronos WebGL conformance test. https://www.codeaurora.org/gitweb/quic/la/?p=platform/external/webkit.git;a=commit;h=ae2392db6360b41a5717f3770a9e63b1bcea45d6 vertexAttribPointer needs to reject large negative offsets https://bugs.webkit.org/show_bug.cgi?id=85117 Reviewed by Kenneth Russell. Source/WebCore: * html/canvas/WebGLRenderingContext.cpp: Use long long for GLsizeiptr and GLintptr (WebCore): (WebCore::WebGLRenderingContext::bufferData): (WebCore::WebGLRenderingContext::bufferSubData): (WebCore::WebGLRenderingContext::drawElements): (WebCore::WebGLRenderingContext::getVertexAttribOffset): (WebCore::WebGLRenderingContext::vertexAttribPointer): * html/canvas/WebGLRenderingContext.h: Ditto (WebGLRenderingContext): * html/canvas/WebGLRenderingContext.idl: Ditto LayoutTests: * fast/canvas/webgl/index-validation-expected.txt: * fast/canvas/webgl/index-validation.html: Add a test case for large negative offset. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@116374 268f45cc-cd09-0410-ab3c-d52691b4dbfc https://www.codeaurora.org/gitweb/quic/la/?p=platform/external/webkit.git;a=commit;h=b3a02a0942a0e2c44d23961382145fad6016b2ef Fix for context-attributes-alpha-depth-stencil-antialias Support for alpha, depth and stencil to fix WebGL Khronos 1.0.1 conformance test. Report back that antialiasing is not supported on our platform. https://www.codeaurora.org/gitweb/quic/la/?p=platform/external/webkit.git;a=commit;h=22e98195ac73e7e12a59d5b9a42dfc4e2252b475 WebGLRenderingContext should defer caching program info https://bugs.webkit.org/show_bug.cgi?id=83513 Reviewed by Kenneth Russell. * html/canvas/WebGLProgram.cpp: (WebCore::WebGLProgram::WebGLProgram): (WebCore::WebGLProgram::numActiveAttribLocations): call cacheInfoIfNeeded(); (WebCore::WebGLProgram::getActiveAttribLocation): Ditto. (WebCore::WebGLProgram::isUsingVertexAttrib0): Ditto. (WebCore::WebGLProgram::getLinkStatus): Ditto. (WebCore): (WebCore::WebGLProgram::cacheActiveAttribLocations): (WebCore::WebGLProgram::cacheInfoIfNeeded): Cache link status, active attire locations, etc if needed. (WebCore::WebGLProgram::increaseLinkCount): also invalidate cached info. * html/canvas/WebGLProgram.h: (WebGLProgram): * html/canvas/WebGLRenderingContext.cpp: (WebCore): (WebCore::WebGLRenderingContext::linkProgram): Do not cache program info immediately. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@113915 268f45cc-cd09-0410-ab3c-d52691b4dbfc https://www.codeaurora.org/gitweb/quic/la/?p=platform/external/webkit.git;a=commit;h=66bc9c1b9eb5151b1b236199d0eeb17df0557b47 Runtime enablement of WebGL Hooks up with the Java side to enable/disable WebGL through the debug menu. https://www.codeaurora.org/gitweb/quic/la/?p=platform/external/webkit.git;a=commit;h=75aab57859de45a0aaec5a7cad41a12111e9a82e Support the usage of CORS for WebGL and the 2D canvas Factor CORS request preparation out of DocumentThreadableLoader https://bugs.webkit.org/show_bug.cgi?id=61209 2011-05-20 Adam Barth <abarth@webkit.org> Reviewed by Alexey Proskuryakov. Factor CORS request preparation out of DocumentThreadableLoader https://bugs.webkit.org/show_bug.cgi?id=61209 DocumentThreadableLoader has two jobs: 1) Proxy loads between threads. 2) Run the CORS state machine. This patch begins the work of separating those concerns, allowing CORS to be used elsewhere in the loading pipeline. In particular, this patch moves knowledge of how to prepare CORS requests out of DocumentThreadableLoder. * loader/CrossOriginAccessControl.cpp: (WebCore::isOnAccessControlSimpleRequestHeaderWhitelist): (WebCore::updateRequestForAccessControl): (WebCore::createAccessControlPreflightRequest): * loader/CrossOriginAccessControl.h: * loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::DocumentThreadableLoader): (WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest): (WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequestWithPreflight): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@86980 268f45cc-cd09-0410-ab3c-d52691b4dbfc Add rel type prerender to distinguish prerender from prefetch https://bugs.webkit.org/show_bug.cgi?id=61079 2011-05-21 Gavin Peters <gavinp@chromium.org> Reviewed by Adam Barth. Add rel type prerender to distinguish prerender from prefetch https://bugs.webkit.org/show_bug.cgi?id=61079 Chrome right now uses <link rel=prefetch ...> for one of two things, to warm the cache in the same way as firefox, or to launch a speculative rendering of a web page, for faster "loading" when the user navigates to it. This new rel type will let us distinguish the two cases; the rel type prerender isn't used on the web today, but the Google Web Search example prerendering application is ready to experiment with it. * fast/dom/HTMLLinkElement/prerender-expected.txt: Added. * fast/dom/HTMLLinkElement/prerender.html: Added. * platform/gtk/Skipped: * platform/mac/Skipped: * platform/qt/Skipped: * platform/win/Skipped: 2011-05-21 Gavin Peters <gavinp@chromium.org> Reviewed by Adam Barth. Add rel type prerender to distinguish prerender from prefetch https://bugs.webkit.org/show_bug.cgi?id=61079 Chrome right now uses <link rel=prefetch ...> for one of two things, to warm the cache in the same way as firefox, or to launch a speculative rendering of a web page, for faster "loading" when the user navigates to it. This new rel type will let us distinguish the two cases; the rel type prerender isn't used on the web today, but the Google Web Search example prerendering application is ready to experiment with it. Test: fast/dom/HTMLLinkElement/prerender.html * html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::tokenizeRelAttribute): (WebCore::HTMLLinkElement::process): * html/HTMLLinkElement.h: (WebCore::HTMLLinkElement::RelAttribute::RelAttribute): * loader/cache/CachedResource.cpp: (WebCore::defaultPriorityForResourceType): * loader/cache/CachedResource.h: (WebCore::CachedResource::isLinkResource): * loader/cache/CachedResourceLoader.cpp: (WebCore::createResource): (WebCore::CachedResourceLoader::requestLinkResource): (WebCore::CachedResourceLoader::canRequest): * loader/cache/CachedResourceLoader.h: * loader/cache/CachedResourceRequest.cpp: (WebCore::cachedResourceTypeToTargetType): (WebCore::CachedResourceRequest::load): * platform/network/ResourceRequestBase.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@87020 268f45cc-cd09-0410-ab3c-d52691b4dbfc Make CachedResource take a ResourceRequest instead of just a url string. 2011-05-24 Nate Chapin <japhet@chromium.org> Reviewed by Adam Barth. Change CachedResources to take a ResourceRequest instead of a url in their constructors and provide a very minimal set of cases for avoiding reusing a CachedResource. The ResourceRequest part of this change requires pushing responsibility for calling Document::completeURL() to the caller, instead of CachedResourceLoader, since ResourceRequest ASSERTs if it is constructed with an invalid url. https://bugs.webkit.org/show_bug.cgi?id=61318 Refactor, no new tests. * css/CSSFontSelector.cpp: (WebCore::CSSFontSelector::addFontFaceRule): * css/CSSImageValue.cpp: (WebCore::CSSImageValue::cachedImage): * css/CSSImportRule.cpp: (WebCore::CSSImportRule::insertedIntoParent): * dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::checkStyleSheet): * dom/ScriptElement.cpp: (WebCore::ScriptElement::requestScript): * html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::process): * loader/ImageLoader.cpp: (WebCore::ImageLoader::updateFromElement): * loader/cache/CachedCSSStyleSheet.cpp: (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet): (WebCore::CachedCSSStyleSheet::didAddClient): (WebCore::CachedCSSStyleSheet::checkNotify): * loader/cache/CachedCSSStyleSheet.h: * loader/cache/CachedFont.cpp: (WebCore::CachedFont::CachedFont): * loader/cache/CachedFont.h: * loader/cache/CachedImage.cpp: (WebCore::CachedImage::CachedImage): (WebCore::CachedImage::checkShouldPaintBrokenImage): * loader/cache/CachedImage.h: * loader/cache/CachedResource.cpp: (WebCore::CachedResource::CachedResource): (WebCore::reuseRequest): (WebCore::CachedResource::allowReuseOfRequest): (WebCore::CachedResource::removeClient): (WebCore::CachedResource::canUseCacheValidator): * loader/cache/CachedResource.h: (WebCore::CachedResource::resourceRequest): (WebCore::CachedResource::url): * loader/cache/CachedResourceLoader.cpp: * loader/cache/CachedResourceLoader.h: * loader/cache/CachedResourceRequest.cpp: (WebCore::CachedResourceRequest::load): * loader/cache/CachedScript.cpp: (WebCore::CachedScript::CachedScript): * loader/cache/CachedScript.h: * loader/cache/CachedXSLStyleSheet.cpp: (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet): (WebCore::CachedXSLStyleSheet::didAddClient): (WebCore::CachedXSLStyleSheet::checkNotify): * loader/cache/CachedXSLStyleSheet.h: * svg/SVGFEImageElement.cpp: (WebCore::SVGFEImageElement::requestImageResource): * svg/SVGFontFaceUriElement.cpp: (WebCore::SVGFontFaceUriElement::loadFont): * xml/XSLImportRule.cpp: (WebCore::XSLImportRule::loadSheet): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@87239 268f45cc-cd09-0410-ab3c-d52691b4dbfc Support cross-origin property for images 2011-05-26 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Support cross-origin property for images https://bugs.webkit.org/show_bug.cgi?id=61015 Test various cases involving CORS requests and canvas tainting. * http/tests/security/canvas-remote-read-remote-image-allowed-expected.txt: Added. * http/tests/security/canvas-remote-read-remote-image-allowed-with-credentials-expected.txt: Added. * http/tests/security/canvas-remote-read-remote-image-allowed-with-credentials.html: Added. * http/tests/security/canvas-remote-read-remote-image-allowed.html: Added. * http/tests/security/canvas-remote-read-remote-image-blocked-no-crossorigin-expected.txt: Added. * http/tests/security/canvas-remote-read-remote-image-blocked-no-crossorigin.html: Added. * http/tests/security/resources/abe-allow-credentials.php: Added. * http/tests/security/resources/abe-allow-star.php: Added. 2011-05-26 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. Support cross-origin property for images https://bugs.webkit.org/show_bug.cgi?id=61015 This patch add support for the crossorigin attribute of images and teaches 2D canvas to respect that flag and not taint a canvas if the image drawn on the canvas is allowed by CORS. While I was editing this code, I couldn't resist a couple touch-up changes. Tests: http/tests/security/canvas-remote-read-remote-image-allowed-with-credentials.html http/tests/security/canvas-remote-read-remote-image-allowed.html http/tests/security/canvas-remote-read-remote-image-blocked-no-crossorigin.html * html/HTMLAttributeNames.in: * html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::securityOrigin): * html/HTMLCanvasElement.h: * html/HTMLImageElement.idl: * html/canvas/CanvasRenderingContext.cpp: (WebCore::CanvasRenderingContext::checkOrigin): * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::createPattern): * loader/ImageLoader.cpp: (WebCore::ImageLoader::updateFromElement): * loader/cache/CachedResource.cpp: (WebCore::CachedResource::passesAccessControlCheck): * loader/cache/CachedResource.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@87473 268f45cc-cd09-0410-ab3c-d52691b4dbfc HTMLVideoElement::currentSrc() should return a KURL 2011-05-27 Adam Barth <abarth@webkit.org> Reviewed by Eric Seidel. HTMLVideoElement::currentSrc() should return a KURL https://bugs.webkit.org/show_bug.cgi?id=61578 I suspect we got into this mess because the author of this code didn't know about the URL attribute in WebKit IDL, which is super useful! Bad news: The line of code in question seems to have another bug, which I've documented in a FIXME. Let the yak shaving continue! * html/HTMLMediaElement.cpp: (WebCore::urlForLogging): (WebCore::HTMLMediaElement::loadResource): (WebCore::HTMLMediaElement::isSafeToLoadURL): (WebCore::HTMLMediaElement::selectNextSourceChild): (WebCore::HTMLMediaElement::getPluginProxyParams): * html/HTMLMediaElement.h: (WebCore::HTMLMediaElement::currentSrc): (WebCore::HTMLMediaElement::currentURL): * html/canvas/CanvasRenderingContext.cpp: (WebCore::CanvasRenderingContext::checkOrigin): * rendering/HitTestResult.cpp: (WebCore::HitTestResult::absoluteMediaURL): - This complete URL call was unnecessary because currentSrc is already absolute. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@87539 268f45cc-cd09-0410-ab3c-d52691b4dbfc Disallow use of cross-domain media (images, video) in WebGL 2011-06-09 Kenneth Russell <kbr@google.com> Reviewed by Adam Barth. Disallow use of cross-domain media (images, video) in WebGL https://bugs.webkit.org/show_bug.cgi?id=62257 Updated WebGL implementation to track recent spec updates in this area. Tests: http/tests/security/webgl-remote-read-remote-image-allowed-with-credentials.html http/tests/security/webgl-remote-read-remote-image-allowed.html http/tests/security/webgl-remote-read-remote-image-blocked-no-crossorigin.html * html/canvas/CanvasRenderingContext.cpp: (WebCore::CanvasRenderingContext::wouldTaintOrigin): (WebCore::CanvasRenderingContext::checkOrigin): * html/canvas/CanvasRenderingContext.h: (WebCore::CanvasRenderingContext::checkOrigin): * html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::readPixels): (WebCore::WebGLRenderingContext::texImage2D): (WebCore::WebGLRenderingContext::videoFrameToImage): (WebCore::WebGLRenderingContext::texSubImage2D): * html/canvas/WebGLRenderingContext.h: 2011-06-09 Kenneth Russell <kbr@google.com> Reviewed by Adam Barth. Disallow use of cross-domain media (images, video) in WebGL https://bugs.webkit.org/show_bug.cgi?id=62257 Updated origin-clean-conformance.html to track upstream version in Khronos repository. Added new layout tests mirroring those added in bug 61015 which verify that new CORS support for images is working in the context of WebGL. Verified new tests in WebKit and Chromium. Skipped tests on platforms where WebGL is disabled. * http/tests/canvas/webgl/origin-clean-conformance-expected.txt: * http/tests/canvas/webgl/origin-clean-conformance.html: * http/tests/security/webgl-remote-read-remote-image-allowed-expected.txt: Added. * http/tests/security/webgl-remote-read-remote-image-allowed-with-credentials-expected.txt: Added. * http/tests/security/webgl-remote-read-remote-image-allowed-with-credentials.html: Added. * http/tests/security/webgl-remote-read-remote-image-allowed.html: Added. * http/tests/security/webgl-remote-read-remote-image-blocked-no-crossorigin-expected.txt: Added. * http/tests/security/webgl-remote-read-remote-image-blocked-no-crossorigin.html: Added. * platform/gtk/Skipped: * platform/mac-leopard/Skipped: * platform/mac-wk2/Skipped: * platform/qt/Skipped: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@88489 268f45cc-cd09-0410-ab3c-d52691b4dbfc https://www.codeaurora.org/gitweb/quic/la/?p=platform/external/webkit.git;a=commit;h=0ddd7c1d91c08fbee6c99b79fa9971a7ac914384 Runtime enablement of WebGL logs Allows enabling WebGL method level logging using: adb shell setprop debug.webgl 1 https://www.codeaurora.org/gitweb/quic/la/?p=platform/external/webkit.git;a=commit;h=307d4a2b5b20f2609497ceaea1eca2e29a8a781f Adding WebGL FPS timing to logs Samples WebGL average FPS every 15 frames and outputs to WebGL debug log. TODO: Add setting to browser debug settings that overlays FPS on web pages. Postpone deleteRenderbuffer/deleteTexture until all framebuffer attachment points are removed. https://bugs.webkit.org/show_bug.cgi?id=74741 Reviewed by Kenneth Russell. Source/WebCore: Use WebGLObject's attachment count mechanism to track if a renderbuffer/texture is still attached to framebuffers, and if its deletion should be delated or not. * html/canvas/WebGLFramebuffer.cpp: (WebCore::WebGLFramebuffer::setAttachmentForBoundFramebuffer): (WebCore::WebGLFramebuffer::getAttachment): (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer): (WebCore::WebGLFramebuffer::deleteObjectImpl): (WebCore::WebGLFramebuffer::isBound): * html/canvas/WebGLFramebuffer.h: LayoutTests: * fast/canvas/webgl/object-deletion-behaviour-expected.txt: * fast/canvas/webgl/object-deletion-behaviour.html: synced with khronos side. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@103272 268f45cc-cd09-0410-ab3c-d52691b4dbfc https://www.codeaurora.org/gitweb/quic/la/?p=platform/external/webkit.git;a=commit;h=9def386340c74f2a745fb041b1cb11daa30d1a82 ----------------------------------------------------------- (cherry-picked from commit 6d9d732ff06a6b265d02b18d7034068a68ef0fde) Conflicts: Android.mk Source/WebCore/ChangeLog Change-Id: I3bbf993fe5a3d6cea53e019c8fa3912ecd2bd429
* Prevent fixed background layers for iframesChris Craik2012-10-021-0/+2
| | | | | | | | bug:7271856 Path was untested/broken Change-Id: I053cb0255665b57b89524debbad9f78286ba9a37
* Paint into the right PicturePileJohn Reck2012-09-131-1/+1
| | | | | | | Bug: 7163457 Oops Change-Id: I08d25259810faa3983e6f84165b5ae9f286ece3f
* Support partial invals on layersJohn Reck2012-08-171-28/+21
| | | | Change-Id: Iab18e8b5e2f0e37c380c8a15e51255121c3b1966
* Paint with requested size instead of layer sizeChris Craik2012-08-091-1/+1
| | | | | bug:6925835 Change-Id: Idaf37156cd0c42f59151dc2dca95acfef542d312
* Don't attach empty PicturePile content to layerChris Craik2012-07-231-1/+2
| | | | | | | | This fixes a frequent warning that was occurring due to empty-content layers being painted in merged layers: "Warning: painting PicturePile without content!" Change-Id: I71dbc3cdf1adbbcdd15c833add753cdd06cfcd4f
* Fix crashes -- we were resetting a potentiallyNicolas Roard2012-07-181-4/+4
| | | | | | | used PicturePile. bug:6835416 Change-Id: I7b66d9a6b5bea7196181e2a6dfcecef33d4996d0
* Fix crashes -- we were resetting a potentiallyNicolas Roard2012-07-181-16/+9
| | | | | | | used PicturePile. bug:6835416 Change-Id: I5d810af206e111cfb7645e53d11f1aa6b35b313e
* Use PicturePile in layersNicolas Roard2012-07-171-27/+23
| | | | Change-Id: I68b4c303b59fd4127c83e9ccb1d43ed630e21253
* Add detailed tracing to tile paintingChris Craik2012-06-131-0/+1
| | | | | bug:6653638 Change-Id: I839917feb1803bc1f4ace5aa2367067024a18706
* Fix for wrong positioningNicolas Roard2012-05-291-1/+1
| | | | | bug:6560078 Change-Id: I1ef7b3e6398f1cb9a80027a6917d9a557deb8c6f
* Compute scroll limits correctlyJohn Reck2012-05-251-3/+10
| | | | | | Bug: 6563848 Change-Id: I167487fab64c97b6c4ec7f1b14639415ce15e26f
* Don't set up background images if 1x1Nicolas Roard2012-05-231-4/+7
| | | | | | | | We do this check in other places. We still need a better solution for the general case. bug:6540356 Change-Id: I3f75c62141d7b6993928927117d972d0ec224b55
* Fix memory leak and repaint issues with fixed background elementsNicolas Roard2012-05-181-14/+21
| | | | | | bug:6522485 bug:6486951 Change-Id: Ia707efed9311e4352eed3ab005ec7ca93b8444e4
* Allow more layers to be merged (merging fixed)Nicolas Roard2012-05-161-1/+1
| | | | | | | | | | This will reduce the need to go to single surface rendering mode, as well as improving jank by reducing the number of surfaces we need. (tested on a set of popular sites, we now need up to 16 times less surfaces, commonly 4-5 times less) bug:5683630 bug:6499283 bug:6366440 Change-Id: I761c6a60279e5b21dca8bc1faccd956be58e3702
* Revert "Allow more layers to be merged."Chris Craik2012-05-161-1/+1
| | | | | | | This was causing content to go missing. bug:6504906 This reverts commit 0b072353e2ad89087c944dfb4acb1eff87bbac49
* Allow more layers to be merged.Nicolas Roard2012-05-151-1/+1
| | | | | | | | This will reduce the need to go to single surface rendering mode. bug:5683630 bug:6499283 Change-Id: I482060b38d856c81ae8eff296e76252892e6a610
* Fix crash on arstechnicaNicolas Roard2012-05-151-18/+16
| | | | | | | Not checking for cachedImage for the background images... bug:6482165 Change-Id: I9de5ee9cef446cd07688b40f6b04bdd493e40edd
* Implements mask layers and replica layersNicolas Roard2012-05-111-3/+38
| | | | | bug:6221600 Change-Id: I974eb846200d43bd3635ed1787a5753f87a547dd
* Complete implementation fixed backgroundNicolas Roard2012-05-081-49/+12
| | | | | | | | | | - extract image for body background (a lot more memory-friendly) - implement tiling / repeat - handles background color bug:1352305 Change-Id: I0efa27e09416e3c3848a4a53ced650cbb3d9f7ce
* Simplify hierarchy with fixed backgroundNicolas Roard2012-05-041-34/+48
| | | | | | | | Preliminary support for color background. bug:1352305 Change-Id: Ibd82017c18fd939b253d22a455aae484ea308544
* CSS Background image implementationNicolas Roard2012-04-241-13/+139
| | | | | | bug:1352305 Change-Id: Id9caaae9b9442729110b52c75004f634d8284db4
* Merge "Implements a recording GraphicsContext"Nicolas Roard2012-04-061-2/+2
|\
| * Implements a recording GraphicsContextNicolas Roard2012-04-061-2/+2
| | | | | | | | Change-Id: I41feadb23dce25af321331c459eb159c6141831b
* | minor cleanupChris Craik2012-04-051-2/+1
|/ | | | Change-Id: Ib873df1bb3e7a76a5a34acc89e4deff217e698e0
* Rename several classesChris Craik2012-04-041-0/+1
| | | | | | | | | | | | | | | | | | | | BaseTile,BaseTileTexture -> Tile,TileTexture Used in layers other than the base LayerGroup -> Surface Renamed to convey that it is a member of the SurfaceCollection, and that the layers grouped inside are painted together (if at all) DualTiledTexture -> SurfaceBacking Better conveys that this is the raster backing for a surface that can paint. It may be implemented with two tiled textures for now, but that isn't as important as its relationship to the surface. TiledTexture -> TileGrid Renamed to make it more clear that it was a container of tiles, and to be less similar to TileTexture Change-Id: I843f8603a2080cfe5a7313ba1c2eff10620f8aa2
* Canvas on a textureJohn Reck2012-03-201-1/+6
| | | | Change-Id: I841b3e021298738c91701068992798a55290a520
* Fix layers ordering issue with Absolute positioned elementsNicolas Roard2012-03-131-3/+8
| | | | | | | | | - Promote absolute positioned elements to be composited - Reorder the elements as needed in LayerAndroid - Simplify fixed elements composition culling (don't do it anymore, we just promote everything and let the Layers sort things out) Change-Id: If76cf76a92410dec7e305a1a70c660d8597e399a
* replace XLOGC/XLOG with ALOGD/ALOGVChris Craik2012-03-121-56/+46
| | | | | | | Started using ALOGW/E for indicating warnings/errors Also delete the unused TilesTracker.h Change-Id: I1986a3057efd4c8e260dbc020e21c02d4d646cf3
* Introduce a LayerContent interfaceNicolas Roard2012-03-091-11/+21
| | | | | | | | | Layers can now use a LayerContent object to draw their content. We currently have two subclasses, one using an SkPicture (currently used for composited layers), the other using a PictureSet (that we use for the base layer). First step toward unification... Change-Id: I5e7fd06a653f02f8721613fd3a39d36fb64a8614
* Replace picture count with the SurfaceCollection countChris Craik2012-03-091-3/+0
| | | | | | Displays surface collection count on tiles when visual indicator is on. Change-Id: Ibe90792279849baff6f5bf0d71b80d9081471dc4
* Change the way we apply fixed position to layersNicolas Roard2012-03-081-16/+12
| | | | | | | | | With the latest refactoring we lost the possibility of having a layer other than LayerAndroid be fixed positioned. This CL remove the FixedLayerAndroid class (rename it into FixedPositioning) of the hierarchy, and use delegation to apply fixed position. Change-Id: Ib291fcaefe6a4431849ccfe2cf458fac6cac58aa
* Refactor LayerAndroid to add iframe subclassesNicolas Roard2012-03-071-8/+13
| | | | Change-Id: Ia3810e83a2d919ff5fa37b8fcd92e6cbbb63d569
* UI-side layer mergingChris Craik2012-03-071-0/+8
| | | | | | | | Merge multiple painted layers into a LayerGroup to share a dualTiledTexture see LayerAndroid::canJoinGroup() for merging rules Change-Id: I5f5b156894c3743825f570b47d34e905d74de10a
* Refactor LayerAndroid and add a FixedLayerAndroid classNicolas Roard2012-03-061-1/+14
| | | | Change-Id: Ic94e67678e7f5783bf6690308d0a13ce2202d1f2
* Fix iframe, for reals!John Reck2012-03-011-11/+10
| | | | Change-Id: I588aa5709e7a3c2ced9479c3cf9c1827bf6f7733
* Fix iframe webkit positioningNicolas Roard2012-02-271-3/+16
| | | | Change-Id: I7b2b3a7312c89bc505d7f629380df0d3f24eee5f
* fix jumpy scrolling on layersMichael Kolb2012-01-131-2/+4
| | | | | | | | Bug: 5782062 added scrollbar size to layer size Change-Id: I66f91f7837edaca5d78b12a615360502f8016f31
* Fix off-by-border RTL initial scrolling.George Mount2011-12-201-3/+2
| | | | | | Bug 5774511 Change-Id: I8bfbc07750a129916ee804d6e1cfc1eb11288dc0
* Fix crash with composited layersNicolas Roard2011-12-161-3/+31
| | | | | | | | | | | | | | | | | When we have composited layers inside iframes/frames, the layers hierarchy is not always up to date at the time of the layerSync() call. If some of those layers are scheduled to be repainted, the repaint operation will triggers the update of the composited layers tree -- possibly resulting in the deallocation of the very same GraphicsLayer we were painting from, and thus leading to a crash. The fix consist in gathering all the root RenderLayer (for each frame containing composited layers) and explicitely asking RenderLayerCompositor to check if the composited tree needs to be updated, before we traverse the tree to paint the elements. bug:5695185 Change-Id: I33a00b847eb19c9aa4b68f0ac3adbe36709ed00b
* fix layer scrollingMichael Kolb2011-12-161-1/+12
| | | | | | | | | Bug: 5774119 Add support for layer scrolling; also fixes the scrollTop demo referenced in bug: 5748199 Change-Id: Id04a3d52bb1e75e9ee24a4f1b8aa9b0334369ba1
* Merge "Start RTL overflow scroll scrolled rightmost."George Mount2011-12-161-1/+5
|\
| * Start RTL overflow scroll scrolled rightmost.George Mount2011-12-151-1/+5
| | | | | | | | | | | | Bug 5507867 Change-Id: I5ad4f23945d168dc0b59fa8e62406228873a721a
* | Don't pass pictures with no content to UI threadChris Craik2011-12-151-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | bug:5748182 Adjusted text detection logic to also simply detect content, and moved to a separate class. No content means a picture is not attached to the layer, and a PaintedSurface isn't allocated to the layer on the UI side. Most commonly, this avoids allocating textures for the clipping element for an overscroll div, but only if it has nothing to paint. Change-Id: I5e57d497780c0532e0f28ac94b7ced3de9718e92
* | Fix the repaint inval mechanism for layers - cherry-pick from MR1Nicolas Roard2011-12-091-1/+8
|/ | | | | | | | | | | | | | | | | | | | | | | We only keep the scrollable layers invalidating their entire area instead of incurring this penalty for *all* layers. Also remove unnecessary repaint when scrolling (we have the entire content on the UI side already). While the entire scrollable area will be invalidated and marked as dirty, the existing code in PaintedSurface already only look at the visible tiles of scrollable layers to consider the layer's content as being ready to display, so the real world penalty (while far from optimal) is limited. Implementing the correct approach (only invalidating what really changed on scrollable layers) would sadly be a lot more complex, as currently webkit will *not* send us the repaint invals if they are on a currently clipped area, as webkit's default behaviour to implement scrolling of such element is to repaint them anyway... bug:5721618 Change-Id: I9af240d5f42f00f9ab07710e43ef8d72dfaf8155
* am f1a22119: Merge "Fix image layer codepath" into ics-mr1Nicolas Roard2011-12-011-8/+20
|\ | | | | | | | | * commit 'f1a221194f2b0d5fd82d2e98ced94f0553c45986': Fix image layer codepath
| * Fix image layer codepathNicolas Roard2011-11-301-8/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - asynchronous loading - support for tiled content using TiledTexture - fix repaint/duplication bugs - share same textures as layers - disambiguate between images by computing a CRC code - added better debugging in TilesManager/ClassTracker to track memory usage bug:5661120 bug:5572134 bug:5521718 Change-Id: Id422fb991d6233bbe4dc6e5c3c7409468b7dca98
* | am 807ee5ec: Merge "synchronize animation starts with webkit" into ics-mr1Chris Craik2011-11-301-1/+7
|\ \ | |/ | | | | | | * commit '807ee5ec662a7864dee505040ade9a9b3eab143c': synchronize animation starts with webkit
| * synchronize animation starts with webkitChris Craik2011-11-291-1/+7
| | | | | | | | | | | | | | | | | | | | bug:5239801 this better supports animations not synchronous with webkit Relies on the frameworks/base CL: https://android-git.corp.google.com/g/#/c/152533/ Change-Id: Ia79a475065b3891db8fc4014559062ab1ac95ebe