summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/rendering
Commit message (Collapse)AuthorAgeFilesLines
* Performance enhancement. Don't process non-visible lines for layout.Sourav Kundu2013-01-211-0/+7
| | | | Change-Id: Ie2b594afb4f5244e18719e4feea51966ad4745cd
* DOM OptimizationsNaiem Shaik2013-01-202-6/+4
| | | | | | | | | | | | DOM traversal optimizations DOM Core optimizations Prefetch optimization for DOM Tree Traversal Conflicts: Source/WebKit/android/jni/WebViewCore.cpp Change-Id: Icbb8a7229ee9cff1a5401b57c8181f18b9a6d6e0
* Bug fix for guimark3 test bannerVeluppillai Arulesan2013-01-201-0/+6
| | | | | | | | | | Bring behaviour in line with chrome CRs-fixed: 380778 (cherry-picked from commit 403795abde7bb61fc2213628215ff6ad4591d241) Change-Id: I7c2256ebe40933f007d962a6cd44841b4223748a
* WebGL implementation for AndroidPierre-Antoine LaFayette2013-01-203-68/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Crash on Orange media portalAnders Edenbrandt2012-08-311-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Visit orange.deezer.com, press tab marked "My Music". Browser crashes every time. Pressing the button will trigger a re-layout of the page. This in turn will cause some rendering nodes of type RenderLayer to be removed from the rendering tree. When such a node is removed, it is important to also update certain lists in ancestor nodes that may hold references to this node. A node that may hold such a reference is identified as being a "stacking context". However, in Android, when the symbol ENABLE_COMPOSITED_FIXED_ELEMENTS is defined, the definition of what is a stacking context is expanded. In this case, a node that is a stacking context and holds references to descendants, changes one of the conditions that form part of Android's expanded stacking context definition. So, now it is no longer a stacking context, but the reference list is not deleted/updated. When the descendant node is removed a search for an ancestral stacking context is made, but it will not find this node since it is no longer a stacking context. The solution is to make sure that the list of references is updated/cleared whenever the node changes a condition that may cause its status as a stacking context to also change. Change-Id: If5a7b63715020bc3d23749a7c09003a86d90e28d
* Disable dispatchFakeMouseMoveEvent when scrolling a render layerJohn Reck2012-06-081-0/+2
| | | | | | | | | Bug: 6635039 This makes sense if you are scrolling the layer with an actual mouse, but all it does for us is result in some weird CSS :hover style changes and unnecessary painting - disable it. Change-Id: I08907c5f536c94a00d72fecf72411a1765a4a067
* Remove unnecessary Android code from hitTestForLayerJohn Reck2012-06-062-32/+0
| | | | | | | | | | | | | Bug: 6613097 The bug here is that the clipping rects it is calculating are wrong, which results in the hit test failing. However, as we now actually scroll our overflow layers (which we didn't at the time this was added), this code is no longer necessary anyway. WebKit knows how to do hit tests correctly, just let it. This is a partial revert of I0da2d8db Change-Id: I7b42f36dd199d431508da934878fc0f56e76559c
* Merge "Cherrypick WebKit r94543." into jb-devVictoria Lease2012-05-188-5/+52
|\
| * Cherrypick WebKit r94543.Victoria Lease2012-05-188-5/+52
| | | | | | | | | | | | | | | | | | | | | | | | http://trac.webkit.org/changeset/94543 isBeforeOrAfterContent() was already pulled in from r94543 as a part of I02da7a9f891a6eec394398529f64b0992cbfce70, but we needed the rest of the patch to address our ruby text alignment issues. Bug: 6105670 Change-Id: Iad4d6308ab053488abd118eee83058cfc81e22e8
* | Fix crash in RenderLayerCompositor::updateCompositingLayersMangesh Ghiware2012-05-171-16/+19
|/ | | | | | | | | | Clear the composited mode for layers before running the loop to mark the ones following a fixed layer as composited. This fixes the scenario where a layer switches between fixed and not, but the layers following it have an inconsistent compositing mode. Bug: 6417235 Change-Id: Ifa57ec482d4570a7798663fa0c6dc6c60839f5f6
* Revert "Fix crash in RenderLayerCompositor::updateCompositingLayers"Teng-Hui Zhu2012-05-161-7/+2
| | | | | | bug:6505453 This reverts commit 87431609180dfb277a94cb8b81554e8bd2ef355d.
* Cherry pick fixes for b/6388728 to jb-dev. DO NOT MERGEclaireho2012-05-111-20/+12
| | | | | | | | | | | | | | | | | cherry-picked a571e242f305463ffcb0a8680c750312ed04ea79 to jb-dev. Remove the FIXME item in shouldBreakAfter() of break_line.cpp. Bug: 6388728 - Improper line break of Japanese text The FIXME item in shouldBreakAfter() is a temporary workaround for webkit bug #17411 due to Unicode5.0 does not define IdeographicComma(U+3001) and ideographicFullStop(U+3002) as line breaks. However, shouldBreakAfter() hard coded these 2 codepoints should have a line break regardless any other punctuation right after these 2 characters. Now, Android is using ICU4.8.1 that is against on Unicode6.0. IdeographicComma and ideographicFullStop are included in the external/icu4c/data/unidata/LineBreak.txt. It is safe to remove this temporary workaround. Change-Id: Icf9d9bd088da0bef4f4b5cf6324dc744b5ac2ad5
* Cherry-pick WebKit change r98561 to fix a rendering crashSteve Block2012-04-271-0/+5
| | | | | | | See http://trac.webkit.org/changeset/98561 Bug: 6329121 Change-Id: Ie015bf4cc144cd2514d687202e1b247f9ca0799b
* Cherry-pick WebKit change r96294 as a prerequisite for r98561Steve Block2012-04-271-8/+10
| | | | | | | See http://trac.webkit.org/changeset/96294 Bug: 6329121 Change-Id: If5e731adc2751a8fc55a7baa3d7c205f47964b17
* Cherry-pick WebKit change r92025 to fix a rendering crashSteve Block2012-04-271-1/+2
| | | | | | | See http://trac.webkit.org/changeset/92025 Bug: 6328932 Change-Id: I2ed97a9f3d7d953f5a9bfe24b252124f896d31b4
* Fix crash in RenderLayerCompositor::updateCompositingLayersMangesh Ghiware2012-04-251-2/+7
| | | | | | | | | | | | | | Don't enable composited layers for fixed elements with a width or height of 1 or less. This duplicates the check used for deciding if layers following fixed layers are composited or not. This fixes the scenario where updateBacking() switches composited mode on (by calling enableCompositingMode()) because a layer is fixed, while computeCompositingRequirements() will disable it, and results in a segfault in updateCompositingLayers() Bug: 6324603 Change-Id: I034f2bd2f1a84fc24de6ab359c07f4895e2c7121
* CSS Background image implementationNicolas Roard2012-04-246-1/+33
| | | | | | bug:1352305 Change-Id: Id9caaae9b9442729110b52c75004f634d8284db4
* Merge changes Icc964ad0,Ib21562da,I87cfd2aa,I2d4208a2Steve Block2012-04-131-5/+18
|\ | | | | | | | | | | | | | | * changes: Cherry-pick WebKit change r107627 to fix a LayoutTest crash Cherry-pick WebKit change r94541 as a prerequisite for r107627 Cherry-pick WebKit change r88854 as a prerequisite for r107627 Cherry-pick WebKit change r106251 to fix a LayoutTest crash
| * Cherry-pick WebKit change r107627 to fix a LayoutTest crashSteve Block2012-04-121-16/+15
| | | | | | | | | | | | | | | | | | LayoutTests/fast/multicol/span/split-flow-anonymous-wrapper-crash.html See http://trac.webkit.org/changeset/107627 Bug: 6328992 Change-Id: Icc964ad0a6eb967f56fc298577a3b4515e81e886
| * Cherry-pick WebKit change r94541 as a prerequisite for r107627Steve Block2012-04-121-1/+15
| | | | | | | | | | | | | | See http://trac.webkit.org/changeset/94541 Bug: 6328992 Change-Id: Ib21562da28126db4d1c2898af818f8f5569236e0
| * Cherry-pick WebKit change r88854 as a prerequisite for r107627Steve Block2012-04-121-1/+1
| | | | | | | | | | | | | | See http://trac.webkit.org/changeset/88854 Bug: 6328992 Change-Id: I87cfd2aa0d76dec9b511067ba150db700d297a63
* | Merge changes Ia48c7e50,I02da7a9fSteve Block2012-04-132-2/+10
|\ \ | |/ | | | | | | | | * changes: Cherry-pick WebKit change r105769 to fix a LayoutTest crash Add RenderObject::isBeforeOrAfterContent() from r94543 as a prerequisite for r105769
| * Cherry-pick WebKit change r105769 to fix a LayoutTest crashSteve Block2012-04-121-2/+4
| | | | | | | | | | | | | | | | | | fast/multicol/clone-block-children-inline-mismatch-crash.html See http://trac.webkit.org/changeset/105769 Bug: 6329129 Change-Id: Ia48c7e50adb7de3fc1e897a0de90b62a1ca63786
| * Add RenderObject::isBeforeOrAfterContent() from r94543 as a prerequisite for ↵Steve Block2012-04-121-0/+6
| | | | | | | | | | | | | | | | | | r105769 See http://trac.webkit.org/changeset/94543 Bug: 6329129 Change-Id: I02da7a9f891a6eec394398529f64b0992cbfce70
* | Merge "Cherry-pick WebKit change r99731 to fix a LayoutTest crash"Steve Block2012-04-131-0/+4
|\ \ | |/
| * Cherry-pick WebKit change r99731 to fix a LayoutTest crashSteve Block2012-04-121-0/+4
| | | | | | | | | | | | | | | | | | svg/foreignObject/absolute-position-foreign-object-child-crash.html See http://trac.webkit.org/changeset/99731 Bug: 6329122 Change-Id: Ibee43b565d69507c4abace7e1ab298c660de137f
* | Merge changes I0cee4daa,If526b331Steve Block2012-04-131-249/+182
|\ \ | |/ | | | | | | | | * changes: Cherry-pick WebKit change r90568 to fix LayoutTest crashes Cherry-pick WebKit change r86098 as a prerequisite for r90568
| * Cherry-pick WebKit change r90568 to fix LayoutTest crashesSteve Block2012-04-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | fast/flexbox/crash-button-input-autofocus.html fast/flexbox/crash-button-keygen.html fast/flexbox/crash-button-relayout.html Patch manually applied due to file rename. See http://trac.webkit.org/changeset/90568 Bug: 6328974 Change-Id: I0cee4daaea2e6fa2b9fae7d7dd81b4541561e969
| * Cherry-pick WebKit change r86098 as a prerequisite for r90568Steve Block2012-04-121-249/+182
| | | | | | | | | | | | | | See http://trac.webkit.org/changeset/86098 Bug: 6328974 Change-Id: If526b33142144f1ed466325898f9177adf27e6ee
* | Add support for HTML Media Capture "capture" attribute.Ben Murdoch2012-04-132-0/+10
|/ | | | | | | | | | | | | | | | | | | | Add support in WebKit for the newly specified "capture" attribute to be used on HTML file pickers. Maintains support for the legacy implementation of the API (a MIME type parameter on the 'accept' attribute) for backwards compatibility. Note the 'capture' attribute takes precedent over a MIME type parameter. See http://www.w3.org/TR/html-media-capture/#captureparam for details. Requires changes in the framework (I494adc1274ca21ce8fe52a6c7b6b758217927e66) and Browser (I38dfe2df043fdba1388384dbd3b5370737eb38e5). Bug: 5771207 Change-Id: I0a921be31fda79a43c05da4fe22d9c808d92709c
* Merge "Cherry-pick WebKit change r91386 to fix a rendering crash"Steve Block2012-04-122-1/+3
|\
| * Cherry-pick WebKit change r91386 to fix a rendering crashSteve Block2012-04-102-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Note that the use of RenderObject::isDeprecatedFlexibleBox() in the patch had to be changed to RenderObject::isFlexibleBox(). This method was renamed in http://trac.webkit.org/changeset/90773, which is not in Android's version of WebKit. The LayoutTest added in r91386 no longer crashes. See http://trac.webkit.org/changeset/91386 Bug: 5492762 Change-Id: Id43e55e89b4f107285b33c1a2c37a634cf10aad7
* | Merge "Cherry-pick WebKit change r90068 to fix a rendering crash"Steve Block2012-04-124-1/+15
|\ \
| * | Cherry-pick WebKit change r90068 to fix a rendering crashSteve Block2012-04-104-1/+15
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note that this change does not apply cleanly in RenderBlock::destroy() without r85869. r85869 was intended to be an optimization only, with no functional change. However, it introduced two crashes, one of which is fixed in r90068 and the other in r86060. To avoid the need to cherry-pick both r85869 and r86060 as prerequisites, the patch for r90068 was applied manually to give the correct end result in RenderBlock::destroy(). We now pass the LayoutTests added in r90068 and the LayoutTest added in r86060 does not crash. See http://trac.webkit.org/changeset/90068 Bug: 5496903 Change-Id: Ica6dc2c70a4cd5c781ae77df95a8a4033c097708
* | Temporary workaround to fix a bug on google.comNicolas Roard2012-04-061-1/+3
|/ | | | Change-Id: Ie03798396ed7df6fea6cb2ae7e1f7ae327409139
* Fix scrolling on sites that use <frame>sMangesh Ghiware2012-03-191-4/+12
| | | | | | | | | | | Update the dimensions of a frame before expanding it to fit the content width and height. Also, force a relayout of the frame as necessary to sync the correct dimensions (i.e. when navigation occurs inside the frame) Bug: 5978268 Change-Id: Ia282d6e5753fd38b32854e01ca58fa41b3814b21
* Fix layers ordering issue with Absolute positioned elementsNicolas Roard2012-03-132-49/+60
| | | | | | | | | - 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
* UI-side layer mergingChris Craik2012-03-072-1/+15
| | | | | | | | Merge multiple painted layers into a LayerGroup to share a dualTiledTexture see LayerAndroid::canJoinGroup() for merging rules Change-Id: I5f5b156894c3743825f570b47d34e905d74de10a
* am 797ef404: am c892a72d: am 538b01d6: Cherry-pick WebKit r100677 to fix a ↵Steve Block2012-02-281-8/+13
|\ | | | | | | | | | | | | rendering crash * commit '797ef40436bbd0876936c82037ce7aa8d520933d': Cherry-pick WebKit r100677 to fix a rendering crash
| * Cherry-pick WebKit r100677 to fix a rendering crashSteve Block2012-02-281-8/+13
| | | | | | | | | | | | | | | | This fixes a crash from positioned generated content under run-in. See http://trac.webkit.org/changeset/100677. Bug: 6079158 Change-Id: I3d2012c58f47e71ae500e33551dfab5587b84534
* | Merge "Merge webkit change to reveal last character in password."George Mount2012-02-282-3/+77
|\ \
| * | Merge webkit change to reveal last character in password.George Mount2012-02-282-3/+77
| | | | | | | | | | | | | | | | | | | | | | | | Bug 6083915 cherry pick of webkit 93656 http://trac.webkit.org/changeset/93656 Change-Id: I1f979a3b2b9916736f3785ab2d5998b958b55cd2
* | | Merge "Fix iframe webkit positioning"Nicolas Roard2012-02-271-3/+19
|\ \ \ | |/ / |/| |
| * | Fix iframe webkit positioningNicolas Roard2012-02-271-3/+19
| | | | | | | | | | | | Change-Id: I7b2b3a7312c89bc505d7f629380df0d3f24eee5f
* | | draw inactive find-on-page matches as outlinesVictoria Lease2012-02-231-0/+4
| | | | | | | | | | | | Change-Id: Iacbeba1fb4e3c63f8f40c61c8b641c0b6c704cad
* | | Fix overflow clipping of images in auto-fit mode.Mangesh Ghiware2012-02-231-0/+4
|/ / | | | | | | | | | | | | | | | | | | In auto-fit mode, text is wrapped based on screen width. However, if overflow isn't visible for the content box, and it includes block elements, they may get clipped. Disable overflow clipping in this scenario. Bug: 6034321 Change-Id: I1e274df3b5698fb4142e2f0ae4c68578e26d2af4
* | Move Canvas elements to their own composited layerNicolas Roard2012-02-212-0/+11
| | | | | | | | | | | | | | | | | | This drastically improves performances, as invalidating a canvas will only touch that one layer instead of (possibly) invalidating the entire PictureSet. bug:5247823 Change-Id: Iec4de74d25e58e63f0198bbd7558c461d9a11cfd
* | Merge "Reduce the number of the composited layers."Chris Craik2012-01-251-1/+13
|\ \
| * | Reduce the number of the composited layers.Chris Craik2012-01-121-1/+13
| | | | | | | | | | | | | | | bug:5660814 Change-Id: I2205ba44c33cb7424fcd7f18648bd20d8ced07e8
* | | Remove ANDROID_CSS_RINGJohn Reck2012-01-183-84/+0
| | | | | | | | | | | | Change-Id: I7395a5f17b0ccfe8dafcc97fa3ab8897676608e9