Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(567)

Unified Diff: Source/WebCore/ChangeLog

Side-by-side diff isn't available for this file because of its large size.
Issue 10703186: Merge 122432 - [Shadow DOM] <video> with <shadow> crashes (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1180/
Patch Set: Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
Download patch
Index: Source/WebCore/ChangeLog
===================================================================
--- Source/WebCore/ChangeLog (revision 122537)
+++ Source/WebCore/ChangeLog (working copy)
@@ -1,3 +1,4249 @@
+2012-07-12 MORITA Hajime <morrita@google.com>
+
+ [Shadow DOM] <video> with <shadow> crashes
+ https://bugs.webkit.org/show_bug.cgi?id=91055
+
+ Reviewed by Kent Tamura.
+
+ This is similar to Bug 90480, where an undesired renderer is created by
+ locating an insertion point on the shadow boundary.
+
+ This change adds a guard for such case by cheking whether the
+ source node of each to-be-created renderer comes from the UA shadow
+ tree, which is allowed to have a renderer.
+
+ Test: fast/dom/shadow/insertion-point-video-crash.html
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::childShouldCreateRenderer): Added a check.
+ (WebCore::HTMLMediaElement::mediaControls): Added const.
+ (WebCore::HTMLMediaElement::hasMediaControls): Added const.
+ * html/HTMLMediaElement.h:
+ (HTMLMediaElement):
+
+2012-07-12 Yoshifumi Inoue <yosin@chromium.org>
+
+ REGRESSION(r122184): LocaleMac::currentLocale should use current locale rather than newly create locale object.
+ https://bugs.webkit.org/show_bug.cgi?id=91057
+
+ Reviewed by Kent Tamura.
+
+ This patch changes NSLocale object of LocaleMac::m_locale variable to
+ current NSLocale object rather than newly created NSLocale object from
+ locale identifier.
+
+ No new tests. We don't have way to change system preferences from
+ test scripts and restoring them. To test this patch, we need to do so.
+
+ * platform/text/mac/LocaleMac.h:
+ (LocaleMac): Added a constructor which takes NSLocale object.
+ * platform/text/mac/LocaleMac.mm:
+ (WebCore::LocaleMac::LocaleMac): Added a constructor which takes NSLocale object.
+ (WebCore::LocaleMac::currentLocale): Changed to construct LocaleMac object from NSLocale object rather than locale identifier.
+
+2012-07-11 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Add webkit_cookie_manager_set_persistent_storage() to WebKit2 GTK+ API
+ https://bugs.webkit.org/show_bug.cgi?id=83016
+
+ Reviewed by Martin Robinson.
+
+ * platform/network/soup/CookieStorageSoup.cpp:
+ (WebCore::soupCookiesChanged): Do not notify about changes in
+ other cookie jars than the current one.
+
+2012-07-12 Philip Rogers <pdr@google.com>
+
+ Refactor RenderSVGShape bounding box code
+ https://bugs.webkit.org/show_bug.cgi?id=90655
+
+ Reviewed by Nikolas Zimmermann.
+
+ RenderSVGShape::objectBoundingBox worked differently than RenderSVGShape::strokeBoundingBox by
+ not caching the object bounding box and instead computing it on each call. For consistency and
+ performance objectBoundingBox has been refactored to return a cached value.
+
+ createShape has been renamed updateShapeFromElement for understandability. updateShapeFromElement
+ now updates the internal state of the shape (bounding boxes, etc) from the associated element.
+ RenderSVGShape::inflateWithStrokeAndMarkerBounds has been merged into
+ RenderSVGShape::calculateStrokeBoundingBox which is called from updateShapeFromElement.
+
+ After this change all bounding box computation is now handled in updateShapeFromElement. Because
+ subclasses override updateShapeFromElement it will be easy for them to have custom bounding box
+ code there (as will happen for RenderSVGPath in a followup patch).
+
+ strokeBoundingBox and objectBoundingBox are now able to return their cached values immediately
+ in RenderSVGRect and RenderSVGEllipse instead of checking their fallback state on each call.
+
+ Additionally, to save space RenderSVGEllipse and RenderSVGRect now use the m_fillBoundingBox and
+ m_strokeBoundingBox of RenderSVGShape instead of having their own.
+
+ This patch also removes setStrokeAndMarkerBoundingBox that was previously dead code.
+
+ No new tests, just a refactoring.
+
+ * rendering/svg/RenderSVGEllipse.cpp:
+ (WebCore::RenderSVGEllipse::updateShapeFromElement):
+ (WebCore):
+ (WebCore::RenderSVGEllipse::fillShape):
+ (WebCore::RenderSVGEllipse::strokeShape):
+ (WebCore::RenderSVGEllipse::shapeDependentStrokeContains):
+ * rendering/svg/RenderSVGEllipse.h:
+ (RenderSVGEllipse):
+ (WebCore::RenderSVGEllipse::isEmpty):
+ * rendering/svg/RenderSVGRect.cpp:
+ (WebCore::RenderSVGRect::updateShapeFromElement):
+ (WebCore):
+ (WebCore::RenderSVGRect::fillShape):
+ (WebCore::RenderSVGRect::strokeShape):
+ (WebCore::RenderSVGRect::shapeDependentStrokeContains):
+ (WebCore::RenderSVGRect::shapeDependentFillContains):
+ * rendering/svg/RenderSVGRect.h:
+ (RenderSVGRect):
+ (WebCore::RenderSVGRect::isEmpty):
+ * rendering/svg/RenderSVGShape.cpp:
+ (WebCore::RenderSVGShape::updateShapeFromElement):
+ (WebCore):
+ (WebCore::RenderSVGShape::layout):
+ (WebCore::RenderSVGShape::calculateObjectBoundingBox):
+ (WebCore::RenderSVGShape::calculateStrokeBoundingBox):
+ (WebCore::RenderSVGShape::updateRepaintBoundingBox):
+ * rendering/svg/RenderSVGShape.h:
+ (RenderSVGShape):
+ (WebCore::RenderSVGShape::objectBoundingBox):
+ (WebCore::RenderSVGShape::strokeBoundingBox):
+
+2012-07-12 Kent Tamura <tkent@chromium.org>
+
+ Do not save the form state signature if nothing is saved
+ https://bugs.webkit.org/show_bug.cgi?id=91050
+
+ Reviewed by Hajime Morita.
+
+ This change will reduce the size of HistoyItem.
+
+ Test: fast/forms/state-restore-empty-state.html
+
+ * html/FormController.cpp:
+ (WebCore::FormController::formElementsState):
+ If stateVector has only the signature string, clear it.
+
+2012-07-11 Mark Rowe <mrowe@apple.com>
+
+ <http://webkit.org/b/91051> Fix the Qt Mac build after r122400.
+
+ Qt on Mac builds with a deployment target of OS X 10.5. However, it was not been setting
+ BUILDING_ON_LEOPARD / TARGETING_LEOPARD and thus was falling down code paths in DisplaySleepDisabler.cpp
+ that were specific to Snow Leopard and newer. After the removal of BUILDING_ON_LEOPARD
+ and TARGETING_LEOPARD it ended up falling down the correct Leopard-compatible code path,
+ which revealed that the code made assumptions about which headers had already been included.
+
+ * platform/mac/DisplaySleepDisabler.cpp: Include CoreServices/CoreServices.h to pull in
+ a declaration of UpdateSystemActivity when targeting Leopard.
+
+2012-07-11 Matt Falkenhagen <falken@chromium.org>
+
+ Add dialog element feature toggle to InternalSettings
+ https://bugs.webkit.org/show_bug.cgi?id=90934
+
+ Reviewed by Hajime Morita.
+
+ This enables layout tests to be written for dialog although the feature is disabled by default.
+
+ Tests: fast/dom/HTMLDialogElement/dialog-disabled.html
+ fast/dom/HTMLDialogElement/dialog-enabled.html
+
+ * WebCore.exp.in: Added newly exported symbol.
+ * testing/InternalSettings.cpp:
+ (WebCore::InternalSettings::Backup::Backup): Backup dialog feature flag.
+ (WebCore::InternalSettings::Backup::restoreTo): Restore dialog feature flag.
+ (WebCore::InternalSettings::setDialogElementEnabled): Added.
+ (WebCore):
+ * testing/InternalSettings.h: Added support for dialog.
+ (Backup):
+ (InternalSettings):
+ * testing/InternalSettings.idl: Added support for dialog.
+
+2012-07-11 Kent Tamura <tkent@chromium.org>
+
+ Accessing width or height of a detached image input element causes crash
+ https://bugs.webkit.org/show_bug.cgi?id=90885
+
+ Reviewed by Kentaro Hara.
+
+ Test: fast/forms/image/width-and-height-of-detached-input.html
+
+ * html/ImageInputType.cpp:
+ (WebCore::ImageInputType::height): Add null check for m_imageLoader.
+ (WebCore::ImageInputType::width): ditto.
+
+2012-07-11 Kent Tamura <tkent@chromium.org>
+
+ Do not save state of stateless form controls
+ https://bugs.webkit.org/show_bug.cgi?id=90964
+
+ Reviewed by Hajime Morita.
+
+ By Bug 89409, we started to store unmodified form control
+ state. However we don't need to make such state for the following
+ types.
+ - password
+ - submit
+ - reset
+ - button
+ - keygen
+
+ Test: fast/forms/state-restore-skip-stateless.html
+
+ * html/BaseButtonInputType.cpp:
+ (WebCore::BaseButtonInputType::shouldSaveAndRestoreFormControlState):
+ Added. Disable saving state for submit, reset, and button types.
+ * html/BaseButtonInputType.h:
+ (BaseButtonInputType): Add shouldSaveAndRestoreFormControlState.
+ * html/HTMLFormControlElementWithState.h:
+ (HTMLFormControlElementWithState): Make shouldSaveAndRestoreFormControlState virtual.
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::shouldSaveAndRestoreFormControlState):
+ Added. Checks InputType::shouldSaveAndRestoreFormControlState first.
+ * html/HTMLInputElement.h:
+ (HTMLInputElement): Override shouldSaveAndRestoreFormControlState.
+ * html/HTMLKeygenElement.cpp:
+ (WebCore::HTMLKeygenElement::shouldSaveAndRestoreFormControlState)
+ Added. Disable saving state for <keygen>.:
+ * html/HTMLKeygenElement.h: Override shouldSaveAndRestoreFormControlState.
+ * html/InputType.cpp:
+ (WebCore::InputType::shouldSaveAndRestoreFormControlState):
+ Added. Enable saving state for all types by default.
+ * html/InputType.h:
+ (InputType): Add shouldSaveAndRestoreFormControlState.
+ * html/PasswordInputType.cpp:
+ (WebCore::PasswordInputType::shouldSaveAndRestoreFormControlState):
+ Added. Disabled saving state.
+ (WebCore::PasswordInputType::saveFormControlState):
+ Because shouldSaveAndRestoreFormControlState() returns false,
+ saveFormControlState should be never called.
+ * html/PasswordInputType.h:
+ (PasswordInputType): Override shouldSaveAndRestoreFormControlState.
+
+2012-07-11 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ Compilation error with GLES2 when using gl2ext.h from ANGLE.
+ https://bugs.webkit.org/show_bug.cgi?id=91030
+
+ Reviewed by Kenneth Russell.
+
+ gl2ext.h defines PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG and not
+ PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC. This is a bug in the original Khronos header,
+ but we should work around it until fixed headers are integrated.
+
+
+ * platform/graphics/opengl/Extensions3DOpenGLES.h:
+ (Extensions3DOpenGLES):
+ Removed the "PROC" suffix to work around the header bug.
+
+2012-07-11 Mark Rowe <mrowe@apple.com>
+
+ Attempt to fix the Chromium Mac build after r122400.
+
+ * platform/text/cf/HyphenationCF.cpp: Ensure that Chromium only compiles the body of this file if
+ building for a new enough version of OS X.
+
+2012-07-11 Kent Tamura <tkent@chromium.org>
+
+ [Mac] Sort project.pbxproj
+
+ * WebCore.xcodeproj/project.pbxproj: Apply Tools/Scripts/sort-Xcode-project-file
+
+2012-07-11 Dan Bernstein <mitz@apple.com>
+
+ When a table row height grows because of pagination, not all cells’ heights are adjusted
+ https://bugs.webkit.org/show_bug.cgi?id=91043
+
+ Reviewed by Sam Weinig.
+
+ The fix for in bug <http://webkit.org/b/83595> in <http://trac.webkit.org/r113738> made table
+ rows grow as necessary to fit cells that grow as a result of pagination. But it had two bad
+ side effects: earlier cells on the row would not grow by the same amount, and later cells on
+ the row would factor the existing growth into their intrinsic padding.
+
+ Test: fast/multicol/table-row-height-increase.html
+
+ * rendering/RenderTableSection.cpp:
+ (WebCore::RenderTableSection::layoutRows): Now when a cell becomes taller than the row height,
+ the additional height needed is recorded, and the cell is shrunk back to row height. Then
+ after finishing the row, all cells occurring on the row (including cells spanning it but not
+ starting on it) are grown by the same amount.
+
+2012-07-11 Mark Rowe <mrowe@apple.com>
+
+ <http://webkit.org/b/91024> Build against the latest SDK when targeting older OS X versions.
+
+ Reviewed by Dan Bernstein.
+
+ The deployment target is already set to the version that we're targeting, and it's that setting
+ which determines which functionality from the SDK is available to us.
+
+ * Configurations/Base.xcconfig:
+
+2012-07-11 Mark Rowe <mrowe@apple.com>
+
+ Switch a few cases that care about the SDK over to checking __MAC_OS_X_VERSION_MAX_ALLOWED so that things build.
+
+ Part of <http://webkit.org/b/91015> Remove BUILDING_ON / TARGETING macros in favor of system availability macros
+
+ Reviewed by Filip Pizlo.
+
+ * platform/graphics/cg/GraphicsContextCG.cpp: The SDK we're building against determines whether the constant is available.
+ * platform/mac/EmptyProtocolDefinitions.h: The SDK we're building against determines whether the protocols are declared.
+ * platform/mac/NSScrollerImpDetails.h: The SDK we're building against determines whether the constants and method are
+ available.
+ * platform/mac/SharedTimerMac.mm: The SDK we're building against determines whether the function has already been declared.
+
+2012-07-11 Mark Rowe <mrowe@apple.com>
+
+ <http://webkit.org/b/91015> Remove BUILDING_ON / TARGETING macros in favor of system availability macros
+
+ This removal was handled by a script that translates the relevant macros in to the equivalent checks
+ using the system availability macros.
+
+ Reviewed by Filip Pizlo.
+
+ * WebCore.exp.in:
+ * accessibility/AccessibilityList.h:
+ * accessibility/AccessibilityTable.h:
+ * accessibility/mac/AXObjectCacheMac.mm:
+ * editing/mac/EditorMac.mm:
+ * loader/MainResourceLoader.cpp:
+ * loader/MainResourceLoader.h:
+ * page/AlternativeTextClient.h:
+ * page/ContextMenuController.cpp:
+ * page/mac/SettingsMac.mm:
+ * platform/LocalizedStrings.cpp:
+ * platform/MemoryPressureHandler.cpp:
+ * platform/audio/mac/AudioBusMac.mm:
+ * platform/graphics/Gradient.h:
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+ * platform/graphics/ca/GraphicsLayerCA.cpp:
+ * platform/graphics/ca/PlatformCALayer.h:
+ * platform/graphics/ca/mac/PlatformCALayerMac.mm:
+ * platform/graphics/ca/mac/TileCache.mm:
+ * platform/graphics/cg/GraphicsContextCG.cpp:
+ * platform/graphics/cg/ImageBufferCG.cpp:
+ * platform/graphics/cg/ImageBufferDataCG.cpp:
+ * platform/graphics/cg/ImageBufferDataCG.h:
+ * platform/graphics/cg/ImageCG.cpp:
+ * platform/graphics/cg/ImageSourceCG.cpp:
+ * platform/graphics/cg/PathCG.cpp:
+ * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+ * platform/graphics/mac/ComplexTextController.cpp:
+ * platform/graphics/mac/ComplexTextControllerCoreText.mm:
+ * platform/graphics/mac/FontCacheMac.mm:
+ * platform/graphics/mac/FontCustomPlatformData.cpp:
+ * platform/graphics/mac/FontMac.mm:
+ * platform/graphics/mac/GraphicsContextMac.mm:
+ * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
+ * platform/graphics/mac/SimpleFontDataMac.mm:
+ * platform/graphics/mac/WebLayer.h:
+ * platform/graphics/mac/WebLayer.mm:
+ * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
+ * platform/mac/CursorMac.mm:
+ * platform/mac/DisplaySleepDisabler.cpp:
+ * platform/mac/DisplaySleepDisabler.h:
+ * platform/mac/EmptyProtocolDefinitions.h:
+ * platform/mac/HTMLConverter.h:
+ * platform/mac/HTMLConverter.mm:
+ * platform/mac/MemoryPressureHandlerMac.mm:
+ * platform/mac/NSScrollerImpDetails.h:
+ * platform/mac/PlatformEventFactoryMac.mm:
+ * platform/mac/PopupMenuMac.mm:
+ * platform/mac/ScrollAnimatorMac.mm:
+ * platform/mac/ScrollElasticityController.mm:
+ * platform/mac/SharedTimerMac.mm:
+ * platform/mac/SuddenTermination.mm:
+ * platform/mac/WebCoreFullScreenWindow.mm:
+ * platform/mac/WebCoreNSCellExtras.h:
+ * platform/mac/WebCoreSystemInterface.h:
+ * platform/mac/WebCoreSystemInterface.mm:
+ * platform/mac/WebFontCache.mm:
+ * platform/mac/WebVideoFullscreenController.mm:
+ * platform/mac/WebVideoFullscreenHUDWindowController.mm:
+ * platform/network/Credential.h:
+ * platform/network/ResourceHandle.h:
+ * platform/network/cf/DNSCFNet.cpp:
+ * platform/network/cf/ProxyServerCFNet.cpp:
+ * platform/network/cf/ResourceRequest.h:
+ * platform/network/cf/ResourceRequestCFNet.cpp:
+ * platform/network/cf/SocketStreamHandleCFNet.cpp:
+ * platform/network/mac/AuthenticationMac.mm:
+ * platform/network/mac/CookieStorageMac.mm:
+ * platform/network/mac/ResourceHandleMac.mm:
+ * platform/network/mac/ResourceRequestMac.mm:
+ * platform/network/mac/WebCoreURLResponse.mm:
+ * platform/text/TextChecking.h:
+ * platform/text/cf/HyphenationCF.cpp:
+ * platform/text/mac/HyphenationMac.mm:
+ * rendering/RenderLayerBacking.cpp:
+ * rendering/RenderLayerCompositor.cpp:
+ * rendering/RenderThemeMac.mm:
+
+2012-07-11 Robert Kroeger <rjkroege@chromium.org>
+
+ Suppress horizontal conversion of PlatformWheelEvents when hasPreciseScrollingDeltas is true
+ https://bugs.webkit.org/show_bug.cgi?id=89580
+
+ WebKit GTK and Chromium Linux force vertical wheel events to
+ scroll horizontally when over horizontal scroll bars. This is
+ undesirable for touchpad scrolling with
+ hasPreciseScrollingDeltas() == true. Modified shouldTurnVerticalTicksIntoHorizontal
+ to not perform this conversion for PlatformWheelEvents with preciseScrollingDeltas.
+
+ Reviewed by Adam Barth.
+
+ Tests: fast/events/touch/gesture/touch-gesture-scroll-sideways.html
+
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):
+ (WebCore::EventHandler::handleWheelEvent):
+ * page/EventHandler.h:
+ (EventHandler):
+ * page/chromium/EventHandlerChromium.cpp:
+ (WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):
+ * page/gtk/EventHandlerGtk.cpp:
+ (WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):
+
+2012-07-11 Hayato Ito <hayato@chromium.org>
+
+ Unreviewed gardening.
+ Build fix for r122373.
+
+ * platform/chromium/support/WebCompositorSharedQuadState.cpp:
+ (WebKit::WebCompositorSharedQuadState::WebCompositorSharedQuadState):
+
+2012-07-11 Shinya Kawanaka <shinyak@chromium.org>
+
+ SVGUseElement should not use Element::ensureShadowRoot().
+ https://bugs.webkit.org/show_bug.cgi?id=90938
+
+ Reviewed by Hajime Morita.
+
+ We would like to remove Element::ensureShadowRoot() because we would like to stabilize the lifecycle of Shadow DOM.
+ This patch rewrites SVGUseElement::create() not to use Element::ensureShadowRoot(). Since our convention to create
+ a shadow subtree is to create a method createShadowSubtree(), I obeyed it.
+
+ No new tests. Simple refactoring.
+
+ * svg/SVGUseElement.cpp:
+ (WebCore::SVGUseElement::create):
+ (WebCore::SVGUseElement::createShadowSubtree):
+ (WebCore):
+ * svg/SVGUseElement.h:
+ (SVGUseElement):
+
+2012-07-11 Alexandre Elias <aelias@google.com>
+
+ [chromium] Move compositor quads to Platform/chromium/public
+ https://bugs.webkit.org/show_bug.cgi?id=90582
+
+ Reviewed by Adrienne Walker.
+
+ This moves CCSharedQuadState, CCDrawQuad, and all but two CC*DrawQuad
+ classes to the WebKit namespace, as a first step to pushing them
+ across the process boundary for the ubercompositor.
+
+ - The intent is to serialize the class hierarchy using the same
+ mechanism as WebInputEvent. In order to do this, there are three
+ requirements: pure POD data, a method returning size, and a packing
+ pragma.
+
+ - Private data members are fine with this kind of serializer, and a
+ default constructor is not needed. Because of that, we can maintain
+ the same encapsulation and convenient APIs (behind
+ WEBKIT_IMPLEMENTATION) as the original classes. To ease the
+ transition, the original WebCore headers still exist and typedef to
+ the new classes.
+
+ - However, SharedQuadState will be serialized using the normal
+ IPC_STRUCT_TRAITS macro, so I made its members public. A custom
+ serializer (on quad lists) will maintain the pointers from quads to
+ SharedQuadStates.
+
+ - I converted the Material casting mechanism to materialCast() methods
+ living in the derived classes. That way, the WebCompositorQuad header
+ doesn't need to know about all its derived classes.
+
+ - Quad classes not yet transitioned can still be used in
+ non-ubercompositor mode. CCRenderPassDrawQuad and CCYUVVideoDrawQuad
+ are currently non-POD and I left them in their original files.
+
+ This approach is the best I've found so far, since it preserves all
+ WebCore-facing APIs and avoids unnecessary code duplication (new quad
+ types or members can be added by modifying only one place). There
+ also should not be an unreasonable amount of custom serializer code
+ required.
+
+ No new tests. (No-op refactoring.)
+
+ * WebCore.gypi:
+ * platform/chromium/support/WebCompositorQuad.cpp: Added.
+ (WebKit):
+ (WebKit::WebCompositorQuad::WebCompositorQuad):
+ (WebKit::WebCompositorQuad::opaqueRect):
+ (WebKit::WebCompositorQuad::setQuadVisibleRect):
+ (WebKit::WebCompositorQuad::size):
+ * platform/chromium/support/WebCompositorSharedQuadState.cpp: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCSharedQuadState.cpp.
+ (WebKit):
+ (WebKit::WebCompositorSharedQuadState::WebCompositorSharedQuadState):
+ (WebKit::WebCompositorSharedQuadState::create):
+ (WebKit::WebCompositorSharedQuadState::isLayerAxisAlignedIntRect):
+ * platform/chromium/support/WebCompositorSolidColorQuad.cpp: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCSolidColorDrawQuad.cpp.
+ (WebKit):
+ (WebKit::WebCompositorSolidColorQuad::create):
+ (WebKit::WebCompositorSolidColorQuad::WebCompositorSolidColorQuad):
+ (WebKit::WebCompositorSolidColorQuad::materialCast):
+ * platform/chromium/support/WebCompositorTextureQuad.cpp: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCTextureDrawQuad.cpp.
+ (WebKit):
+ (WebKit::WebCompositorTextureQuad::create):
+ (WebKit::WebCompositorTextureQuad::WebCompositorTextureQuad):
+ (WebKit::WebCompositorTextureQuad::setNeedsBlending):
+ (WebKit::WebCompositorTextureQuad::materialCast):
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::drawQuad):
+ * platform/graphics/chromium/LayerRendererChromium.h:
+ * platform/graphics/chromium/cc/CCCheckerboardDrawQuad.cpp:
+ (WebCore::CCCheckerboardDrawQuad::create):
+ (WebCore::CCCheckerboardDrawQuad::CCCheckerboardDrawQuad):
+ (WebCore::CCCheckerboardDrawQuad::materialCast):
+ (WebCore):
+ * platform/graphics/chromium/cc/CCCheckerboardDrawQuad.h:
+ (CCCheckerboardDrawQuad):
+ * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.cpp:
+ (WebCore::CCDebugBorderDrawQuad::create):
+ (WebCore::CCDebugBorderDrawQuad::CCDebugBorderDrawQuad):
+ (WebCore::CCDebugBorderDrawQuad::materialCast):
+ (WebCore):
+ * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.h:
+ (CCDebugBorderDrawQuad):
+ * platform/graphics/chromium/cc/CCDrawQuad.cpp: Removed.
+ * platform/graphics/chromium/cc/CCDrawQuad.h:
+ (WebCore):
+ * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.cpp:
+ (WebCore::CCIOSurfaceDrawQuad::create):
+ (WebCore::CCIOSurfaceDrawQuad::CCIOSurfaceDrawQuad):
+ (WebCore::CCIOSurfaceDrawQuad::materialCast):
+ (WebCore):
+ * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.h:
+ (CCIOSurfaceDrawQuad):
+ * platform/graphics/chromium/cc/CCLayerImpl.h:
+ (WebCore):
+ * platform/graphics/chromium/cc/CCRenderPass.h:
+ (WebCore):
+ * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
+ (WebCore::CCRenderPassDrawQuad::create):
+ (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
+ (WebCore::CCRenderPassDrawQuad::materialCast):
+ (WebCore):
+ * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
+ (CCRenderPassDrawQuad):
+ * platform/graphics/chromium/cc/CCRenderSurface.h:
+ (WebCore):
+ * platform/graphics/chromium/cc/CCSharedQuadState.h:
+ (WebCore):
+ * platform/graphics/chromium/cc/CCSolidColorDrawQuad.h:
+ (WebCore):
+ * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.cpp:
+ (WebCore::CCStreamVideoDrawQuad::create):
+ (WebCore::CCStreamVideoDrawQuad::CCStreamVideoDrawQuad):
+ (WebCore::CCStreamVideoDrawQuad::materialCast):
+ (WebCore):
+ * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.h:
+ (CCStreamVideoDrawQuad):
+ * platform/graphics/chromium/cc/CCTextureDrawQuad.h:
+ (WebCore):
+ * platform/graphics/chromium/cc/CCTileDrawQuad.cpp:
+ (WebCore::CCTileDrawQuad::create):
+ (WebCore::CCTileDrawQuad::CCTileDrawQuad):
+ (WebCore::CCTileDrawQuad::materialCast):
+ (WebCore):
+ * platform/graphics/chromium/cc/CCTileDrawQuad.h:
+ (CCTileDrawQuad):
+ * platform/graphics/chromium/cc/CCYUVVideoDrawQuad.cpp:
+ (WebCore::CCYUVVideoDrawQuad::create):
+ (WebCore::CCYUVVideoDrawQuad::CCYUVVideoDrawQuad):
+ (WebCore::CCYUVVideoDrawQuad::materialCast):
+ (WebCore):
+ * platform/graphics/chromium/cc/CCYUVVideoDrawQuad.h:
+ (CCYUVVideoDrawQuad):
+
+2012-07-11 Robert Kroeger <rjkroege@chromium.org>
+
+ [chromium] [regression] Don't use ScrollByPrecisePixels on Chromium Mac.
+ https://bugs.webkit.org/show_bug.cgi?id=91020
+
+ Reviewed by Adam Barth.
+
+ A change in https://bugs.webkit.org/show_bug.cgi?id=87535 to
+ improve the operation of smooth scrolling incorrectly caused
+ Chromium Mac to use the wrong scroll granularity on
+ hasPreciseScrollingDeltas() == true wheelevent scrolls.
+ Exclude the change on the Chromium Mac platform.
+
+ * platform/ScrollAnimator.cpp:
+ (WebCore::ScrollAnimator::handleWheelEvent): Adjusted #ifdef to exclude Chromium
+ Mac from ScrollByPrecisePixels change.
+
+2012-07-11 Jia Pu <jpu@apple.com>
+
+ On Mac, autocorrection sometimes fails to take place in Safari.
+ https://bugs.webkit.org/show_bug.cgi?id=89982
+
+ Reviewed by Ryosuke Niwa.
+
+ We should check the value of shouldCheckForCorrection, not shouldShowCorrectionPanel, to determine if we should
+ early return in markAndReplaceFor(). Also, since we don't want autocorrection to happen when we only change selection,
+ not the content, so we shouldn't set TextCheckingTypeCorrection flag in markMisspellingsAndBadGrammar() as this function
+ is triggered only by selection change.
+
+ * editing/Editor.cpp:
+ (WebCore::Editor::markAndReplaceFor):
+ (WebCore::Editor::markMisspellingsAndBadGrammar):
+
+2012-07-11 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r122361.
+ http://trac.webkit.org/changeset/122361
+ https://bugs.webkit.org/show_bug.cgi?id=91027
+
+ Broke Windows build and fast/forms/state-restore-broken-
+ state.html (Requested by rniwa on #webkit).
+
+ * testing/Internals.idl:
+
+2012-07-10 Simon Fraser <simon.fraser@apple.com>
+
+ Assertion ASSERTION FAILED: enclosingIntRect(rendererMappedResult) == enclosingIntRect(FloatQuad(result).boundingBox()) when compositing in paginated mode
+ https://bugs.webkit.org/show_bug.cgi?id=90919
+
+ Reviewed by Antti Koivisto.
+
+ r121124 added a fast path for geometry mapping that goes via layers
+ when possible. However, this broke paginated pages, which put
+ the root (RenderView) layer into column mode, because it failed
+ to check for columns on the ancestor layer.
+
+ Rather than make a risky change to convertToLayerCoords(), add a local
+ function canMapViaLayer(), which is like RenderLayer::canUseConvertToLayerCoords(),
+ but doesn't check for compositing (compositing itself is not a reason
+ to avoid convertToLayerCoords). Call canMapViaLayer() with the ancestorLayer
+ to check whether the ancestor has columns, which fixes the bug.
+
+ Test: compositing/columns/geometry-map-paginated-assert.html
+
+ * rendering/RenderGeometryMap.cpp:
+ (WebCore::canMapViaLayer):
+ (WebCore::RenderGeometryMap::pushMappingsToAncestor):
+
+2012-07-11 Dana Jansens <danakj@chromium.org>
+
+ [chromium] Rename layerRect to contentRect for rects that live in content space
+ https://bugs.webkit.org/show_bug.cgi?id=90843
+
+ Reviewed by Adrienne Walker.
+
+ Dropped the layerTransform() from CCSharedQuadState, as nothing should be
+ using it to draw with. RenderPasses need a weird drawTransform right now
+ which was stored in layerTransform, so moved this to the RenderPass quad.
+
+ No new tests. No change in behaviour.
+
+ * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp:
+ (WebCore::CanvasLayerTextureUpdater::paintContents):
+ * platform/graphics/chromium/ContentLayerChromium.cpp:
+ (WebCore::ContentLayerChromium::update):
+ (WebCore::ContentLayerChromium::needMoreUpdates):
+ * platform/graphics/chromium/ImageLayerChromium.cpp:
+ (WebCore::ImageLayerChromium::update):
+ * platform/graphics/chromium/LayerChromium.cpp:
+ (WebCore::LayerChromium::visibleContentOpaqueRegion):
+ * platform/graphics/chromium/LayerChromium.h:
+ (WebCore::LayerChromium::visibleContentRect):
+ (WebCore::LayerChromium::setVisibleContentRect):
+ (LayerChromium):
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::drawRenderPassQuad):
+ (WebCore::LayerRendererChromium::drawTileQuad):
+ (WebCore::LayerRendererChromium::drawYUVVideoQuad):
+ (WebCore::LayerRendererChromium::drawStreamVideoQuad):
+ (WebCore::LayerRendererChromium::drawIOSurfaceQuad):
+ * platform/graphics/chromium/TiledLayerChromium.cpp:
+ (WebCore::TiledLayerChromium::updateBounds):
+ (WebCore::TiledLayerChromium::setNeedsDisplayRect):
+ (WebCore::TiledLayerChromium::invalidateContentRect):
+ (WebCore::TiledLayerChromium::updateTiles):
+ (WebCore::TiledLayerChromium::setTexturePriorities):
+ (WebCore::TiledLayerChromium::setTexturePrioritiesInRect):
+ (WebCore::TiledLayerChromium::visibleContentOpaqueRegion):
+ (WebCore::TiledLayerChromium::updateContentRect):
+ (WebCore::TiledLayerChromium::needsIdlePaint):
+ (WebCore::TiledLayerChromium::idlePaintRect):
+ * platform/graphics/chromium/TiledLayerChromium.h:
+ (TiledLayerChromium):
+ * platform/graphics/chromium/cc/CCDrawQuad.h:
+ (WebCore::CCDrawQuad::visibleContentRect):
+ * platform/graphics/chromium/cc/CCLayerImpl.cpp:
+ (WebCore::CCLayerImpl::createSharedQuadState):
+ (WebCore::CCLayerImpl::appendDebugBorderQuad):
+ (WebCore::CCLayerImpl::visibleContentOpaqueRegion):
+ * platform/graphics/chromium/cc/CCLayerImpl.h:
+ (WebCore::CCLayerImpl::visibleContentRect):
+ (WebCore::CCLayerImpl::setVisibleContentRect):
+ (CCLayerImpl):
+ * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
+ (WebCore::CCLayerTilingData::contentRectToTileIndices):
+ (WebCore::CCLayerTilingData::opaqueRegionInContentRect):
+ (WebCore::CCLayerTilingData::setBounds):
+ * platform/graphics/chromium/cc/CCLayerTilingData.h:
+ (CCLayerTilingData):
+ * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
+ (WebCore::calculateVisibleContentRect):
+ (WebCore::layerShouldBeSkipped):
+ (WebCore):
+ (WebCore::calculateVisibleAndScissorRectsInternal):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
+ (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
+ * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
+ (WebCore::addOcclusionBehindLayer):
+ * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
+ (WebCore::CCRenderPassDrawQuad::create):
+ (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
+ * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
+ (CCRenderPassDrawQuad):
+ (WebCore::CCRenderPassDrawQuad::drawTransform):
+ * platform/graphics/chromium/cc/CCRenderSurface.cpp:
+ (WebCore::CCRenderSurface::createSharedQuadState):
+ (WebCore::CCRenderSurface::createReplicaSharedQuadState):
+ (WebCore::CCRenderSurface::appendQuads):
+ * platform/graphics/chromium/cc/CCSharedQuadState.cpp:
+ (WebCore::CCSharedQuadState::create):
+ (WebCore::CCSharedQuadState::CCSharedQuadState):
+ (WebCore::CCSharedQuadState::isLayerAxisAlignedIntRect):
+ * platform/graphics/chromium/cc/CCSharedQuadState.h:
+ (CCSharedQuadState):
+ (WebCore::CCSharedQuadState::visibleContentRect):
+ * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
+ (WebCore::CCTiledLayerImpl::appendQuads):
+ (WebCore::CCTiledLayerImpl::visibleContentOpaqueRegion):
+
+2012-07-11 Chris Fleizach <cfleizach@apple.com>
+
+ ARIA spinbutton role incorrectly mapped to ProgressIndicatorRole
+ https://bugs.webkit.org/show_bug.cgi?id=77298
+
+ Reviewed by Anders Carlsson.
+
+ * accessibility/AccessibilityObject.cpp:
+ (WebCore::createARIARoleMap):
+
+2012-07-11 Huang Dongsung <luxtella@company100.net>
+
+ BitmapImage::frameIsCompleteAtIndex() must return false if ImageDecoder is not initialized.
+ https://bugs.webkit.org/show_bug.cgi?id=90757
+
+ Reviewed by Simon Fraser.
+
+ The current code fortunately has worked so far because only
+ BitmapImage::startAnimation calls frameIsCompleteAtIndex, and startAnimation
+ cannot call frameIsCompleteAtIndex if ImageDecoder is not yet initialized.
+ startAnimation returns at the first line becase shouldAnimate() always return
+ false in this case.
+
+ if (m_frameTimer || !shouldAnimate() || frameCount() <= 1)
+ return;
+
+ This change is needed because parallel image decoders call
+ BitmapImage::frameIsCompleteAtIndex in other places too.
+
+ No new tests, manually tested whether the caller exists or not that
+ calls BitmapImage::frameIsCompleteAtIndex() before ImageDecoder is
+ initialized.
+
+ * platform/graphics/BitmapImage.cpp:
+ (WebCore::BitmapImage::frameIsCompleteAtIndex):
+
+2012-07-11 Kevin Ollivier <kevino@theolliviers.com>
+
+ [wx] Unreviewed build fix. Update code to use the new constant name.
+
+ * platform/wx/PasteboardWx.cpp:
+ (WebCore::Pasteboard::documentFragment):
+
+2012-07-11 Kevin Ollivier <kevino@theolliviers.com>
+
+ [wx] Unreviewed build fix. Ignore array and sequence types for attributes as well
+ as functions since the CPP bindings do not yet support them.
+
+ * bindings/scripts/CodeGeneratorCPP.pm:
+ (SkipAttribute):
+
+2012-07-11 Kevin Ollivier <kevino@theolliviers.com>
+
+ [wx] Unreviewed build fix. Use DOMStringList instead of DOMString[] for in / out type.
+
+ * testing/Internals.idl:
+
+2012-07-11 Dana Jansens <danakj@chromium.org>
+
+ [chromium] Minimum size used for occlusion tracking should be a setting on CCLayerTreeHost
+ https://bugs.webkit.org/show_bug.cgi?id=90993
+
+ Reviewed by Adrienne Walker.
+
+ Move the default minimum size used for occlusion tracking from the
+ CCOcclusionTracker class into CCLayerTreeSettings. This value is then
+ used on both threads as the lower limit for any occlusion to be
+ remembered.
+
+ This allows us to use (0, 0) as the minimum size for tests, allowing all
+ occlusion to be tracked.
+
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+ (WebCore::CCLayerTreeHost::paintLayerContents):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.h:
+ (WebCore::CCLayerTreeSettings::CCLayerTreeSettings):
+ (CCLayerTreeSettings):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
+ (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
+ * platform/graphics/chromium/cc/CCOcclusionTracker.h:
+
+2012-07-11 Anders Carlsson <andersca@apple.com>
+
+ Add -Wtautological-compare and -Wsign-compare warning flags
+ https://bugs.webkit.org/show_bug.cgi?id=90994
+
+ Reviewed by Mark Rowe.
+
+ * Configurations/Base.xcconfig:
+
+2012-07-11 Dean Jackson <dino@apple.com>
+
+ TileCache layers have wrong border debug color
+ https://bugs.webkit.org/show_bug.cgi?id=90922
+
+ Reviewed by Simon Fraser.
+
+ Commit r122152 updated the layer hierarchy when a tile
+ cache is being used by the view. As part of that, GraphicsLayerClient::shouldUseTileCache()
+ was changed to return false in some situations (the idea was that it
+ should only be called from the createGraphicsLayer method). However
+ there were two other call points: one that sets the debug colors on
+ borders, the other was a call that keeps the document background in sync.
+
+ Add a new method usingTileCache() that returns the current state. Also fix
+ a FIXME where the debug code always called into the client rather than
+ caching the value on the GraphicsLayer.
+
+ Test: compositing/document-background-color.html
+
+ * platform/graphics/GraphicsLayer.cpp:
+ (WebCore::GraphicsLayer::GraphicsLayer):
+ (WebCore::GraphicsLayer::updateDebugIndicators): check the local variable when
+ setting the debug colors.
+ * platform/graphics/GraphicsLayer.h:
+ (GraphicsLayer): new bool member variable m_usingTileCache.
+ * platform/graphics/GraphicsLayerClient.h:
+ (WebCore::GraphicsLayerClient::usingTileCache): new virtual method to query if
+ this client is actually using the tile cache.
+ * platform/graphics/ca/GraphicsLayerCA.cpp:
+ (WebCore::GraphicsLayerCA::GraphicsLayerCA): set the member variable m_usingTileCache
+ if the GraphicsLayerClient says we are.
+ * rendering/RenderLayerBacking.h:
+ (WebCore::RenderLayerBacking::usingTileCache):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::documentBackgroundColorDidChange): call usingTileCache()
+ rather than shouldUseTileCache(), because the latter's value might not always reflect
+ the existence of a cache.
+
+2012-07-11 Ryosuke Niwa <rniwa@webkit.org>
+
+ Clang build fix after r122345.
+ Also let XCode do its own thing.
+
+ * WebCore.xcodeproj/project.pbxproj:
+ * html/HTMLCollection.cpp:
+ (WebCore::HTMLCollectionWithArrayStorage::item):
+ * html/HTMLCollection.h:
+ (HTMLCollectionWithArrayStorage):
+ * html/HTMLFormCollection.cpp:
+ (WebCore::HTMLFormCollection::itemInArrayAfter):
+ * html/HTMLFormCollection.h:
+ (HTMLFormCollection):
+ * html/HTMLPropertiesCollection.cpp:
+ (WebCore::HTMLPropertiesCollection::itemInArrayAfter):
+ * html/HTMLPropertiesCollection.h:
+ (HTMLPropertiesCollection):
+
+2012-07-11 Arnaud Renevier <a.renevier@sisa.samsung.com>
+
+ [Gtk] allow building with css-filters
+ https://bugs.webkit.org/show_bug.cgi?id=90908
+
+ Reviewed by Eric Seidel.
+
+ Add support for css-filters in Source/WebCore/GNUmakefile.am
+ configure.ac
+
+ No functional change, so no new tests.
+
+ * GNUmakefile.am:
+
+2012-07-10 Ryosuke Niwa <rniwa@webkit.org>
+
+ HTMLFormCollection::item and HTMLPropertiesCollection::item should share code
+ https://bugs.webkit.org/show_bug.cgi?id=90932
+
+ Reviewed by Anders Carlsson.
+
+ Merged HTMLFormCollection::item and HTMLPropertiesCollection::item as HTMLCollectionWithArrayStorage::item,
+ which can be merged into HTMLCollection::item in a follow up patch.
+
+ Also moved the call to invalidateCacheIfNeeded into HTMLCollection::updateNameCache() as done in
+ HTMLPropertiesCollection.
+
+ In addition, moved the early bail out for when the base element doesn't have itemscope attribute from individual
+ functions to updateRefElements so that HTMLCollectionWithArrayStorage::item doesn't need to have this check.
+
+ * html/HTMLCollection.cpp:
+ (WebCore::HTMLCollectionWithArrayStorage::item): Added. It's based on HTMLPropertiesCollection::item but it only
+ has the single loop (as supposed to nested loops) as HTMLFormCollection doesn't have multiple items per element
+ in the array unlike HTMLPropertiesCollection. In addition, offsetInArray (was i in HTMLPropertiesCollection::item) is
+ incremented in each itemAfter due to this semantic difference in each itemAfter.
+ (WebCore::HTMLCollection::updateNameCache):
+ (WebCore::HTMLCollection::hasNamedItem):
+ (WebCore::HTMLCollection::namedItems):
+ * html/HTMLCollection.h:
+ (HTMLCollectionWithArrayStorage):
+ (WebCore::HTMLCollectionWithArrayStorage::HTMLCollectionWithArrayStorage):
+ * html/HTMLFormCollection.cpp:
+ (WebCore::HTMLFormCollection::HTMLFormCollection):
+ (WebCore::HTMLFormCollection::calcLength): Merged numberOfFormControlElements since it was only called here.
+ (WebCore::HTMLFormCollection::itemAfter): Added. HTMLFormCollection has exactly one item per element in the array
+ so we increment the offset in each iteration. Note that when we're continuing a search, we need to increment
+ the offset in order to avoid returning the same item.
+ (WebCore::HTMLFormCollection::updateNameCache):
+ * html/HTMLFormCollection.h:
+ (HTMLFormCollection):
+ * html/HTMLPropertiesCollection.cpp:
+ (WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
+ (WebCore::HTMLPropertiesCollection::updateRefElements): Set m_hasItemRefElements true upfront since we never fail to
+ update ref elements. Bail out as soon as we cleared the m_itemRefElements when the base element doesn't have itemscope
+ content attribute.
+ (WebCore::HTMLPropertiesCollection::itemAfter): Added. We reset previousItem to null because the existing itemAfter
+ requires previousItem be null when we're moving to a new entry in m_itemRefElements.
+ (WebCore::HTMLPropertiesCollection::calcLength):
+ (WebCore::HTMLPropertiesCollection::cacheFirstItem):
+ (WebCore::HTMLPropertiesCollection::updateNameCache): Merged findProperties since this was the only caller.
+ (WebCore::HTMLPropertiesCollection::names):
+ (WebCore::HTMLPropertiesCollection::namedItem):
+ (WebCore::HTMLPropertiesCollection::hasNamedItem):
+ * html/HTMLPropertiesCollection.h:
+ (HTMLPropertiesCollection): Made updateRefElements public as it's called in HTMLCollectionWithArrayStorage::item.
+
+2012-07-11 Sami Kyostila <skyostil@chromium.org>
+
+ RenderView layer is marked as fixed position container in the scrolling tree if page scale != 1
+ https://bugs.webkit.org/show_bug.cgi?id=89216
+
+ Reviewed by Simon Fraser.
+
+ Render layers with CSS transforms should become containers for any fixed
+ positioned descendants. However, because this check is done with
+ RenderLayer::hasTransform(), we also end up marking the RenderLayer for the
+ RenderView as fixed position container if a non-identity page scale factor is
+ used. This is because page scale is applied as a transform for that layer.
+
+ This breaks fixed position layers, because they become fixed relative to the
+ RenderView layer instead of outer scroll clip layer.
+
+ The fix is to avoid marking any root layers as fixed position containers.
+
+ No new test because the scrolling tree isn't currently testable.
+
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
+
+2012-07-11 Julien Chaffraix <jchaffraix@webkit.org>
+
+ REGRESSION (r116203): overflow sections don't have scrollbars
+ https://bugs.webkit.org/show_bug.cgi?id=90052
+
+ Reviewed by Simon Fraser.
+
+ This issue stems from RenderLayers with overlay scrollbars not being considered
+ self-painting.
+
+ After r120395 (follow-up of r116203), we ignore subtrees that have no self-painting layer for
+ painting. Normal scrollbars are painted by their renderer so they were properly painted. However
+ overlay scrollbars need to be painted by their RenderLayer as a separate phase (see bug 57057) so
+ they were not painted anymore. The fix is simple: make RenderLayer with overlay scrollbars
+ self-painting as they should have been in the first place.
+
+ Unfortunately no tests as I don't think we have a good way of testing overlay
+ scrollbars. Tested manually though on the super simple test case from the bug.
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
+ Overlay scrollbars make the layer self-painting.
+
+ (WebCore::RenderLayer::updateScrollbarsAfterLayout):
+ Added a call to updateSelfPaintingLayer.
+
+ (WebCore::RenderLayer::styleChanged):
+ Moved the call to updateSelfPaintingLayer after recomputing the scrollbars to ensure proper behavior.
+ Added a comment underlining the reason.
+
+ (WebCore::RenderLayer::updateSelfPaintingLayer):
+ Renamed as it is now called during layout too.
+
+ * rendering/RenderLayer.h:
+ (RenderLayer): Updated after updateSelfPaintingLayer rename.
+
+2012-07-11 Allan Sandfeld Jensen <allan.jensen@nokia.com>
+
+ NodesFromRect doesn't work on SVG root elements.
+ https://bugs.webkit.org/show_bug.cgi?id=89990
+
+ Reviewed by Antonio Gomes.
+
+ Adds support for rect-based hit-testing on the SVG root element.
+ This means that while rect-based hit-testing is still not supported
+ within SVG elements, that at least it works on SVG root elements as
+ it would on any other replaced element.
+
+ Test: fast/dom/nodesFromRect-svg.html
+
+ * rendering/svg/RenderSVGRoot.cpp:
+ (WebCore::RenderSVGRoot::nodeAtPoint):
+
+2012-07-11 Joshua Netterfield <jnetterfield@rim.com>
+
+ [Qt] REGRESSION(r122250): It broke USE(3D_GRAPHICS)=1 and ENABLE(WEBGL)=0 builds
+ https://bugs.webkit.org/show_bug.cgi?id=90943
+
+ Reviewed by Csaba Osztrogonác.
+
+ Uses proper guarding in Extensions3DOpenGLCommon and Extensions3DOpenGLES as per https://bugs.webkit.org/show_bug.cgi?id=90506.
+
+ No new tests, becasue there is no new functionality.
+
+ * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp: Use proper guarding.
+ * platform/graphics/opengl/Extensions3DOpenGLES.cpp: Use proper guarding.
+
+2012-07-10 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: migrate from background images to CSS for statusbar rendering.
+ https://bugs.webkit.org/show_bug.cgi?id=90902
+
+ Reviewed by Vsevolod Vlasov.
+
+ This change removes statusbar* images and uses gradients and borders to re-create original inspector look.
+
+ * WebCore.gypi:
+ * inspector/front-end/Images/statusbarBackground.png: Removed.
+ * inspector/front-end/Images/statusbarBottomBackground.png: Removed.
+ * inspector/front-end/Images/statusbarButtons.png: Removed.
+ * inspector/front-end/Images/statusbarMenuButton.png: Removed.
+ * inspector/front-end/Images/statusbarMenuButtonSelected.png: Removed.
+ * inspector/front-end/StatusBarButton.js:
+ * inspector/front-end/WebKit.qrc:
+ * inspector/front-end/inspector.css:
+ (body.drawer-visible #main-status-bar):
+ (body.drawer-visible #main-status-bar::after):
+ (.status-bar-background):
+ (.status-bar > div):
+ (.glyph):
+ (button.status-bar-item):
+ (.status-bar button.status-bar-item:active):
+ (select.status-bar-item):
+ (select.status-bar-item, select.status-bar-item:hover):
+ (body.detached .alternate-status-bar-buttons-bar):
+ (.alternate-status-bar-buttons-bar):
+ (.alternate-status-bar-buttons-bar .status-bar-item):
+ (.alternate-status-bar-buttons-bar .status-bar-item.emulate-active):
+ (#drawer):
+ (body.drawer-visible #drawer-contents):
+ (#drawer-status-bar):
+ * inspector/front-end/inspector.html:
+ * inspector/front-end/scriptsPanel.css:
+ (button.status-bar-item.scripts-navigator-show-hide-button):
+ (button.status-bar-item.scripts-navigator-show-hide-button:active):
+ (button.status-bar-item.scripts-debugger-show-hide-button):
+ (button.status-bar-item.scripts-debugger-show-hide-button:active):
+
+2012-07-11 Jason Liu <jason.liu@torchmobile.com.cn>
+
+ [BlackBerry] crash in CookieDatabaseBackingStore.
+ https://bugs.webkit.org/show_bug.cgi?id=90270
+
+ Reviewed by George Staikos.
+
+ There is one case for this crash.
+ 1. A browser crashes and locks cookies' database for a while.
+ 2. Open a new browser when the old one doesn't finish crashing.
+ 3. The new one writes the cookies' database and receives a SQLITE_BUSY error
+ in CookieDatabaseBackingStore's invokeOpen. So this database isn't opened.
+ 4. invokeGetCookiesWithLimit returns 0.
+ 5. Crash happens when using a null pointer.
+
+ Add function setBusyTimeout(1000) and a guard for cookies' pointer.
+ setBusyTimeout will call sqlite3_busy_timeout.
+
+ When the SQLite database is accessed for reading it is locked for writing
+ until the reading access is finished. Another process cannot access the database
+ while it is locked. The timeout time sets a limit while this process tries to access
+ the locked database. If the database is unlocked within the timeout time it can be
+ accessed, otherwise an access fails.
+
+ No new tests. This crash is hard to reproduce, and it happens only on our platform.
+
+ * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
+ (WebCore::CookieDatabaseBackingStore::getCookiesFromDatabase):
+
+2012-07-11 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: Move revisions support to UISourceCode.
+ https://bugs.webkit.org/show_bug.cgi?id=90888
+
+ Reviewed by Pavel Feldman.
+
+ Moved revisions support to UISourceCode.
+ Revision management code is moved unchanged where possible and should be refactored later.
+
+ * inspector/front-end/CSSStyleModel.js:
+ (WebInspector.CSSStyleModelResourceBinding.prototype._innerStyleSheetChanged): revision is now added to uiSourceCode, not resource.
+ * inspector/front-end/ExtensionServer.js:
+ (WebInspector.ExtensionServer.prototype._notifyUISourceCodeContentCommitted):
+ Extension server is now listening for Workspace.UISourceCodeContentCommitted event instead of ResourceTreeModel.ResourceContentCommitted.
+ * inspector/front-end/Resource.js:
+ * inspector/front-end/ResourceTreeModel.js: ResourceTreeModel.ResourceContentCommitted renamed to Workspace.UISourceCodeContentCommitted.
+ * inspector/front-end/ResourceView.js:
+ (WebInspector.ResourceSourceFrame): ResourceSourceFrame is not update when revisions are added anymore as resource conenten is considered immutable now
+ * inspector/front-end/RevisionHistoryView.js:
+ (WebInspector.RevisionHistoryView.populateRevisions):
+ (WebInspector.RevisionHistoryView):
+ (WebInspector.RevisionHistoryView.showHistory):
+ (WebInspector.RevisionHistoryView.prototype._createUISourceCodeItem):
+ (WebInspector.RevisionHistoryView.prototype._revisionAdded.get if):
+ (WebInspector.RevisionHistoryView.prototype._revisionAdded):
+ (WebInspector.RevisionHistoryView.prototype._revealUISourceCode.get if):
+ (WebInspector.RevisionHistoryView.prototype._revealUISourceCode):
+ (WebInspector.RevisionHistoryView.prototype._reset):
+ * inspector/front-end/ScriptSnippetModel.js: Snippets are not loaded before ResourceTreeModel.mainFrame is available anymore.
+ (WebInspector.ScriptSnippetModel):
+ (WebInspector.ScriptSnippetModel.prototype._setScriptSnippetContent):
+ * inspector/front-end/UISourceCode.js:
+ (WebInspector.UISourceCode):
+ (WebInspector.UISourceCode.prototype.requestOriginalContent):
+ (WebInspector.UISourceCode.prototype._setContent):
+ (WebInspector.UISourceCode.prototype.addRevision):
+ (WebInspector.UISourceCode.prototype._restoreRevisionHistory):
+ (WebInspector.UISourceCode.prototype._clearRevisionHistory):
+ (WebInspector.UISourceCode.prototype.revertToOriginal):
+ (WebInspector.UISourceCode.prototype.revertAndClearHistory):
+ (WebInspector.UISourceCode.prototype.revertAndClearHistory.clearHistory):
+ (WebInspector.UISourceCode.prototype.commitWorkingCopy):
+ (WebInspector.UISourceCode.prototype.canonicalMimeType):
+ (WebInspector.Revision):
+ (WebInspector.Revision._revisionHistoryRegistry):
+ (WebInspector.Revision._ensureStaleRevisionsFileteredOut.persist):
+ (WebInspector.Revision._ensureStaleRevisionsFileteredOut):
+ (WebInspector.Revision.prototype.get uiSourceCode):
+ (WebInspector.Revision.prototype.get timestamp):
+ (WebInspector.Revision.prototype.get content):
+ (WebInspector.Revision.prototype.revertToThis):
+ (WebInspector.Revision.prototype.contentURL):
+ (WebInspector.Revision.prototype.contentType):
+ (WebInspector.Revision.prototype.requestContent):
+ (WebInspector.Revision.prototype.searchInContent):
+ (WebInspector.Revision.prototype._persist):
+ * inspector/front-end/UserAgentSupport.js: Drive-by closure compilation fix.
+ * inspector/front-end/Workspace.js:
+ * inspector/front-end/inspector.js: ScriptSnippetModel is now created after ResourceTreeModel.
+
+2012-07-11 MORITA Hajime <morrita@google.com>
+
+ WebCoreSupport needs objects each of which follows major WebCore objects
+ https://bugs.webkit.org/show_bug.cgi?id=88499
+
+ Reviewed by Alexey Proskuryakov.
+
+ This change
+
+ - Makes Internals rough lifetime to follow Document.
+ Note that Internals can survive longer than Document in same case.
+ Internals::m_document is cleared when the document destruction is notified.
+ - Makes InternalSettings rough lifetime to follow the Page.
+ This is done by making InternalSettings a supplement of the page.
+ Now InternalSettings object is created per Page instead of per Frame.
+
+ Per-test setting clearance is done by newly introduced InternalSettings::Backup,
+ which recovers the modified settings and refreshes it for each time a test starts.
+
+ * WebCore.exp.in:
+ * testing/InternalSettings.cpp:
+ (WebCore::InternalSettings::Backup::Backup):
+ (WebCore):
+ (WebCore::InternalSettings::Backup::restoreTo):
+ (WebCore::InternalSettings::from):
+ (WebCore::InternalSettings::~InternalSettings):
+ (WebCore::InternalSettings::InternalSettings):
+ (WebCore::InternalSettings::reset):
+ (WebCore::InternalSettings::settings):
+ (WebCore::InternalSettings::setFixedElementsLayoutRelativeToFrame):
+ (WebCore::InternalSettings::setFixedPositionCreatesStackingContext):
+ (WebCore::InternalSettings::allowRoundingHacks):
+ (WebCore::InternalSettings::userPreferredLanguages):
+ (WebCore::InternalSettings::setUserPreferredLanguages):
+ (WebCore::InternalSettings::setShouldDisplayTrackKind):
+ (WebCore::InternalSettings::shouldDisplayTrackKind):
+ (WebCore::InternalSettings::setPagination):
+ * testing/InternalSettings.h:
+ (Backup):
+ (InternalSettings):
+ (WebCore::InternalSettings::page):
+ * testing/InternalSettings.idl:
+ * testing/Internals.cpp:
+ (WebCore::Internals::Internals):
+ (WebCore):
+ (WebCore::Internals::contextDocument):
+ (WebCore::Internals::frame):
+ (WebCore::Internals::settings):
+ (WebCore::Internals::setPagination): Replaced as an alias.
+ (WebCore::Internals::userPreferredLanguages): Replaced as an alias.
+ (WebCore::Internals::setUserPreferredLanguages): Replaced as an alias.
+ (WebCore::Internals::setShouldDisplayTrackKind): Replaced as an alias.
+ (WebCore::Internals::shouldDisplayTrackKind): Replaced as an alias.
+ (WebCore::Internals::emitInspectorDidBeginFrame):
+ (WebCore::Internals::emitInspectorDidCancelFrame):
+ (WebCore::Internals::allowRoundingHacks): Replaced as an alias.
+ * testing/Internals.h:
+ (WebCore):
+ (Internals):
+ * testing/js/WebCoreTestSupport.cpp:
+ (WebCoreTestSupport::injectInternalsObject):
+ (WebCoreTestSupport::resetInternalsObject):
+ * testing/v8/WebCoreTestSupport.cpp:
+ (WebCoreTestSupport::injectInternalsObject):
+ (WebCoreTestSupport::resetInternalsObject):
+
+2012-07-11 Yoshifumi Inoue <yosin@chromium.org>
+
+ [Mac] Expose time format related functions
+ https://bugs.webkit.org/show_bug.cgi?id=90956
+
+ Reviewed by Kent Tamura.
+
+ This patch introduces localizedTimeFormatText, localizedShortTimeFormatText
+ and timeAMPMLabels for Mac within feature flag ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
+
+ See also:
+ ICU version: https://bugs.webkit.org/show_bug.cgi?id=89965
+ Win version: https://bugs.webkit.org/show_bug.cgi?id=90236
+
+ No new tests. This patch doesn't change behavior.
+
+ * platform/text/mac/LocalizedDateMac.cpp:
+ (WebCore::localizedTimeFormatText): Added.
+ (WebCore::localizedShortTimeFormatText): Added.
+ (WebCore::timeAMPMLabels): Added.
+
+2012-07-11 Kenichi Ishibashi <bashi@chromium.org>
+
+ [Chromium] Adding HarfBuzz-ng for Linux
+ https://bugs.webkit.org/show_bug.cgi?id=90362
+
+ Reviewed by Tony Chang.
+
+ This patch adds harfbuzz-ng support for Chromium Linux port as a part of
+ transition from old harfbuzz. HarfBuzzFaceSkia.cpp implements harfbuzz-ng
+ callbacks by using Skia APIs. For now, the feature is enabled only when
+ WTF_USE_HARFBUZZ_NG is defined.
+
+ No new tests. No change in behavior now.
+
+ * WebCore.gyp/WebCore.gyp: Added use_harfbuzz_ng variable and related files.
+ * WebCore.gypi: Added HarfBuzzFaceSkia.cpp
+ * platform/graphics/harfbuzz/FontHarfBuzz.cpp: Added USE(HARFBUZZ_NG).
+ (WebCore::Font::drawComplexText):
+ (WebCore::Font::floatWidthForComplexText):
+ (WebCore::Font::offsetForPositionForComplexText):
+ (WebCore::Font::selectionRectForComplexText):
+ * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp: Ditto.
+ (WebCore):
+ (WebCore::FontPlatformData::harfbuzzFace):
+ * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h: Ditto.
+ (FontPlatformData):
+ * platform/graphics/harfbuzz/ng/HarfBuzzFaceSkia.cpp: Added.
+ (WebCore):
+ (WebCore::SkiaScalarToHarfbuzzPosition):
+ (WebCore::SkiaGetGlyphWidthAndExtents):
+ (WebCore::harfbuzzGetGlyph):
+ (WebCore::harfbuzzGetGlyphHorizontalAdvance):
+ (WebCore::harfbuzzGetGlyphHorizontalOrigin):
+ (WebCore::harfbuzzGetGlyphExtents):
+ (WebCore::harfbuzzSkiaGetFontFuncs):
+ (WebCore::harfbuzzSkiaGetTable):
+ (WebCore::destroyPaint):
+ (WebCore::HarfBuzzFace::createFace):
+ (WebCore::HarfBuzzFace::createFont):
+ (WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
+ * platform/graphics/skia/GlyphPageTreeNodeSkia.cpp: Added USE(HARFBUZZ_NG).
+ (WebCore::substituteWithVerticalGlyphs):
+
+2012-07-11 Taiju Tsuiki <tzik@chromium.org>
+
+ Web Inspector: Clean up FileSystem related code
+ https://bugs.webkit.org/show_bug.cgi?id=90592
+
+ Reviewed by Vsevolod Vlasov.
+
+ Clean up FileSystem related code in Inspector as follows:
+ - Clean up layout tests and add test case for error case,
+ - Fix error handling on request,
+ - s/GetFileSystemRootTask/FileSystemRootRequest/g
+ - s/ReadDirectoryTask/DirectoryContentRequest/g
+ - s/ReadFileTask/FileContentRequest/g
+
+ Tests: http/tests/inspector/filesystem/request-directory-content.html
+ http/tests/inspector/filesystem/request-file-content.html
+ http/tests/inspector/filesystem/request-filesystem-root.html
+ http/tests/inspector/filesystem/request-metadata.html
+
+ * inspector/InspectorFileSystemAgent.cpp:
+ (WebCore):
+ (WebCore::InspectorFileSystemAgent::requestFileSystemRoot): Add early error handling.
+ (WebCore::InspectorFileSystemAgent::requestDirectoryContent): Add early error handling.
+ (WebCore::InspectorFileSystemAgent::requestMetadata): Add early error handling.
+ (WebCore::InspectorFileSystemAgent::requestFileContent): Add early error handling.
+ * inspector/InspectorFileSystemAgent.h: Remove unused forward declaration and unused header.
+ (WebCore):
+ (InspectorFileSystemAgent):
+ * inspector/front-end/FileSystemModel.js:
+ (WebInspector.FileSystemRequestManager.prototype.requestFileSystemRoot.requestAccepted):
+ (WebInspector.FileSystemRequestManager.prototype.requestFileSystemRoot): Add early error handling.
+ (WebInspector.FileSystemRequestManager.prototype.requestDirectoryContent.requestAccepted):
+ (WebInspector.FileSystemRequestManager.prototype.requestDirectoryContent): Add early error handling.
+ (WebInspector.FileSystemRequestManager.prototype.requestMetadata.requestAccepted):
+ (WebInspector.FileSystemRequestManager.prototype.requestMetadata): Add early error handling.
+ (WebInspector.FileSystemRequestManager.prototype.requestFileContent.requestAccepted):
+ (WebInspector.FileSystemRequestManager.prototype.requestFileContent): Add early error handling.
+
+2012-07-09 Eugene Klyuchnikov <eustas.bug@gmail.com>
+
+ Web Inspector: Forward message loop instrumentation data to frontend.
+ https://bugs.webkit.org/show_bug.cgi?id=89584
+
+ Reviewed by Yury Semikhatsky.
+
+ Transmit collected message loop tasks to inspector frontend.
+ Now "Program" should be a top-level event on browsers that
+ support message loop instrumentation.
+ Frontend was changed so that user will not see any changes.
+
+ * inspector/InspectorTimelineAgent.cpp:
+ (TimelineRecordType):
+ Added new event type - "Program"
+ (WebCore::InspectorTimelineAgent::willProcessTask):
+ Begin "Program" event.
+ (WebCore::InspectorTimelineAgent::didProcessTask):
+ Finish "Program" event.
+ (WebCore::InspectorTimelineAgent::setHeapSizeStatistic):
+ Do not add counters to "Program" events.
+ (WebCore):
+ (WebCore::InspectorTimelineAgent::innerSetHeapSizeStatistic):
+ Renamed from "setHeapSizeStatistic"
+ * inspector/InspectorTimelineAgent.h:
+ (InspectorTimelineAgent):
+ * inspector/front-end/MemoryStatistics.js:
+ (WebInspector.MemoryStatistics.prototype._onRecordAdded):
+ Unwraps "Program" events.
+ (WebInspector.MemoryStatistics.prototype._innerRecordAdded):
+ Renamed from "_onRecordAdded"
+ * inspector/front-end/TimelineFrameController.js:
+ (WebInspector.TimelineFrameController.prototype._addRecord):
+ Unwraps "Program" events.
+ (WebInspector.TimelineFrameController.prototype._innerAddRecord):
+ Renamed from "_addRecord"
+ * inspector/front-end/TimelineModel.js:
+ * inspector/front-end/TimelineOverviewPane.js:
+ (WebInspector.TimelineCategoryStrips.prototype.update.appendRecord):
+ Filter out "Program" category.
+ (WebInspector.TimelineCategoryStrips.prototype.update):
+ * inspector/front-end/TimelinePanel.js:
+ (WebInspector.TimelinePanel.prototype._createStatusbarButtons):
+ Filter out "Program" category.
+ (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
+ Unwraps "Program" events.
+ * inspector/front-end/TimelinePresentationModel.js:
+ (WebInspector.TimelinePresentationModel.categories):
+ Added "Program" category.
+ (WebInspector.TimelinePresentationModel.recordStyle):
+ Ditto.
+ (WebInspector.TimelinePresentationModel.prototype.addRecord):
+ Unwraps "Program" events.
+ (WebInspector.TimelinePresentationModel.prototype._addRecord):
+ Renamed from "addRecord"
+
+2012-07-11 Kenichi Ishibashi <bashi@chromium.org>
+
+ [Chromium] Adding HarfBuzz-ng for Linux
+ https://bugs.webkit.org/show_bug.cgi?id=90362
+
+ Reviewed by Tony Chang.
+
+ This patch adds harfbuzz-ng support for Chromium Linux port as a part of
+ transition from old harfbuzz. HarfBuzzFaceSkia.cpp implements harfbuzz-ng
+ callbacks by using Skia APIs. For now, the feature is enabled only when
+ WTF_USE_HARFBUZZ_NG is defined.
+
+ No new tests. No change in behavior now.
+
+ * WebCore.gyp/WebCore.gyp: Added use_harfbuzz_ng variable and related files.
+ * WebCore.gypi: Added HarfBuzzFaceSkia.cpp
+ * platform/graphics/harfbuzz/FontHarfBuzz.cpp: Added USE(HARFBUZZ_NG).
+ (WebCore::Font::drawComplexText):
+ (WebCore::Font::floatWidthForComplexText):
+ (WebCore::Font::offsetForPositionForComplexText):
+ (WebCore::Font::selectionRectForComplexText):
+ * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp: Ditto.
+ (WebCore):
+ (WebCore::FontPlatformData::harfbuzzFace):
+ * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h: Ditto.
+ (FontPlatformData):
+ * platform/graphics/harfbuzz/ng/HarfBuzzFaceSkia.cpp: Added.
+ (WebCore):
+ (WebCore::SkiaScalarToHarfbuzzPosition):
+ (WebCore::SkiaGetGlyphWidthAndExtents):
+ (WebCore::harfbuzzGetGlyph):
+ (WebCore::harfbuzzGetGlyphHorizontalAdvance):
+ (WebCore::harfbuzzGetGlyphHorizontalOrigin):
+ (WebCore::harfbuzzGetGlyphExtents):
+ (WebCore::harfbuzzSkiaGetFontFuncs):
+ (WebCore::harfbuzzSkiaGetTable):
+ (WebCore::destroyPaint):
+ (WebCore::HarfBuzzFace::createFace):
+ (WebCore::HarfBuzzFace::createFont):
+ (WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
+ * platform/graphics/skia/GlyphPageTreeNodeSkia.cpp: Added USE(HARFBUZZ_NG).
+ (WebCore::substituteWithVerticalGlyphs):
+
+2012-07-11 Kenneth Russell <kbr@google.com>
+
+ compositing/webgl/webgl-nonpremultiplied-blend.html is flaky on Lion
+ https://bugs.webkit.org/show_bug.cgi?id=82412
+
+ Reviewed by Adrienne Walker.
+
+ When compositing premultipliedAlpha=false WebGL canvases, use a separate
+ blend function for the alpha channel to avoid writing alpha < 1. This
+ makes the behavior more consistent with all other compositing results
+ and avoids situations where the alpha channel is preserved on some
+ platforms and discarded on others.
+
+ Covered by existing tests.
+
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::drawTextureQuad):
+ Use separate alpha blend function when compositing premultipliedAlpha=false WebGL canvases.
+
+2012-07-10 Yoshifumi Inoue <yosin@chromium.org>
+
+ [Chromium-Windows] Implement functions for localized time format information
+ https://bugs.webkit.org/show_bug.cgi?id=90236
+
+ Reviewed by Kent Tamura.
+
+ This patch introduces following localized time format related
+ functions:
+ - localizedTimeFormatText
+ - localizeShortTimeFormatText()
+ - timeAMPMLabels
+ for Windows in feature flag: ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
+
+ See also:
+ ICU version: https://bugs.webkit.org/show_bug.cgi?id=89965
+ Mac version: https://bugs.webkit.org/show_bug.cgi?id=90237
+
+ Tests: WebKit/chromium/tests/LocalWinTest.cpp
+
+ * platform/text/LocaleWin.cpp:
+ (WebCore::mapCharacterToDateTimeFieldType): Added.
+ (WebCore::convertWindowsTimeFormatToLDML): Added.
+ (WebCore::LocaleWin::timeFormatText): Added.
+ (WebCore::LocaleWin::shortTimeFormatText): Added.
+ (WebCore::LocaleWin::timeAMPMLabels): Added.
+ * platform/text/LocaleWin.h:
+ (LocaleWin): Added time format related functions and variables.
+ * platform/text/LocalizedDateWin.cpp:
+ (WebCore::localizedTimeFormatText): Added.
+ (WebCore::localizedShortTimeFormatText): Added.
+ (WebCore::timeAMPMLabels): Added.
+
+2012-07-10 Douglas Stockwell <dstockwell@chromium.org>
+
+ Style not updated for element with display:none becoming first/last-child
+ https://bugs.webkit.org/show_bug.cgi?id=90356
+
+ Reviewed by Kent Tamura.
+
+ Always trigger style recalc when an element without a renderer becomes the first/last-child.
+
+ Tests: fast/css/first-child-display-change.html
+ fast/css/last-child-display-change.html
+
+ * dom/Element.cpp:
+ (WebCore::checkForSiblingStyleChanges):
+
+2012-07-10 Shinya Kawanaka <shinyak@chromium.org>
+
+ ShadowRoot should know its type in debug build.
+ https://bugs.webkit.org/show_bug.cgi?id=90933
+
+ Reviewed by Hajime Morita.
+
+ For assertion, ShadowRoot should know its type is UserAgentShadowRoot or AuthorShadowRoot.
+
+ This patch also renames ShadowRootCreationPurpose to ShadowRootType, since it is suitable
+ name for ShadowRoot to have.
+
+ No new tests, since it is used only for assertion.
+
+ * dom/Element.cpp:
+ (WebCore::Element::ensureShadowRoot):
+ * dom/ShadowRoot.cpp:
+ (WebCore::ShadowRoot::create):
+ * dom/ShadowRoot.h:
+ (ShadowRoot):
+ (WebCore::ShadowRoot::type):
+ * html/HTMLDetailsElement.cpp:
+ (WebCore::HTMLDetailsElement::createShadowSubtree):
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::createShadowSubtree):
+ * html/HTMLKeygenElement.cpp:
+ (WebCore::HTMLKeygenElement::HTMLKeygenElement):
+ * html/HTMLMeterElement.cpp:
+ (WebCore::HTMLMeterElement::createShadowSubtree):
+ * html/HTMLProgressElement.cpp:
+ (WebCore::HTMLProgressElement::createShadowSubtree):
+ * html/HTMLSummaryElement.cpp:
+ (WebCore::HTMLSummaryElement::createShadowSubtree):
+ * html/HTMLTextAreaElement.cpp:
+ (WebCore::HTMLTextAreaElement::createShadowSubtree):
+ * html/InputType.cpp:
+ (WebCore::InputType::destroyShadowSubtree): Asserts that ShadowRoot type is UserAgentShadowRoot.
+ * html/shadow/TextFieldDecorationElement.cpp:
+ (WebCore::getDecorationRootAndDecoratedRoot):
+ * svg/SVGTRefElement.cpp:
+ (WebCore::SVGTRefElement::createShadowSubtree):
+
+2012-07-10 George Staikos <staikos@webkit.org>
+
+ Add missing binding type String for IndexedDB.
+ https://bugs.webkit.org/show_bug.cgi?id=90351
+
+ Reviewed by Nikolas Zimmermann.
+
+ No new tests because it's already covered by IDB tests.
+
+ * bindings/js/JSIDBAnyCustom.cpp:
+ (WebCore::toJS):
+
+2012-07-10 Brian Anderson <brianderson@chromium.org>
+
+ [chromium] Make full texture updates explicit
+ https://bugs.webkit.org/show_bug.cgi?id=90507
+
+ Reviewed by Adrienne Walker.
+
+ Covered by existing tests.
+
+ * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
+ (WebCore::ScrollbarLayerChromium::updatePart):
+ * platform/graphics/chromium/TiledLayerChromium.cpp:
+ (WebCore::TiledLayerChromium::updateTiles):
+ * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
+ (WebCore::CCTextureUpdater::appendFullUpdate):
+ (WebCore::CCTextureUpdater::hasMoreUpdates):
+ (WebCore::CCTextureUpdater::update):
+ (WebCore::CCTextureUpdater::clear):
+ * platform/graphics/chromium/cc/CCTextureUpdater.h:
+ (CCTextureUpdater):
+
+2012-07-10 Shinya Kawanaka <shinyak@chromium.org>
+
+ Crash in nextLinePosition() due to accessing a removed root line box.
+ https://bugs.webkit.org/show_bug.cgi?id=90484
+
+ Reviewed by Abhishek Arya.
+
+ When <object> element is reattached, the 'content' style is compared to the old style.
+ If it is not the same, a flag to recalc style is enabled. Because of this, the recalc style flag
+ is not cleared in updateLayoutIgnorePendingStyleSheets() in nextLinePosition(), and it causes
+ the second layout in isEditablePosition(p). Then 'RootInlineBox root' is invalidated, but
+ it's used after that.
+
+ When the content of the same <object> elements are compared, they should be the same.
+ However, operator== for ContentData is not implemented correctly (it compares a pointer instead of
+ content). So operator== does not hold for the content of the same <object> elements.
+
+ Test: editing/execCommand/crash-extend-selection-forward.html
+
+ * rendering/style/ContentData.cpp:
+ (WebCore::operator==): Compares the instance of data instead of pointer.
+
+2012-07-10 Joshua Bell <jsbell@chromium.org>
+
+ IndexedDB: Ensure transaction abort events are deterministic in multiprocess ports
+ https://bugs.webkit.org/show_bug.cgi?id=90412
+
+ Reviewed by Tony Chang.
+
+ In multi-process ports (e.g. Chromium), transaction aborts triggered on the front-end could
+ be initiated while a "success" event was in-flight from the back end. This would lead to
+ apparently flaky behavior when requests would sometimes report success and sometimes report
+ an error. Address this by having front-end triggered aborts do the abort steps immediately,
+ then send the async abort request to the back end.
+
+ No new tests - behavior in single process ports (and DRT) covered by existing
+ tests. Will enable currently disabled Chromium tests to be enabled (crbug.com/83226).
+
+ * Modules/indexeddb/IDBRequest.cpp:
+ (WebCore::IDBRequest::IDBRequest): Initialize a new m_requestAborted flag, used to prevent
+ dispatching if an in-flight request comes in after the abort.
+ (WebCore::IDBRequest::abort): Set flag to prevent double dispatching.
+ (WebCore::IDBRequest::onError): Handle aborted-then-received-event case.
+ (WebCore::IDBRequest::onSuccess): Ditto.
+ (WebCore::IDBRequest::onSuccessWithContinuation): Ditto.
+ (WebCore::IDBRequest::dispatchEvent): On uncaught error, trigger abort on transaction front-end.
+ * Modules/indexeddb/IDBRequest.h:
+ (IDBRequest):
+ * Modules/indexeddb/IDBTransaction.cpp:
+ (WebCore::IDBTransaction::abort): Do abort steps locally first, then notify back-end.
+ (WebCore::IDBTransaction::onAbort): If abort wasn't triggered locally, clean up is still necessary.
+
+2012-07-10 Julien Chaffraix <jchaffraix@webkit.org>
+
+ REGRESSION(r112113): absolutely positioned INPUT boxes with a table cell containing block have a 0px height
+ https://bugs.webkit.org/show_bug.cgi?id=89209
+
+ Reviewed by Ojan Vafai.
+
+ Test: fast/forms/input-in-table-cell-no-value.html
+
+ The issue comes from the layout code not properly resetting the overriden heigth between layouts.
+
+ The test case relies on a table cell as it requires a 2 pass layout. Between the 2 passes, different
+ code paths would be taken, leading to previous values being used to over-constrain the inner content.
+
+ * rendering/RenderTextControlSingleLine.cpp:
+ (WebCore::RenderTextControlSingleLine::layout):
+ Ensure consistent layout by resetting any overriden conditional height.
+
+2012-07-10 Kevin Ellis <kevers@chromium.org>
+
+ Input elements with type=range do not have default touch handlers.
+ https://bugs.webkit.org/show_bug.cgi?id=88807
+
+ Reviewed by Antonio Gomes.
+
+ This patch adds support for touch event handling on input elements
+ and dragging a slider with touch start and move events. Previously,
+ manipulating a slider on a touch screen required generation of
+ synthetic mouse events.
+
+ Tests: fast/events/touch/touch-slider-no-js-touch-listener.html
+ fast/events/touch/touch-slider.html
+
+ * dom/Event.cpp:
+ (WebCore::Event::isTouchEvent):
+ (WebCore):
+ * dom/Event.h:
+ (Event):
+ * dom/Touch.cpp:
+ (WebCore::Touch::Touch):
+ * dom/Touch.h:
+ (WebCore::Touch::absoluteLocation):
+ (Touch):
+ * dom/TouchEvent.cpp:
+ (WebCore::TouchEvent::isTouchEvent):
+ (WebCore):
+ * dom/TouchEvent.h:
+ (TouchEvent):
+ * html/HTMLInputElement.cpp:
+ (WebCore::HTMLInputElement::HTMLInputElement):
+ (WebCore::HTMLInputElement::~HTMLInputElement):
+ (WebCore::HTMLInputElement::updateType):
+ (WebCore::HTMLInputElement::defaultEventHandler):
+ * html/HTMLInputElement.h:
+ (HTMLInputElement):
+ * html/InputType.cpp:
+ (WebCore):
+ (WebCore::InputType::handleTouchEvent):
+ (WebCore::InputType::hasTouchEventHandler):
+ * html/InputType.h:
+ (WebCore):
+ (ClickHandlingState):
+ (InputType):
+ * html/RangeInputType.cpp:
+ (WebCore):
+ (WebCore::RangeInputType::handleTouchEvent):
+ (WebCore::RangeInputType::hasTouchEventHandler):
+ * html/RangeInputType.h:
+ (RangeInputType):
+ * html/shadow/SliderThumbElement.h:
+ (SliderThumbElement):
+
+2012-07-10 Pravin D <pravind.2k4@gmail.com>
+
+ Re-factoring recalcColumn in AutoTableLayout.cpp for readability
+ https://bugs.webkit.org/show_bug.cgi?id=89636
+
+ Reviewed by Julien Chaffraix.
+
+ No test case required. Code re-factoring.
+
+ * rendering/AutoTableLayout.cpp:
+ Added a const integer place holder for 32760.
+
+ (WebCore::AutoTableLayout::recalcColumn):
+ Changes :
+ 1) Moved the continue statement above the bool cellHasContent for an early return.
+ 2) Replaced the constant 32760 by a placeholder.
+ 3) Initialization of columnLayout max and min logical widths is made common for both cells having col span == 1 and span > 1.
+ 4) Removed redundant check for cell logical width type.
+
+2012-07-10 Adam Barth <abarth@webkit.org>
+
+ WebCore::Settings for Hixie76 WebSocket protocol doesn't do anything and should be removed
+ https://bugs.webkit.org/show_bug.cgi?id=90910
+
+ Reviewed by Eric Seidel.
+
+ We've already removed the code that implements Hixie76 WebSockets. This
+ patch just removes the WebCore::Setting that used to control which
+ WebSocket protocol version we'd use.
+
+ I've left the WebKit-layer APIs in place, but they now don't do
+ anything. I'll remove all the Chromium callers shortly.
+
+ * page/Settings.cpp:
+ (WebCore::Settings::Settings):
+ * page/Settings.h:
+ (Settings):
+
+2012-07-10 Philip Rogers <pdr@google.com>
+
+ Crash due to SVG animation element not removed from target (before reset)
+ https://bugs.webkit.org/show_bug.cgi?id=90750
+
+ Reviewed by Abhishek Arya.
+
+ Previously we were not removing an animation element from
+ SVGDocumentExtensions::m_animatedElements which led to a crash.
+ This change properly removes animation elements in resetTargetElement
+ which both fixes this bug and will prevent others from hitting it in
+ the future.
+
+ Test: svg/animations/dynamic-modify-attributename-crash2.svg
+
+ * svg/SVGDocumentExtensions.cpp:
+ (WebCore::SVGDocumentExtensions::removeAllAnimationElementsFromTarget):
+
+ removeAllAnimationElementsFromTarget now adds all the animation elements
+ to a vector and iterates over it because the changes to resetTargetElement
+ would have caused us to modify the underlying hashset as we iterated. Note that
+ before we deleted animationElementsForTarget in removeAllAnimationElementsFromTarget
+ but that logic is now handled in removeAnimationElementFromTarget which is called
+ during resetTargetElement.
+
+ * svg/animation/SVGSMILElement.cpp:
+ (WebCore::SVGSMILElement::removedFrom):
+
+ Because of the changes in resetTargetElement, removedFrom was able to be
+ refactored. This patch changes removedFrom to call resetTargetElement rather
+ than have duplicated logic. There is a very small change in logic here:
+ animationAttributeChanged() is now called in removedFrom().
+
+ (WebCore::SVGSMILElement::resetTargetElement):
+
+ resetTargetElement now fully resets the target, including removing it from
+ m_animatedElements. This will prevent future instances of this bug.
+
+2012-07-10 Helder Correia <helder.correia@nokia.com>
+
+ [Qt] Repaint counter for accelerated compositing
+ https://bugs.webkit.org/show_bug.cgi?id=90116
+
+ Reviewed by Noam Rosenthal.
+
+ No new tests, just introducing a debug feature.
+
+ For this feature to be enabled, the environment variable
+ QT_WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS must be set to 1. Once enabled,
+ both repaint counters and tile borders will be painted.
+
+ Important notes:
+ - Only WebKit2 is targetted for now.
+ - There is no integration with Preferences. That aproach was
+ taken initially but revealed complex and overkill for such a
+ debugging-only functionality. Thus, to disable it simply restart with
+ the environment variable unset or set to some other value.
+
+ A Qt-specific drawRepaintCounter() function was added to
+ TextureMapperGL. A QImage is used as scratch buffer to paint borders and
+ counters. It is then uploaded to a BitmapTexture acquired from the pool
+ and finally draw by TextureMapper. The actual compositing happens inside
+ LayerBackingStore::paintToTextureMapper(). Each LayerBackingStoreTile
+ now has a repaint counter which gets incremented in
+ LayerBackingStore::updateTile().
+
+ * platform/graphics/texmap/TextureMapper.h:
+ * platform/graphics/texmap/TextureMapperGL.cpp:
+ (WebCore):
+ (WebCore::TextureMapperGL::drawRepaintCounter):
+ * platform/graphics/texmap/TextureMapperGL.h:
+ * platform/graphics/texmap/TextureMapperImageBuffer.h:
+
+2012-07-09 Dana Jansens <danakj@chromium.org>
+
+ [chromium] Replace use of ManagedTexture with CCScopedTexture for impl thread and remove implTextureManager from LayerRendererChromium
+ https://bugs.webkit.org/show_bug.cgi?id=90841
+
+ Reviewed by Adrienne Walker.
+
+ Remove the TextureManager from LayerRendererChromium, which was the last
+ instance of the class in the compositor. Instead of using ManagedTexture
+ objects for RenderPass textures, use instances of CCScopedTexture, which
+ manage the lifetime of the allocated texture ids. TextureManager will be
+ removed entirely once all callers of memoryUseBytes() have been removed.
+
+ No new tests. No change in behaviour.
+
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::LayerRendererChromium):
+ (WebCore::LayerRendererChromium::releaseRenderPassTextures):
+ (WebCore):
+ (WebCore::LayerRendererChromium::renderPassTextureSize):
+ (WebCore::LayerRendererChromium::renderPassTextureFormat):
+ (WebCore::LayerRendererChromium::decideRenderPassAllocationsForFrame):
+ (WebCore::LayerRendererChromium::haveCachedResourcesForRenderPassId):
+ (WebCore::LayerRendererChromium::drawQuad):
+ (WebCore::applyFilters):
+ (WebCore::LayerRendererChromium::drawBackgroundFilters):
+ (WebCore::LayerRendererChromium::drawRenderPassQuad):
+ (WebCore::LayerRendererChromium::drawHeadsUpDisplay):
+ (WebCore::LayerRendererChromium::getFramebufferTexture):
+ (WebCore::LayerRendererChromium::isCurrentRenderPass):
+ (WebCore::LayerRendererChromium::useRenderPass):
+ (WebCore::LayerRendererChromium::useScopedTexture):
+ (WebCore::LayerRendererChromium::bindFramebufferToTexture):
+ (WebCore::LayerRendererChromium::initializeSharedObjects):
+ * platform/graphics/chromium/LayerRendererChromium.h:
+ (WebCore):
+ (LayerRendererChromium):
+ * platform/graphics/chromium/TrackingTextureAllocator.cpp:
+ (WebCore::TrackingTextureAllocator::TrackingTextureAllocator):
+ (WebCore::TrackingTextureAllocator::createTexture):
+ * platform/graphics/chromium/TrackingTextureAllocator.h:
+ (WebCore::TrackingTextureAllocator::create):
+ (TrackingTextureAllocator):
+ * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
+ (WebCore::CCHeadsUpDisplay::draw):
+ * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
+ (WebCore):
+ (CCHeadsUpDisplay):
+ * platform/graphics/chromium/cc/CCRenderer.h:
+ (WebCore):
+ (CCRenderer):
+
+2012-07-10 Dean Jackson <dino@apple.com>
+
+ REGRESSION (r109610): Order of values in shorthand animation makes a difference
+ https://bugs.webkit.org/show_bug.cgi?id=84533
+ <rdar://problem/11831924>
+ <rdar://problem/11815787>
+
+ Reviewed by Simon Fraser.
+
+ A previous revision (r109610) updated the parsing of the animation shorthand
+ to make sure that animation-name wouldn't clobber other styles. The side effect
+ of this was that we'd no longer find animation-name if it wasn't first in the
+ list. This commit reverts the change and fixes it in a different way, by always
+ parsing animation-name as the last property in the shorthand. This means that
+ keywords for timing functions, fill modes and iteration will match before
+ animation name. In other words, if you want an animation called "forwards"
+ you should use the longhand property, because the shorthand will first match
+ that against animation-fill-mode.
+
+ Test: animations/animation-shorthand-name-order.html
+
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseAnimationShorthand): make a new array of longhand
+ properties to check for, with name as the last entry rather than the first.
+ Use this array to test the properties in the shorthand.
+
+2012-07-10 Huang Dongsung <luxtella@company100.net>
+
+ Fix a potential bug of BitmapImage::frameCount().
+ https://bugs.webkit.org/show_bug.cgi?id=90756
+
+ Reviewed by Simon Fraser.
+
+ If an ImageDecoder is not yet initialized, m_source.frameCount() returns 0. This
+ does not mean that the frame count is actually 0. So we must set
+ m_haveFrameCount to true only when m_frameCount is not 0.
+
+ The current code is okay because BitmapImage::frameCount() is never called
+ before the decoder is initialized. However, this no longer holds true once we
+ introduce parallel image decoders.
+
+ No new tests, no behavior change.
+
+ * platform/graphics/BitmapImage.cpp:
+ (WebCore::BitmapImage::frameCount):
+
+2012-07-10 Ojan Vafai <ojan@chromium.org>
+
+ Build fix. Removing unused variable from http://trac.webkit.org/changeset/122264.
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::computeContentLogicalHeightUsing):
+
+2012-07-10 Ryosuke Niwa <rniwa@webkit.org>
+
+ HTMLPropertiesCollection should share more code with HTMLCollection
+ https://bugs.webkit.org/show_bug.cgi?id=90842
+
+ Reviewed by Anders Carlsson.
+
+ Got rid of HTMLPropertiesCollection::m_cache, and added m_itemRefElements, m_propertyNames, m_propertyCache,
+ m_hasPropertyNameCache, and m_hasItemRefElements to HTMLPropertiesCollection itself. These are caches specific
+ to HTMLPropertiesCollection. Note that hasNameCache has been renamed to m_hasPropertyNameCache and itemRefElementPosition
+ has been replaced by cachedElementsArrayOffset() in HTMLCollectionCacheBase (also used in HTMLFormCollection).
+
+ Also deleted all methods on m_cache except updatePropertyCache since caches can be accessed directly from
+ HTMLPropertiesCollection.
+
+ * html/HTMLCollection.cpp:
+ (WebCore::HTMLCollection::invalidateCacheIfNeeded):
+ (WebCore::HTMLCollection::invalidateCache):
+ * html/HTMLCollection.h:
+ (HTMLCollection):
+ * html/HTMLPropertiesCollection.cpp:
+ (WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
+ (WebCore):
+ (WebCore::HTMLPropertiesCollection::updateRefElements):
+ (WebCore::HTMLPropertiesCollection::itemAfter):
+ (WebCore::HTMLPropertiesCollection::calcLength):
+ (WebCore::HTMLPropertiesCollection::cacheFirstItem):
+ (WebCore::HTMLPropertiesCollection::item):
+ (WebCore::HTMLPropertiesCollection::findProperties):
+ (WebCore::HTMLPropertiesCollection::updateNameCache):
+ (WebCore::HTMLPropertiesCollection::names):
+ (WebCore::HTMLPropertiesCollection::namedItem):
+ (WebCore::HTMLPropertiesCollection::hasNamedItem):
+ * html/HTMLPropertiesCollection.h:
+ (HTMLPropertiesCollection):
+ (WebCore::HTMLPropertiesCollection::clearCache):
+ (WebCore::HTMLPropertiesCollection::updatePropertyCache):
+
+2012-07-10 Ojan Vafai <ojan@chromium.org>
+
+ Add support for min-height:auto and min-width:auto
+ https://bugs.webkit.org/show_bug.cgi?id=88437
+
+ Reviewed by Tony Chang.
+
+ Right now auto does the same thing as min-height/min-width:0.
+ For flex-items it should be the same as min-content (followup patch).
+ http://dev.w3.org/csswg/css3-flexbox/#min-size-auto
+
+ Tests: fast/css/auto-min-size.html
+ fast/css/deprecated-flexbox-auto-min-size.html
+
+ * WebCore.order:
+ * css/CSSComputedStyleDeclaration.cpp:
+ (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
+ Return 0px for the computed value of auto.
+
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::validWidth):
+ (WebCore):
+ (WebCore::CSSParser::validHeight):
+ (WebCore::CSSParser::parseValue):
+ * css/CSSParser.h:
+ (CSSParser):
+ Restructure width/height parsing to reduce code duplication and make it easier
+ to add auto as a valid min value.
+
+ * platform/efl/RenderThemeEfl.cpp:
+ (WebCore::RenderThemeEfl::adjustSizeConstraints):
+ This code was unnecessarily checking intrinsicOrAuto since auto was previously
+ not an allowed value for minWidth/minHeight.
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::computeLogicalWidthInRegion):
+ (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
+ (WebCore::RenderBox::sizesLogicalWidthToFitContent):
+ (WebCore::RenderBox::computeLogicalHeight):
+ (WebCore::RenderBox::computeLogicalHeightUsing):
+ (WebCore::RenderBox::computeContentLogicalHeightUsing):
+ (WebCore::RenderBox::computeReplacedLogicalWidth):
+ (WebCore::RenderBox::computeReplacedLogicalWidthRespectingMinMaxWidth):
+ (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
+ (WebCore::RenderBox::computeReplacedLogicalHeight):
+ (WebCore::RenderBox::computeReplacedLogicalHeightRespectingMinMaxHeight):
+ (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
+ (WebCore::RenderBox::computePositionedLogicalWidth):
+ (WebCore::RenderBox::computePositionedLogicalWidthUsing):
+ (WebCore::RenderBox::computePositionedLogicalHeight):
+ (WebCore::RenderBox::computePositionedLogicalHeightUsing):
+ Need to pass a SizeType to all these methods so that we know if the Length
+ we're working with is a min length since auto has a different meaning now
+ for min lengths.
+
+ * rendering/RenderBox.h:
+ (RenderBox):
+ * rendering/RenderDeprecatedFlexibleBox.cpp:
+ (WebCore::RenderDeprecatedFlexibleBox::allowedChildFlex):
+ * rendering/RenderFlexibleBox.cpp:
+ (WebCore::RenderFlexibleBox::computePreferredLogicalWidths):
+ (WebCore::RenderFlexibleBox::computeAvailableFreeSpace):
+ (WebCore::RenderFlexibleBox::lineBreakLength):
+ (WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
+ * rendering/RenderReplaced.cpp:
+ (WebCore::RenderReplaced::computeReplacedLogicalWidth):
+ (WebCore::RenderReplaced::computeReplacedLogicalHeight):
+ * rendering/RenderScrollbarPart.cpp:
+ (WebCore::calcScrollbarThicknessUsing):
+ (WebCore::RenderScrollbarPart::computeScrollbarWidth):
+ (WebCore::RenderScrollbarPart::computeScrollbarHeight):
+ * rendering/style/RenderStyle.h:
+ Default minHeight/minWidth to auto instead of 0px.
+
+2012-07-10 Xianzhu Wang <wangxianzhu@chromium.org>
+
+ [Chromium-Android] Use default font rendering styles in FontPlatformData::querySystemForRenderStyle()
+ https://bugs.webkit.org/show_bug.cgi?id=90826
+
+ Reviewed by Adam Barth.
+
+ No new tests. The change to this file is refactoring only.
+
+ * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
+ (WebCore::FontPlatformData::querySystemForRenderStyle): Moved the "NoPreference" initialization into PlatformSupport::PlatformSupport::getRenderStyleForStrike().
+
+2012-07-10 Raymond Toy <rtoy@google.com>
+
+ AudioFIFO not correctly wrapping the write index on push
+ https://bugs.webkit.org/show_bug.cgi?id=90901
+
+ Reviewed by Chris Rogers.
+
+ No new tests
+
+ * platform/audio/AudioFIFO.cpp:
+ (WebCore::AudioFIFO::push): Wrap the write index, not read index!
+
+2012-07-10 Dana Jansens <danakj@chromium.org>
+
+ [chromium] Avoid allocating render pass textures that have no content
+ https://bugs.webkit.org/show_bug.cgi?id=90702
+
+ Reviewed by Adrienne Walker.
+
+ When OOM conditions are hit, textures are not allocated for some layers
+ which can prevent any quads from being present for a render surface.
+ This is used as a signal to prevent the RenderPass from allocating a
+ texture.
+
+ Replace the CCLayerTreeHostImpl::removePassesWithCachedTextures() method
+ with a general removeRenderPasses() which takes a culling control object
+ and will remove passes based on the inputs from the control object.
+
+ This new method is used for the old purpose of removing passes with cached
+ textures, as well as to remove passes that do not have any quad inputs.
+
+ Test: CCLayerTreeHostTestSurfaceNotAllocatedForLayersOutsideMemoryLimit
+
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::drawRenderPassQuad):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
+ (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
+ (WebCore):
+ (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithCachedTextures::shouldRemoveRenderPass):
+ (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithNoQuads::shouldRemoveRenderPass):
+ (WebCore::CCLayerTreeHostImpl::removeRenderPasses):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
+ (WebCore):
+ (CullRenderPassesWithCachedTextures):
+ (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithCachedTextures::renderPassListBegin):
+ (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithCachedTextures::renderPassListEnd):
+ (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithCachedTextures::renderPassListNext):
+ (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithCachedTextures::CullRenderPassesWithCachedTextures):
+ (CCLayerTreeHostImpl):
+ (CullRenderPassesWithNoQuads):
+ (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithNoQuads::renderPassListBegin):
+ (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithNoQuads::renderPassListEnd):
+ (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithNoQuads::renderPassListNext):
+
+2012-07-10 Joshua Netterfield <jnetterfield@rim.com>
+ Make GC3D and E3D more maintainable for GLES platforms
+ https://bugs.webkit.org/show_bug.cgi?id=90567
+
+ Reviewed by Rob Buis.
+
+ This patch cleans up code for WebGL on OpenGLES platforms which use
+ GraphicsContext3DOpenGL* and Extensions3DOpenGL*. Although
+ GraphicsContext3DOpenGL was already split into GraphicsContext3DOpenGL,
+ GraphicsContext3DOpenGLCommon, and GraphicsContext3DOpenGLES, this patch
+ is an attempt to refactor this code in a way that will help BlackBerry and
+ other teams support WebGL on mobile platforms with as little use of
+ "#IF USE(OPENGL_ES_2)" in common code as possible. Also included is the
+ separation of Extensions3DOpenGL into Extensions3DOpenGLCommon,
+ Extensions3DOpenGL, and Extensions3DOpenGLES as well as the introduction
+ of OpenGLESShims.
+
+ This patch is created in large part by Jonathan Feldstein.
+
+ No new tests: no new behaviour.
+
+ * PlatformBlackBerry.cmake: Recognize BlackBerry as OPENGL ES, add new files to build
+ * Target.pri: Add new Extensions3DOpenGL* to WebGL builds
+ * platform/graphics/GraphicsContext3D.h: Add validateDepthStencil, make systemAllowsMultisamplingOnATICards a a member function.
+ (WebCore):
+ * platform/graphics/OpenGLESShims.h: Added.
+ * platform/graphics/opengl/Extensions3DOpenGL.cpp: Move code to Extensions3DOpenGLCommon where possible
+ (WebCore::Extensions3DOpenGL::Extensions3DOpenGL): Reflect that it is now inherits Extensions3DCommon
+ (WebCore::Extensions3DOpenGL::supportsExtension): Contains OpenGL specific code from supports
+ (WebCore):
+ (WebCore::Extensions3DOpenGL::getExtensions): Returns a list of extensions
+ * platform/graphics/opengl/Extensions3DOpenGL.h: Remove functions now in Extensions3DOpenGLCommon
+ (WebCore):
+ (Extensions3DOpenGL):
+ * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp: Added.
+ (WebCore):
+ (WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon):
+ (WebCore::Extensions3DOpenGLCommon::~Extensions3DOpenGLCommon):
+ (WebCore::Extensions3DOpenGLCommon::supports):
+ (WebCore::Extensions3DOpenGLCommon::ensureEnabled):
+ (WebCore::Extensions3DOpenGLCommon::isEnabled):
+ (WebCore::Extensions3DOpenGLCommon::getGraphicsResetStatusARB):
+ (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE): Existed before, but did nothing. Now does what is says it does.
+ (WebCore::Extensions3DOpenGLCommon::initializeAvailableExtensions): Moved from Extensions3DOpenGL::supports
+ * platform/graphics/opengl/Extensions3DOpenGLCommon.h: Copied from Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.h.
+ (WebCore):
+ (Extensions3DOpenGLCommon):
+ * platform/graphics/opengl/Extensions3DOpenGLES.cpp: Added.
+ (WebCore):
+ (WebCore::Extensions3DOpenGLES::Extensions3DOpenGLES):
+ (WebCore::Extensions3DOpenGLES::~Extensions3DOpenGLES):
+ (WebCore::Extensions3DOpenGLES::framebufferTexture2DMultisampleIMG):
+ (WebCore::Extensions3DOpenGLES::renderbufferStorageMultisampleIMG):
+ (WebCore::Extensions3DOpenGLES::createVertexArrayOES):
+ (WebCore::Extensions3DOpenGLES::deleteVertexArrayOES):
+ (WebCore::Extensions3DOpenGLES::isVertexArrayOES):
+ (WebCore::Extensions3DOpenGLES::bindVertexArrayOES):
+ (WebCore::Extensions3DOpenGLES::supportsExtension): Contains OpenGLES specific code from supports
+ (WebCore::Extensions3DOpenGLES::getExtensions):
+ * platform/graphics/opengl/Extensions3DOpenGLES.h: Copied from Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.h.
+ (WebCore):
+ (Extensions3DOpenGLES):
+ * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
+ (WebCore::GraphicsContext3D::validateAttributes):
+ (WebCore):
+ (WebCore::GraphicsContext3D::renderbufferStorage):
+ (WebCore::GraphicsContext3D::texImage2D):
+ (WebCore::GraphicsContext3D::systemAllowsMultisamplingOnATICards): Now a member function.
+ (WebCore::GraphicsContext3D::getExtensions):
+ * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
+ (WebCore::GraphicsContext3D::validateDepthStencil):
+ (WebCore::GraphicsContext3D::clear):
+ (WebCore::GraphicsContext3D::isTexture):
+ (WebCore):
+ (WebCore::GraphicsContext3D::lineWidth):
+ (WebCore::GraphicsContext3D::linkProgram):
+ (WebCore::GraphicsContext3D::pixelStorei):
+ (WebCore::GraphicsContext3D::polygonOffset):
+ (WebCore::GraphicsContext3D::readPixels):
+ (WebCore::GraphicsContext3D::deleteBuffer):
+ * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
+ (WebCore::GraphicsContext3D::releaseShaderCompiler):
+ (WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary):
+ (WebCore::GraphicsContext3D::validateAttributes):
+ (WebCore):
+ (WebCore::GraphicsContext3D::getExtensions):
+ (WebCore::GraphicsContext3D::systemAllowsMultisamplingOnATICards): Now a member function.
+ * platform/graphics/qt/GraphicsContext3DQt.cpp:
+ (WebCore):
+ (WebCore::GraphicsContext3D::releaseShaderCompiler):
+
+2012-07-06 David Hyatt <hyatt@apple.com>
+
+ https://bugs.webkit.org/show_bug.cgi?id=90646
+ <rdar://problem/11648478> 3-pass pagination slows down pagination
+
+ Improve the logical top estimate function for margin collapsing to be more accurate. In particular
+ make the basic case of <body><p> or <body><h1> no longer be wrong. This estimate being incorrect
+ is not a big deal most of the time, but when paginating it is a very big deal, since you have to
+ relayout everything whenever your vertical placement is wrong.
+
+ Improving the estimation exposed a bug in an existing layout test. I had to clean up the buggy
+ code written for negative margin-related float detection and fix an invalid layout test to
+ actually be correct.
+
+ Reviewed by Simon Fraser.
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::collapseMargins):
+ (WebCore::RenderBlock::marginBeforeEstimateForChild):
+ (WebCore):
+ (WebCore::RenderBlock::estimateLogicalTopPosition):
+ (WebCore::RenderBlock::marginValuesForChild):
+ * rendering/RenderBlock.h:
+ (RenderBlock):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::shrinkLogicalWidthToAvoidFloats):
+ (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
+
+2012-07-10 Alexei Filippov <alexeif@chromium.org>
+
+ Web Inspector: Count inspector memory used to traverse DOM in native memory snapshots.
+ https://bugs.webkit.org/show_bug.cgi?id=90456
+
+ Inspector may take significant amount of memory when traversing DOM structure.
+ Take it into account and report under inspector memory.
+
+ Reviewed by Pavel Feldman.
+
+ * dom/MemoryInstrumentation.h:
+ (MemoryInstrumentation):
+ (WebCore::MemoryInstrumentation::calculateContainerSize):
+ (WebCore::MemoryInstrumentation::reportHashMap):
+ (WebCore::MemoryInstrumentation::reportHashSet):
+ (WebCore::MemoryInstrumentation::reportVector):
+ * inspector/InspectorMemoryAgent.cpp:
+ (MemoryBlockName):
+ (WebCore):
+ (WebCore::domTreeInfo):
+ (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
+
+2012-07-10 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+
+ [GTK] Fix memory leaks by adopting allocation of GdkPixbuf
+ https://bugs.webkit.org/show_bug.cgi?id=90790
+
+ Reviewed by Carlos Garcia Campos.
+
+ Fixed a memory leak in paintGdkPixbuf by adopting an allocation
+ of GdkPixbuf.
+
+ No new tests. No change in behavior.
+
+ * platform/gtk/RenderThemeGtk.cpp:
+ (WebCore::paintGdkPixbuf):
+
+2012-07-10 Konrad Piascik <kpiascik@rim.com>
+
+ Web Inspector: Geolocation override
+ https://bugs.webkit.org/show_bug.cgi?id=89365
+
+ Reviewed by Yong Li.
+
+ Added a way to override the geoloation of a client using Web
+ Inspector.
+
+ New tests added.
+ * LayoutTests/inspector/geolocation-success.html:
+ * LayoutTests/inspector/getlocation-error.html:
+
+ * Modules/geolocation/GeolocationController.cpp:
+ (WebCore::GeolocationController::GeolocationController): Now store and
+ save the Page in m_page.
+ (WebCore::GeolocationController::positionChanged): Check if position
+ is overriden in Web Inspector.
+ * Modules/geolocation/GeolocationController.h:
+ (GeolocationController): Add member variable m_page for Page*.
+ * inspector/Inspector.json: Add new methods for setting and clearing
+ the GeoloationPosition and GeolocationError objects in InspectorPageAgent.
+ * inspector/InspectorInstrumentation.cpp:
+ (WebCore):
+ (WebCore::InspectorInstrumentation::checkGeolocationPositionOrErrorImpl):
+ Add methods to check whether GeolocationPosition or GeolocationError
+ are set in InspectorPageAgent.
+ * inspector/InspectorInstrumentation.h:
+ (WebCore):
+ (InspectorInstrumentation):
+ (WebCore::InspectorInstrumentation::checkGeolocationPositionOrError):
+ * inspector/InspectorPageAgent.cpp:
+ (WebCore::InspectorPageAgent::InspectorPageAgent): Initialize new
+ member variables of GeolocationPosition and GeolocationError.
+ (WebCore::InspectorPageAgent::setGeolocationData): Set Position and
+ Error data and call appropriate GeolocaitonController methods.
+ (WebCore):
+ (WebCore::InspectorPageAgent::clearGeolocationData):
+ (WebCore::InspectorPageAgent::sendGeolocationError):
+ * inspector/InspectorPageAgent.h:
+ (WebCore::InspectorPageAgent::geolocationPosition): Getter for
+ GeolocationPosition.
+ (InspectorPageAgent):
+ * inspector/front-end/Settings.js: Added new settings for
+ GeolocationPosition and GeolocationError
+ * inspector/front-end/SettingsScreen.js: Added new control for
+ Geolocaiton.
+ (WebInspector.UserAgentSettingsTab):
+ (WebInspector.UserAgentSettingsTab.prototype._createDeviceMetricsElement):
+ (WebInspector.UserAgentSettingsTab.prototype._onGeolocationOverrideCheckboxClicked):
+ (WebInspector.UserAgentSettingsTab.prototype._applyGeolocationUserInput):
+ (WebInspector.UserAgentSettingsTab.prototype._setGeolocationPosition.set if):
+ (WebInspector.UserAgentSettingsTab.prototype._setGeolocationPosition):
+ (WebInspector.UserAgentSettingsTab.prototype._createGeolocationOverrideElement.createInput):
+ (WebInspector.UserAgentSettingsTab.prototype._createGeolocationOverrideElement):
+ * inspector/front-end/UserAgentSupport.js: New GeolocationPosition
+ Object added along with setting helper methods. Added new setting
+ changed handlers for Position and Error.
+ (WebInspector.UserAgentSupport.GeolocationPosition):
+ (WebInspector.UserAgentSupport.GeolocationPosition.prototype.toSetting):
+ (WebInspector.UserAgentSupport.GeolocationPosition.parseSetting):
+ (WebInspector.UserAgentSupport.GeolocationPosition.parseUserInput):
+ (WebInspector.UserAgentSupport.prototype.get _onGeolocationErrorChanged):
+
+2012-07-10 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: Refactor resource revisions before moving to UISourceCode.
+ https://bugs.webkit.org/show_bug.cgi?id=90855
+
+ Reviewed by Pavel Feldman.
+
+ Revisions are now persisted based on mainFrame.loaderId, not resource.loaderId which makes filtering out stale persisted revisions easier.
+ Restoring revisions from local storage is separated from filtering out stale persisted revisions.
+ Resource._clearRevisionHistory and Resource._restoreRevisions are not static anymore.
+ Renamed localStorage field for persisting revisions: "resource-history" -> "revision-history"
+
+ * inspector/front-end/Resource.js:
+ (WebInspector.Resource):
+ (WebInspector.Resource.prototype.addRevision):
+ (WebInspector.Resource.prototype._restoreRevisionHistory):
+ (WebInspector.Resource.prototype._clearRevisionHistory):
+ (WebInspector.Resource.prototype.revertAndClearHistory.clearHistory):
+ (WebInspector.Resource.prototype.revertAndClearHistory):
+ (WebInspector.Revision):
+ (WebInspector.Revision._revisionHistoryRegistry):
+ (WebInspector.Revision._ensureStaleRevisionsFileteredOut.persist):
+ (WebInspector.Revision._ensureStaleRevisionsFileteredOut):
+ (WebInspector.Revision.prototype._persist):
+ * inspector/front-end/ResourceTreeModel.js:
+ (WebInspector.ResourceTreeModel.prototype._processCachedResources):
+ (WebInspector.ResourceTreeModel.prototype._addFramesRecursively):
+ * inspector/front-end/RevisionHistoryView.js:
+ * inspector/front-end/UISourceCode.js:
+ (WebInspector.UISourceCode.prototype._revisionAdded):
+
+2012-07-10 Alice Cheng <alice_cheng@apple.com>
+
+ Editing: Reproducible crasher when pasting a 0x0 image into Mail
+ https://bugs.webkit.org/show_bug.cgi?id=90640
+ <rdar://problem/11141920>
+
+ Reviewed by Brady Eidson.
+
+ 0x0 images don't get a resource representation in the WebArchive, so we need a null check
+
+ Test: TestWebKitAPI/Tests/mac/0.png
+ TestWebKitAPI/Tests/mac/WebViewCanPasteZeroPng.mm
+
+ * platform/mac/PasteboardMac.mm:
+ (WebCore::documentFragmentWithImageResource):
+
+2012-07-10 Nikita Vasilyev <me@elv1s.ru>
+
+ Web Inspector: Make the Tab character 4 spaces width
+ https://bugs.webkit.org/show_bug.cgi?id=90172
+
+ Reviewed by Pavel Feldman.
+
+ Do it to match most code editors' behavior.
+
+ * inspector/front-end/inspectorCommon.css:
+ (body):
+
+2012-07-10 Eric Seidel <eric@webkit.org>
+
+ REGRESSION (r122168): Layout Test http/tests/misc/script-defer.html is failing
+ https://bugs.webkit.org/show_bug.cgi?id=90845
+
+ Reviewed by Alexey Proskuryakov.
+
+ I was a bit overzealous in removing bool returns. This one still makes sense.
+ This just reverts the wrong part of my previous change.
+
+ * html/parser/HTMLDocumentParser.cpp:
+ (WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd):
+ * html/parser/HTMLScriptRunner.cpp:
+ (WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
+ * html/parser/HTMLScriptRunner.h:
+ (HTMLScriptRunner):
+
+2012-07-10 Kevin Ellis <kevers@chromium.org>
+
+ Input type=range issue with events not being raised when value set in js
+ https://bugs.webkit.org/show_bug.cgi?id=84674
+
+ Fix dispatching of change and click events for the input slider.
+ Prior to the fix, change events were not fired if the new value
+ matched the value at last change notification based on expected
+ behavior for text fields. Clicks were not fired if the thumb
+ element was repositioned under the cursor on mouse down.
+
+ Reviewed by Kent Tamura.
+
+ Tests: fast/events/click-range-slider.html
+ fast/events/onchange-range-slider.html
+
+ * html/shadow/SliderThumbElement.cpp:
+ (WebCore::SliderThumbElement::setPositionFromPoint):
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::handleMouseReleaseEvent):
+
+2012-07-10 Huang Dongsung <luxtella@company100.net>
+
+ Don't destroy the decoded data of an image if WebKit is about to render the image.
+ https://bugs.webkit.org/show_bug.cgi?id=90721
+
+ Reviewed by Antti Koivisto.
+
+ When the cache capacity of the MemoryCache is exceeded, the decoded data of all
+ the CachedImages are destroyed. Even the images inside the viewport are
+ destroyed. However, if the images need to be rendered again due to scoll events
+ or animation, they must be decoded again. As an extreme case, if there is an
+ animation with an image when MemoryCache is almost full, the image must be
+ decoded every frame. This slows down animation and needlessly consumes CPU
+ cycles.
+
+ Therefore, it is better to not destory the decoded data of an image if the image
+ is inside the viewport because there is high chance that the image needs to be
+ rendered again soon. This patch reduces the unnecessary repetition of image decoding
+ on low memory, and also relieves the memory fragmentation because it avoids reallocation
+ of image frames.
+
+ In addition, there is another positive side effect. Currently,
+ CachedImageClient::willRenderImage() is used only to determine if GIF animation needs
+ to be paused or not in CachedImage::shouldPauseAnimation(). This patch makes
+ GIF animation outside the viewort be paused.
+
+ This is also a prerequisite for parallel image decoders. Because parallel image
+ decoders decode an image asynchronously, clients cannot render the image at the time
+ when the request is made. Clients can draw the image later after receiving image
+ decoding complete notification. However, there is a problem because MemoryCache can
+ destroy the decoded data before clients actually render the image. So parallel image decoders
+ must prevent the decoded data from being destroyed if the image will be rendered
+ soon.
+
+ This patch may consume a little more memory, but furtunately the peak memory usage
+ is almost the same.
+
+ No new tests - no new testable functionality.
+
+ * loader/cache/CachedImage.cpp:
+ (WebCore::CachedImage::likelyToBeUsedSoon):
+ (WebCore):
+ (WebCore::CachedImage::shouldPauseAnimation):
+ * loader/cache/CachedImage.h:
+ (CachedImage):
+ * loader/cache/CachedResource.h:
+ (CachedResource):
+ (WebCore::CachedResource::likelyToBeUsedSoon):
+ * loader/cache/MemoryCache.cpp:
+ (WebCore::MemoryCache::pruneLiveResourcesToSize):
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::willRenderImage):
+
+2012-07-10 Kent Tamura <tkent@chromium.org>
+
+ RTL calendar picker for <input type=date> is too narrow and clipped
+ https://bugs.webkit.org/show_bug.cgi?id=90864
+
+ Reviewed by Kentaro Hara.
+
+ Tests: ManualTests/forms/calendar-picker.html
+
+ * Resources/calendarPicker.js:
+ (fixWindowSize):
+ Checks the left edge of elemenets in RTL.
+ (layout): Add dir=ltr for the manual test, which re-uses the document.
+
+2012-07-10 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r122178.
+ http://trac.webkit.org/changeset/122178
+ https://bugs.webkit.org/show_bug.cgi?id=90857
+
+ browser tests, PrerenderBrowserTest.PrerenderFavicon and other
+ tests, started to fail (Requested by hayato on #webkit).
+
+ * WebCore.exp.in:
+ * dom/Document.cpp:
+ (WebCore::Document::iconURLs):
+ (WebCore::Document::addIconURL):
+ (WebCore::Document::setUseSecureKeyboardEntryWhenActive):
+ * dom/Document.h:
+ (Document):
+ * html/HTMLLinkElement.cpp:
+ * html/HTMLLinkElement.h:
+ (HTMLLinkElement):
+ * testing/Internals.cpp:
+ * testing/Internals.h:
+ (Internals):
+ * testing/Internals.idl:
+
+2012-07-10 Adam Barth <abarth@webkit.org>
+
+ LayoutTestController.dumpConfigurationForViewport should move to Internals
+ https://bugs.webkit.org/show_bug.cgi?id=45652
+
+ Reviewed by Eric Seidel.
+
+ This patch replaces LayoutTestController.dumpConfigurationForViewport
+ with Internals.configurationForViewport. The old
+ dumpConfigurationForViewport function just ended up calling WebCore
+ functions anyway, so there's no benefit in implementing the API in the
+ LayoutTestController.
+
+ As a result, these tests can now run on every port.
+
+ * testing/Internals.cpp:
+ (WebCore::Internals::configurationForViewport):
+ (WebCore):
+ * testing/Internals.h:
+ (Internals):
+ * testing/Internals.idl:
+
+2012-07-10 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ Unreviewed. Fix GTK+ build after r122175.
+
+ * platform/graphics/texmap/TextureMapperLayer.cpp: Include
+ CString.h when using cairo.
+
+2012-07-10 Yoshifumi Inoue <yosin@chromium.org>
+
+ [Chromium-Mac] Form related layout tests cause timeout
+ https://bugs.webkit.org/show_bug.cgi?id=90851
+
+ Reviewed by Kent Tamura.
+
+ This patch changed to pass a valid argument to LocaleMac
+ constructor.
+
+ No new tests. No more timeout in tests listed in the bug.
+
+ * platform/text/mac/LocaleMac.mm:
+ (WebCore::LocaleMac::currentLocale): Changed to pass local identifier string
+ instead of NSLocale object.
+
+2012-07-10 Yuta Kitamura <yutak@chromium.org>
+
+ WebSocket: Remove hixie76 protocol implementation
+ https://bugs.webkit.org/show_bug.cgi?id=88620
+
+ Reviewed by Adam Barth.
+
+ This change removes code that implements the old hixie-76 WebSocket protocol which
+ isn't used anymore.
+
+ No new tests are added, because the code using the current protocol should not be
+ affected. Tests for hixie-76 protocol are skipped (these tests will be removed
+ eventually).
+
+ * Modules/websockets/ThreadableWebSocketChannel.h:
+ * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
+ (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
+ (WebCore::ThreadableWebSocketChannelClientWrapper::didCreateWebSocketChannel):
+ * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
+ (ThreadableWebSocketChannelClientWrapper):
+ * Modules/websockets/WebSocket.cpp:
+ (WebCore::WebSocket::WebSocket):
+ (WebCore::WebSocket::connect):
+ (WebCore::WebSocket::send):
+ (WebCore::WebSocket::protocol):
+ (WebCore::WebSocket::extensions):
+ (WebCore::WebSocket::binaryType):
+ (WebCore::WebSocket::setBinaryType):
+ (WebCore::WebSocket::didReceiveMessageError):
+ (WebCore::WebSocket::didClose):
+ (WebCore::WebSocket::getFramingOverhead):
+ * Modules/websockets/WebSocket.h:
+ * Modules/websockets/WebSocketChannel.cpp:
+ (WebCore::WebSocketChannel::WebSocketChannel):
+ (WebCore::WebSocketChannel::connect):
+ (WebCore::WebSocketChannel::send):
+ (WebCore::WebSocketChannel::fail):
+ (WebCore::WebSocketChannel::didCloseSocketStream):
+ (WebCore::WebSocketChannel::processBuffer):
+ (WebCore::WebSocketChannel::startClosingHandshake):
+ (WebCore::WebSocketChannel::enqueueTextFrame):
+ (WebCore::WebSocketChannel::enqueueRawFrame):
+ (WebCore::WebSocketChannel::enqueueBlobFrame):
+ (WebCore::WebSocketChannel::processOutgoingFrameQueue):
+ (WebCore::WebSocketChannel::abortOutgoingFrameQueue):
+ * Modules/websockets/WebSocketChannel.h:
+ (WebSocketChannel):
+ * Modules/websockets/WebSocketHandshake.cpp:
+ (WebCore::WebSocketHandshake::WebSocketHandshake):
+ (WebCore::WebSocketHandshake::clientHandshakeMessage):
+ (WebCore::WebSocketHandshake::clientHandshakeRequest):
+ (WebCore::WebSocketHandshake::readServerHandshake):
+ (WebCore::WebSocketHandshake::checkResponseHeaders):
+ * Modules/websockets/WebSocketHandshake.h:
+ * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
+ (WebCore::WorkerThreadableWebSocketChannel::WorkerContextDidInitializeTask::create):
+ (WebCore::WorkerThreadableWebSocketChannel::WorkerContextDidInitializeTask::WorkerContextDidInitializeTask):
+ (WorkerThreadableWebSocketChannel::WorkerContextDidInitializeTask):
+ (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
+ * Modules/websockets/WorkerThreadableWebSocketChannel.h:
+ (WorkerThreadableWebSocketChannel):
+ (Peer):
+ (Bridge):
+
+2012-07-09 Gavin Barraclough <barraclough@apple.com>
+
+ Threadsafety issues in WebScriptObject
+ https://bugs.webkit.org/show_bug.cgi?id=90849
+
+ Reviewed by Filip Pizlo.
+
+ WebScriptObject maintains a NSMap of wrapper objects. A race condition exists
+ between a wrapper being retrieved from the map, and being released - if the
+ final release on an object is called between a call to getJSWrapper and the
+ subsequent retain, we may end up with a stale object reference.
+
+ We can make this safe by hoisting the removal from the map from delloc up into
+ release (if the retainCount is 1), and locking release against retrieval from
+ the map. Since release may be called from another thread, and NSMap is not
+ threadsafe, we'd better lock around all access to the map (this fix already
+ necessitates get & remove to be locked, so this just adds 'add', too).
+
+ * bindings/objc/WebScriptObject.mm:
+ (WebCore::createJSWrapper):
+ - lock around getJSWrapper, retain.
+ (-[WebScriptObject _setImp:originRootObject:rootObject:]):
+ - lock around addJSWrapper.
+ (-[WebScriptObject release]):
+ - Added; removeJSWrapper for last release, lock & synchronized vs. getJSWrapper.
+ (-[WebScriptObject dealloc]):
+ - removeJSWrapper call hoisted into release.
+
+2012-07-09 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL] Battery status code needs refactoring to be reused in WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=90760
+
+ Reviewed by Hajime Morita.
+
+ Rename BatteryClientEfl to BatteryProviderEfl and remove dependency
+ on BatteryController by introducing the BatteryProviderEflClient
+ interface. This will allow reusing the BatteryProviderEfl class
+ in WebKit2.
+
+ No new tests. Already tested by batterystatus/*.
+
+ * PlatformEfl.cmake:
+ * platform/efl/BatteryProviderEfl.cpp: Renamed from Source/WebCore/platform/efl/BatteryClientEfl.cpp.
+ (WebCore):
+ (WebCore::BatteryProviderEfl::BatteryProviderEfl):
+ (WebCore::BatteryProviderEfl::batteryStatus):
+ (WebCore::BatteryProviderEfl::startUpdating):
+ (WebCore::BatteryProviderEfl::stopUpdating):
+ (WebCore::BatteryProviderEfl::setBatteryStatus):
+ (WebCore::BatteryProviderEfl::timerFired):
+ (WebCore::BatteryProviderEfl::getBatteryStatus):
+ (WebCore::BatteryProviderEfl::setBatteryClient):
+ * platform/efl/BatteryProviderEfl.h: Copied from Source/WebCore/platform/efl/BatteryClientEfl.h.
+ (WebCore):
+ (BatteryProviderEfl):
+ (WebCore::BatteryProviderEfl::~BatteryProviderEfl):
+ * platform/efl/BatteryProviderEflClient.h: Added.
+ (WebCore):
+ (BatteryProviderEflClient):
+
+2012-07-09 Hayato Ito <hayato@chromium.org>
+
+ Unreviewed gardening.
+ Fix a wrong fix of r122194.
+
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::decideRenderPassAllocationsForFrame):
+
+2012-07-09 Matt Falkenhagen <falken@chromium.org>
+
+ Add ENABLE_DIALOG_ELEMENT and skeleton files
+ https://bugs.webkit.org/show_bug.cgi?id=90521
+
+ Reviewed by Kent Tamura.
+
+ This adds the ENABLE_DIALOG_ELEMENT feature flag and dummy implementation files for <dialog>. In addition, a runtime feature flag is added.
+ The feature is diabled by default.
+
+ No new tests, as there is no behavior change.
+
+ * CMakeLists.txt:
+ * Configurations/FeatureDefines.xcconfig:
+ * DerivedSources.cpp:
+ * DerivedSources.make:
+ * DerivedSources.pri:
+ * Target.pri:
+ * WebCore.gypi:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/generic/RuntimeEnabledFeatures.cpp:
+ (WebCore):
+ * bindings/generic/RuntimeEnabledFeatures.h: Added a runtime feature flag for dialog.
+ (RuntimeEnabledFeatures):
+ (WebCore::RuntimeEnabledFeatures::dialogElementEnabled):
+ (WebCore::RuntimeEnabledFeatures::setDialogElementEnabled):
+ * dom/ContextFeatures.cpp:
+ (WebCore::ContextFeatures::dialogElementEnabled):
+ (WebCore):
+ * dom/ContextFeatures.h: Added a per-context flag for dialog so that dialog can be disabled in HTMLTagNames.in and DOMWindow.idl when the dialog runtime feature flag is off.
+ * html/HTMLDialogElement.cpp: Added.
+ (WebCore):
+ (WebCore::HTMLDialogElement::HTMLDialogElement):
+ (WebCore::HTMLDialogElement::create):
+ (WebCore::HTMLDialogElement::close):
+ (WebCore::HTMLDialogElement::show):
+ * html/HTMLDialogElement.h: Added.
+ (WebCore):
+ (HTMLDialogElement):
+ * html/HTMLDialogElement.idl: Added.
+ * html/HTMLElementsAllInOne.cpp:
+ * html/HTMLTagNames.in:
+ * page/DOMWindow.idl:
+
+2012-07-09 Hayato Ito <hayato@chromium.org>
+
+ Unreviewed gardening.
+ Remove an assertion starting to fail on interactive_ui_tests on Chromium OS.
+
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::decideRenderPassAllocationsForFrame):
+
+2012-07-09 Hayato Ito <hayato@chromium.org>
+
+ Unreviewed gardening.
+ Build fix after r122175
+
+ * WebCore.gypi: Remove Source/WebCore/platform/graphics/qt/Extensions3DQt.{cpp,h}
+
+2012-07-09 Kiran Muppala <cmuppala@apple.com>
+
+ Improve performance of RenderInline::absoluteQuads for deeply nested inlines.
+ https://bugs.webkit.org/show_bug.cgi?id=90715
+
+ Reviewed by Maciej Stachowiak.
+
+ No new tests: functionality unchanged.
+
+ * rendering/RenderInline.cpp: Cache transformation from local to absolute coordinates using a
+ RenderGeometryMap and use it for subsequent mappings.
+ (WebCore::(anonymous namespace)::AbsoluteQuadsGeneratorContext::AbsoluteQuadsGeneratorContext):
+ (WebCore::(anonymous namespace)::AbsoluteQuadsGeneratorContext::operator()):
+
+2012-07-09 Yoshifumi Inoue <yosin@chromium.org>
+
+ [Chromium-Mac] Implement functions for localized time format information
+ https://bugs.webkit.org/show_bug.cgi?id=90237
+
+ Reviewed by Kent Tamura.
+
+ This patch introduces following localized time format related
+ functions:
+ - localizeTimeFormatText()
+ - localizeShortTimeFormatText()
+ - timeAMPMLabels
+ for Mac OSX in feature flag: ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
+
+ These function will be used by input type "time" with multiple input
+ fields UI.
+
+ Note: ICU version of localized time format functions are implemented
+ in https://bugs.webkit.org/show_bug.cgi?id=89965
+
+ Tests: WebKit/chromium/tests/LocaleMacTest.cpp
+
+ * platform/text/mac/LocaleMac.h:
+ (LocaleMac): Added time format related functions and variables.
+ * platform/text/mac/LocaleMac.mm:
+ (WebCore::createDateTimeFormatter): Added. A helper function for creating date time formatter.
+ (WebCore::LocaleMac::createShortDateFormatter): Changed to use createDateTimeFormatter.
+ (WebCore::LocaleMac::createTimeFormatter): Added.
+ (WebCore::LocaleMac::createShortTimeFormatter): Added.
+ (WebCore::LocaleMac::timeFormatText): Added.
+ (WebCore::LocaleMac::shortTimeFormatText): Added.
+ (WebCore::LocaleMac::timeAMPMLabels): Added.
+
+2012-07-09 Alexandru Chiculita <achicu@adobe.com>
+
+ [CSS Shaders] The FECustomFilter is not making the GL context active
+ https://bugs.webkit.org/show_bug.cgi?id=90840
+
+ Reviewed by Dean Jackson.
+
+ I've added a couple of makeContextCurrent() in the FECustomFilter related classes.
+ Also, removed the assumption that GraphicsContext3D::create() never returns 0.
+
+ No new tests, this was crashing on existing tests.
+
+ * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
+ (WebCore::CustomFilterCompiledProgram::CustomFilterCompiledProgram):
+ (WebCore::CustomFilterCompiledProgram::~CustomFilterCompiledProgram):
+ * platform/graphics/filters/CustomFilterGlobalContext.cpp:
+ (WebCore::CustomFilterGlobalContext::prepareContextIfNeeded):
+ * platform/graphics/filters/CustomFilterMesh.cpp:
+ (WebCore::CustomFilterMesh::CustomFilterMesh):
+ (WebCore::CustomFilterMesh::~CustomFilterMesh):
+ * platform/graphics/filters/FECustomFilter.cpp:
+ (WebCore::FECustomFilter::deleteRenderBuffers):
+ (WebCore::FECustomFilter::platformApplySoftware):
+ (WebCore::FECustomFilter::initializeContext):
+ * platform/graphics/filters/FECustomFilter.h:
+ (FECustomFilter):
+
+2012-07-09 Kent Tamura <tkent@chromium.org>
+
+ REGRESSION(r114862-r114886): Fix a crash by switching the input type to hidden.
+ https://bugs.webkit.org/show_bug.cgi?id=90774
+
+ Reviewed by Andreas Kling.
+
+ Test: fast/forms/hidden/change-type-to-hidden-after-updating-value.html
+
+ * dom/Element.cpp:
+ (WebCore::Element::setAttributeInternal):
+ Pass a copy of the existing Attribute object.
+
+2012-07-07 Philippe Normand <pnormand@igalia.com>
+
+ [GStreamer] cache video dimensions
+ https://bugs.webkit.org/show_bug.cgi?id=90733
+
+ Reviewed by Martin Robinson.
+
+ Invalidate the cached video dimensions whenever the video-sink sink pad caps
+ change and let ::naturalSize() lazily recalculate them.
+
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+ (WebCore::MediaPlayerPrivateGStreamer::naturalSize):
+ (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
+ (MediaPlayerPrivateGStreamer):
+
+2012-07-09 Eric Penner <epenner@google.com>
+
+ [chromium] Merge updates and idle updates into one pass
+ https://bugs.webkit.org/show_bug.cgi?id=90324
+
+ Reviewed by Adrienne Walker.
+
+ We no longer need to do painting is passes in order
+ to allocate memory in the right order. So this merges
+ updates and idle updates into one pass.
+
+ Covered by existing unit tests (some of which are
+ updated with this patch).
+
+ * platform/graphics/chromium/ContentLayerChromium.cpp:
+ (WebCore::ContentLayerChromium::needMoreUpdates):
+ * platform/graphics/chromium/ContentLayerChromium.h:
+ (ContentLayerChromium):
+ * platform/graphics/chromium/LayerChromium.h:
+ (WebCore::LayerChromium::needMoreUpdates):
+ * platform/graphics/chromium/TiledLayerChromium.cpp:
+ (WebCore::TiledLayerChromium::updateTiles):
+ (WebCore::TiledLayerChromium::updateLayerRect):
+ * platform/graphics/chromium/TiledLayerChromium.h:
+ (TiledLayerChromium):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+ (WebCore::CCLayerTreeHost::CCLayerTreeHost):
+ (WebCore::CCLayerTreeHost::compositeAndReadback):
+ (WebCore::CCLayerTreeHost::updateLayers):
+ (WebCore::CCLayerTreeHost::paintMasksForRenderSurface):
+ (WebCore::CCLayerTreeHost::paintLayerContents):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.h:
+ (CCLayerTreeHost):
+
+2012-07-09 Yoshifumi Inoue <yosin@chromium.org>
+
+ [Platform] Introduce LocaleMac class
+ https://bugs.webkit.org/show_bug.cgi?id=90248
+
+ Reviewed by Kent Tamura.
+
+ This patch moves implementation of localized date format related
+ functions into LocaleMac class as of LocaleWin class for ease of
+ maintain and using specific locale in testing rather than system
+ default locale.
+
+ Tests: WebKit/chromium/tests/LocaleMacTest.cpp
+
+ * WebCore.gyp/WebCore.gyp: Include LocaleMac.mm
+ * WebCore.gypi:
+ * platform/text/mac/LocaleMac.h: Replace LocaleWin to LocaleMac.
+ * platform/text/mac/LocaleMac.mm:
+ (WebCore::LocaleMac::LocaleMac):
+ (WebCore::LocaleMac::~LocaleMac):
+ (WebCore::LocaleMac::create):
+ (WebCore::LocaleMac::currentLocale):
+ (WebCore::LocaleMac::createShortDateFormatter):
+ (WebCore::LocaleMac::parseDate):
+ (WebCore::LocaleMac::formatDate):
+ (WebCore::LocaleMac::dateFormatText):
+ (WebCore::LocaleMac::monthLabels):
+ (WebCore::LocaleMac::weekDayShortLabels):
+ (WebCore::LocaleMac::firstDayOfWeek):
+ * platform/text/mac/LocalizedDateMac.cpp:
+ (WebCore::parseLocalizedDate):
+ (WebCore::formatLocalizedDate):
+ (WebCore::localizedDateFormatText):
+ (WebCore::monthLabels):
+ (WebCore::weekDayShortLabels):
+ (WebCore::firstDayOfWeek):
+ * platform/text/mac/LocalizedDateMac.mm: Removed.
+
+2012-07-09 Dana Jansens <danakj@chromium.org>
+
+ [chromium] Create CCScopedTexture class for creating/freeing textures
+ https://bugs.webkit.org/show_bug.cgi?id=89485
+
+ Reviewed by Adrienne Walker.
+
+ This class provides a standard way to create texture ids in a way that
+ ensures they will be freed later.
+
+ Also includes a CCTexture base class that holds textureId, size, and
+ format together in a struct that can be used in place of storing an
+ unsigned textureId in other classes.
+
+ Unit tests: CCScopedTexureTest.NewScopedTexture
+ CCScopedTexureTest.CreateScopedTexture
+ CCScopedTexureTest.ScopedTextureIsDeleted
+ CCScopedTexureTest.LoseScopedTexture
+
+ * WebCore.gypi:
+ * platform/graphics/chromium/cc/CCScopedTexture.cpp: Added.
+ (WebCore):
+ (WebCore::CCScopedTexture::CCScopedTexture):
+ (WebCore::CCScopedTexture::~CCScopedTexture):
+ (WebCore::CCScopedTexture::allocate):
+ (WebCore::CCScopedTexture::free):
+ (WebCore::CCScopedTexture::leak):
+ * platform/graphics/chromium/cc/CCScopedTexture.h: Added.
+ (WebCore):
+ (CCScopedTexture):
+ (WebCore::CCScopedTexture::create):
+ * platform/graphics/chromium/cc/CCTexture.cpp: Added.
+ (WebCore):
+ (WebCore::CCTexture::setDimensions):
+ (WebCore::CCTexture::bytes):
+ (WebCore::CCTexture::memorySizeBytes):
+ * platform/graphics/chromium/cc/CCTexture.h: Added.
+ (WebCore):
+ (CCTexture):
+ (WebCore::CCTexture::CCTexture):
+ (WebCore::CCTexture::id):
+ (WebCore::CCTexture::size):
+ (WebCore::CCTexture::format):
+ (WebCore::CCTexture::setId):
+
+2012-07-09 Joshua Bell <jsbell@chromium.org>
+
+ IndexedDB: deleteDatabase fails if transaction running in other database
+ https://bugs.webkit.org/show_bug.cgi?id=90822
+
+ Reviewed by Tony Chang.
+
+ The IDBLevelDBBackingStore was preventing a deleteDatabase() from running
+ if any other database was running a transaction. Fix by just creating a scratch
+ LevelDBTransaction for the delete steps.
+
+ Test: storage/indexeddb/deletedatabase-transaction.html
+
+ * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
+ (WebCore::IDBLevelDBBackingStore::deleteDatabase): Use a LevelDBTransaction
+ directly.
+
+2012-07-09 Pete Williamson <petewil@google.com>
+
+ Changed the behavior of iconURLs to always recalculate the list.
+ https://bugs.webkit.org/show_bug.cgi?id=88665
+
+ Reviewed by Kent Tamura..
+
+ As it turns out, it can contain stale URLs in the case that some script
+ manipulates the DOM, which breaks scripts trying to reset the favicon
+ URL. Also added a method in Internals to allow tests to get the list of
+ icon
+
+ Tests: fast/dom/icon-url-change.html
+ fast/dom/icon-url-list.html
+
+ * WebCore.exp.in: export Document::iconURLs on the mac for the Internals class
+ * dom/Document.cpp:
+ (WebCore::Document::iconURLs): Changed the method to recalculate the iconURL list every time
+ (WebCore::Document::addIconURL): we no longer need to add to the internal list since we recalculate it
+ (WebCore::Document::setUseSecureKeyboardEntryWhenActive): removed extra whitespace
+ * dom/Document.h:
+ (Document): removed the addIconURL method which is no longer used
+ * html/HTMLLinkElement.cpp:
+ (WebCore::HTMLLinkElement::iconType): exposed the icon type with an accessor
+ (WebCore):
+ (WebCore::HTMLLinkElement::iconSizes): exposed the icon sizes with an accessor
+ * html/HTMLLinkElement.h:
+ (HTMLLinkElement): declared the icon type and size accessors
+ * testing/Internals.cpp:
+ (WebCore::Internals::iconURLs): made a method to be used by unit tests for inspecting the icon URL list
+ (WebCore):
+ * testing/Internals.h:
+ (Internals): declared the method for unit testing the icon URL list
+ * testing/Internals.idl: exported the Document::iconURLs function
+
+2012-07-09 Ryosuke Niwa <rniwa@webkit.org>
+
+ Gcc build fix after r122174.
+
+ * storage/StorageAreaImpl.cpp:
+ (WebCore::StorageAreaImpl::decrementAccessCount):
+
+2012-07-09 Alice Cheng <alice_cheng@apple.com>
+
+ Editing: Autocorrection in blockquotes causes text to break out of quote
+ https://bugs.webkit.org/show_bug.cgi?id=90487
+ <rdar://problem/11769020>
+
+ Reviewed by Enrica Casucci.
+
+ Test: platform/mac/editing/spelling/autocorrection-blockquote-crash.html
+
+ SpellingCorrectionCommand uses ReplaceSelectionCommand to replace the misspelled word with the auto-corrected word. Specifically, ReplaceSelectionCommand does a smart copy, where it breaks out of blockquotes. Thus, the fix is to substitute ReplaceSelectionCommand with InserTextCommand.
+
+ * editing/SpellingCorrectionCommand.cpp:
+ (WebCore::SpellingCorrectionCommand::doApply):
+
+2012-07-09 No'am Rosenthal <noam.rosenthal@nokia.com>
+
+ Shared code that is guarded with ENABLE(WEBGL) should be guarded with USE()
+ https://bugs.webkit.org/show_bug.cgi?id=90506
+
+ Reviewed by Martin Robinson.
+
+ GraphicsContext3D, ANGLEWebKitBridge and Extensions3D are now guarded with USE(3D_GRAPHICS)
+ instead of ENABLE(WEBGL).
+
+ No new tests, build changes only.
+
+ * Target.pri:
+ Removed references to unused files.
+
+ * WebCore.pri:
+ Updated the Qt build so that the basic 3D-graphics sources can be compiled even when
+ WebGL is disabled.
+
+ * platform/graphics/ANGLEWebKitBridge.cpp:
+ * platform/graphics/GraphicsContext3D.cpp:
+ * platform/graphics/opengl/Extensions3DOpenGL.cpp:
+ * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
+ * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
+ * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
+ * platform/graphics/qt/GraphicsContext3DQt.cpp:
+ * platform/qt/QWebPageClient.h:
+ * platform/graphics/OpenGLShims.cpp:
+ * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
+ * platform/graphics/cairo/DrawingBufferCairo.cpp:
+ * platform/graphics/cairo/GLContext.h:
+ (GLContext):
+ * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
+ * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
+ * platform/graphics/cg/GraphicsContext3DCG.cpp:
+ * platform/graphics/clutter/DrawingBufferClutter.cpp:
+ * platform/graphics/clutter/GraphicsContext3DClutter.cpp:
+ * platform/graphics/clutter/GraphicsContext3DPrivate.cpp:
+ * platform/graphics/efl/GraphicsContext3DEfl.cpp:
+ * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
+ * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
+ * platform/graphics/filters/CustomFilterCompiledProgram.h:
+ * platform/graphics/filters/CustomFilterGlobalContext.cpp:
+ * platform/graphics/filters/CustomFilterGlobalContext.h:
+ * platform/graphics/filters/CustomFilterMesh.cpp:
+ * platform/graphics/filters/CustomFilterMesh.h:
+ * platform/graphics/filters/CustomFilterProgram.cpp:
+ (WebCore):
+ * platform/graphics/filters/CustomFilterProgram.h:
+ * platform/graphics/filters/FECustomFilter.cpp:
+ * platform/graphics/filters/FECustomFilter.h:
+ * platform/graphics/glx/GLContextGLX.cpp:
+ (WebCore):
+ * platform/graphics/glx/GLContextGLX.h:
+ (GLContextGLX):
+ * platform/graphics/gpu/DrawingBuffer.cpp:
+ * platform/graphics/gpu/mac/DrawingBufferMac.mm:
+ * platform/graphics/gpu/qt/DrawingBufferQt.cpp:
+ * platform/graphics/mac/GraphicsContext3DMac.mm:
+ * platform/graphics/qt/Extensions3DQt.cpp: Removed.
+ * platform/graphics/qt/Extensions3DQt.h: Removed.
+ * platform/graphics/skia/GraphicsContext3DSkia.cpp:
+ * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
+ Chaned ENABLE(WEBGL) to USE(3D_GRAPHICS)
+
+2012-07-09 Yongjun Zhang <yongjun_zhang@apple.com>
+
+ Consider closing unused localStorage database after a timeout.
+ https://bugs.webkit.org/show_bug.cgi?id=90713
+
+ For a localStorage, if there is no active document referencing to it for certain amount of time (300 seconds),
+ we can close the underlying sqlite database.
+
+ Reviewed by Brady Eidson.
+
+ Test: storage/domstorage/storage-close-database-on-idle.html
+
+ * storage/Storage.cpp:
+ (WebCore::Storage::Storage): increment storageArea access count when a DOMWindow is referencing it.
+ (WebCore::Storage::~Storage): decrement storageArea access count when DOMWindow is done with it.
+ * storage/StorageArea.h:
+ (StorageArea):
+ * storage/StorageAreaImpl.cpp:
+ (WebCore::StorageAreaImpl::StorageAreaImpl):
+ (WebCore::StorageAreaImpl::incrementAccessCount):
+ (WebCore):
+ (WebCore::StorageAreaImpl::decrementAccessCount): schedule closeDatabaseTimer if there is no active document
+ referencing to this storageArea.
+ (WebCore::StorageAreaImpl::closeDatabaseTimerFired): close the underlying sqlite database.
+ * storage/StorageAreaImpl.h:
+ (StorageAreaImpl):
+ * storage/StorageAreaSync.cpp:
+ (WebCore::StorageAreaSync::sync): if m_syncCloseDatabase flag is set and the database is not opened, bail out.
+ * storage/StorageTracker.cpp:
+ (WebCore):
+ (WebCore::StorageTracker::StorageTracker):
+ * storage/StorageTracker.h:
+ (WebCore::StorageTracker::storageDatabaseIdleInterval):
+ (WebCore::StorageTracker::setStorageDatabaseIdleInterval): set the timeout value that we will wait before closing the
+ database. This is currently used by DumpRenderTree only.
+ (StorageTracker):
+
+2012-07-09 Joshua Bell <jsbell@chromium.org>
+
+ IndexedDB: A null or undefined storeNames argument to IDBDatabase::transaction() should be coerced to string
+ https://bugs.webkit.org/show_bug.cgi?id=90474
+
+ Reviewed by Tony Chang.
+
+ Test: storage/indexeddb/transaction-basics.html
+
+ * Modules/indexeddb/IDBDatabase.cpp:
+ (WebCore::IDBDatabase::transaction):
+ * Modules/indexeddb/IDBDatabase.idl:
+
+2012-07-09 Joshua Bell <jsbell@chromium.org>
+
+ IndexedDB: Remove obsolete accessor plumbing
+ https://bugs.webkit.org/show_bug.cgi?id=90812
+
+ Reviewed by Tony Chang.
+
+ No new tests - just deleting code.
+
+ * Modules/indexeddb/IDBTransaction.cpp:
+ (WebCore::IDBTransaction::IDBTransaction): Since backend mode() is disconnected, can no
+ longer assert that front-end/back-end modes match; not worth it to keeping the plumbing.
+
+2012-07-09 Dana Jansens <danakj@chromium.org>
+
+ [chromium] Remove HashMap workaround for layers with id=0 in CCDamageTracker
+ https://bugs.webkit.org/show_bug.cgi?id=90825
+
+ Reviewed by Adrienne Walker.
+
+ Layer ids are no longer allowed to be 0, and the behaviour is guarded
+ with asserts, so this workaround is not needed any longer.
+
+ * platform/graphics/chromium/cc/CCDamageTracker.h:
+ (CCDamageTracker):
+
+2012-07-09 Vincent Scheib <scheib@chromium.org>
+
+ Pointer Lock requestPointerLock rejects locking an element not in a document.
+ https://bugs.webkit.org/show_bug.cgi?id=90821
+
+ Reviewed by Adrienne Walker.
+
+ Test: pointer-lock/lock-element-not-in-dom.html
+
+ * page/PointerLockController.cpp:
+ (WebCore::PointerLockController::requestPointerLock):
+
+2012-07-09 Eric Seidel <eric@webkit.org>
+
+ document.write of scripts that also document.write sometimes writes async
+ https://bugs.webkit.org/show_bug.cgi?id=89102
+
+ Reviewed by Adam Barth.
+
+ When a script tag is first encountered, the TreeBuilder holds the element and returns
+ out to the outer HTMLDocumentParser parse loop. The HTMLDocumentParser then takes
+ the script element and passes it to the HTMLScriptRunner for execution. However, if the
+ script is an "external script" the HTMLScriptRunner may have to wait for that parser
+ blocking script to load, and may store the script in its own m_parserBlockingScript member.
+
+ While the HTMLScriptRunner has this not-yet-loaded-script the parser is also blocked.
+ Because the "paused" state of the parser was held as a separate bool on the TreeBuilder
+ we'd have to be careful to update it to reflect the current state of this pending script
+ on the HTMLScriptRunner.
+
+ This patch removes this separate "paused" bool and makes the HTMLDocumentParser responsible
+ for the "paused" state of the parser through the isWaitingForScripts() function which
+ knows how to check both the TreeBuilder and the ScriptRunner for possible parser-blocking scripts.
+
+ I suspect this change may actually fix a bunch of edge cases where we were not
+ checking for the HTMLScriptRunner's parser blocking script and thus incorrectly ending
+ the parser, or not starting the pre-load scanner, etc.
+
+ As part of this change I also renamed m_haveParsingBlockingScript in HTMLScriptRunner to match
+ the naming style used elsewhere in the parser, as well as removed all the "bool" return values
+ for these parse/execute functions as they are no longer useful (or correct). The correct way
+ is always to check HTMLDocumentParser::isWaitingForScripts().
+
+ Test: fast/parser/cached-script-document-write.html
+
+ * html/parser/HTMLDocumentParser.cpp:
+ (WebCore::HTMLDocumentParser::pumpTokenizerIfPossible):
+ (WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder):
+ (WebCore::HTMLDocumentParser::canTakeNextToken):
+ (WebCore::HTMLDocumentParser::isWaitingForScripts):
+ (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
+ (WebCore::HTMLDocumentParser::notifyFinished):
+ (WebCore::HTMLDocumentParser::executeScriptsWaitingForStylesheets):
+ * html/parser/HTMLScriptRunner.cpp:
+ (WebCore::HTMLScriptRunner::~HTMLScriptRunner):
+ (WebCore::HTMLScriptRunner::executeParsingBlockingScript):
+ (WebCore::HTMLScriptRunner::execute):
+ (WebCore::HTMLScriptRunner::hasParserBlockingScript):
+ (WebCore::HTMLScriptRunner::executeParsingBlockingScripts):
+ (WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad):
+ (WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
+ (WebCore::HTMLScriptRunner::requestParsingBlockingScript):
+ (WebCore::HTMLScriptRunner::runScript):
+ * html/parser/HTMLScriptRunner.h:
+ (HTMLScriptRunner):
+ * html/parser/HTMLTreeBuilder.cpp:
+ (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
+ (WebCore::HTMLTreeBuilder::takeScriptToProcess):
+ (WebCore::HTMLTreeBuilder::processEndTag):
+ (WebCore::HTMLTreeBuilder::processTokenInForeignContent):
+ * html/parser/HTMLTreeBuilder.h:
+ (HTMLTreeBuilder):
+ (WebCore::HTMLTreeBuilder::hasParserBlockingScript):
+
+2012-07-09 Ryosuke Niwa <rniwa@webkit.org>
+
+ Microdata tests are flaky
+ https://bugs.webkit.org/show_bug.cgi?id=90830
+
+ Reviewed by Antti Koivisto.
+
+ The bug was caused by SpaceSplitString's not copying on write properly.
+ Even if there was exactly one owner of the SpaceSplitString, we should still not modify
+ m_data since m_data is associated with a particular m_keyString in sharedDataMap().
+
+ The only situation in which we can safely modify m_data is when m_data's m_keyString is null
+ meaning that it had been unique'ed. Furthermore, this optimization had not been used for
+ class lists because class list's refCount is always zero as its ref and deref are forwarded
+ to the associated Element's ref and deref. This fix re-enables the optimization for class lists.
+
+ This behavior change is tested by existing microdata API tests. Without this patch,
+ some tests such as properties-collection-add-remove-property.html fail on the first run
+ when several tests were ran in the same WebKit instance.
+
+ * dom/SpaceSplitString.h:
+ (WebCore::SpaceSplitStringData::isUnique):
+ (WebCore::SpaceSplitString::ensureUnique):
+
+2012-07-09 Dana Jansens <danakj@chromium.org>
+
+ [chromium] Decouple RenderPass drawing from CCRenderSurface
+ https://bugs.webkit.org/show_bug.cgi?id=90573
+
+ Reviewed by Adrienne Walker.
+
+ Removes the managed textures from CCRenderSurface and stores them in a
+ HashMap in LayerRendererChromium.
+
+ At the start of a frame, all textures for the frame are reserved, and
+ unneeded textures are deleted. After each quad is drawn, evicted textures
+ (ie temporary textures used for background filters) are deleted to keep
+ within memory limits. At the end of the frame, all surface contents
+ textures are kept reserved and thus not deleted.
+
+ We add a numeric identifier to CCRenderPass which can be used to
+ identify the pass across serialization in the future, and is used
+ in the interface to LayerRendererChromium. Also we add to the
+ CCRenderPass a contentsChangedSinceLastFrame() flag so that the
+ value does not need to be retrieved from the CCRenderSurface.
+
+ The pointer from CCRenderPass to CCRenderSurface remains for some
+ code in the CCLayerTreeHostImpl, and will be addressed in the future, but
+ the pointer is no longer used at all while drawing a frame inside
+ LayerRendererChromium.
+
+ Covered by existing tests, no intended change in behaviour.
+
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::releaseRenderPassTextures):
+ (WebCore::LayerRendererChromium::decideRenderPassAllocationsForFrame):
+ (WebCore):
+ (WebCore::LayerRendererChromium::haveCachedResourcesForRenderPassId):
+ (WebCore::LayerRendererChromium::drawQuad):
+ (WebCore::LayerRendererChromium::drawBackgroundFilters):
+ (WebCore::LayerRendererChromium::drawRenderPassQuad):
+ (WebCore::LayerRendererChromium::finishDrawingFrame):
+ (WebCore::LayerRendererChromium::useRenderPass):
+ (WebCore::LayerRendererChromium::initializeSharedObjects):
+ * platform/graphics/chromium/LayerRendererChromium.h:
+ (LayerRendererChromium):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
+ (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
+ (WebCore::CCLayerTreeHostImpl::removePassesWithCachedTextures):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
+ (CCLayerTreeHostImpl):
+ * platform/graphics/chromium/cc/CCRenderPass.cpp:
+ (WebCore::CCRenderPass::create):
+ (WebCore::CCRenderPass::CCRenderPass):
+ * platform/graphics/chromium/cc/CCRenderPass.h:
+ (CCRenderPass):
+ (WebCore::CCRenderPass::id):
+ (WebCore::CCRenderPass::setFramebufferOutputRect):
+ * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
+ (WebCore::CCRenderPassDrawQuad::create):
+ (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
+ * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
+ (CCRenderPassDrawQuad):
+ (WebCore::CCRenderPassDrawQuad::renderPassId):
+ (WebCore::CCRenderPassDrawQuad::contentsChangedSinceLastFrame):
+ * platform/graphics/chromium/cc/CCRenderSurface.cpp:
+ (WebCore::CCRenderSurface::appendQuads):
+ * platform/graphics/chromium/cc/CCRenderSurface.h:
+ (WebCore):
+ (CCRenderSurface):
+ * platform/graphics/chromium/cc/CCRenderer.h:
+ (CCRenderer):
+ * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
+ (WebCore::CCTiledLayerImpl::pushTileProperties):
+ * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
+ (CCTiledLayerImpl):
+
+2012-07-09 Adam Klein <adamk@chromium.org>
+
+ Rename WebCore::WebKitMutationObserver to WebCore::MutationObserver
+ https://bugs.webkit.org/show_bug.cgi?id=90810
+
+ Reviewed by Ojan Vafai.
+
+ This is in preparation for removing the vendor prefix from the
+ MutationObserver constructor on Window (currently it's called
+ WebKitMutationObserver). Doing the WebCore-internal rename first
+ makes that change a much smaller one, which is especially useful
+ because there's ongoing discussion of when the prefix should be
+ removed from the web-facing API.
+
+ * CMakeLists.txt:
+ * DerivedSources.cpp:
+ * DerivedSources.make:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * UseJSC.cmake:
+ * UseV8.cmake:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/js/JSBindingsAllInOne.cpp:
+ * bindings/js/JSMainThreadExecState.cpp:
+ (WebCore::JSMainThreadExecState::didLeaveScriptContext):
+ * bindings/js/JSMutationCallbackCustom.cpp:
+ (WebCore::JSMutationCallback::handleEvent):
+ * bindings/js/JSMutationObserverCustom.cpp: Renamed from Source/WebCore/bindings/js/JSWebKitMutationObserverCustom.cpp.
+ (WebCore):
+ (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
+ * bindings/v8/V8RecursionScope.cpp:
+ (WebCore::V8RecursionScope::didLeaveScriptContext):
+ * bindings/v8/custom/V8MutationCallbackCustom.cpp:
+ (WebCore::V8MutationCallback::handleEvent):
+ * bindings/v8/custom/V8MutationObserverCustom.cpp: Renamed from Source/WebCore/bindings/v8/custom/V8WebKitMutationObserverCustom.cpp.
+ (WebCore):
+ (WebCore::V8MutationObserver::constructorCallback):
+ * dom/CharacterData.cpp:
+ * dom/ChildListMutationScope.h:
+ (WebCore::ChildListMutationScope::ChildListMutationScope):
+ * dom/DOMAllInOne.cpp:
+ * dom/Document.h:
+ (WebCore::Document::hasMutationObserversOfType):
+ * dom/Element.cpp:
+ * dom/MutationCallback.h:
+ (WebCore):
+ (MutationCallback):
+ * dom/MutationCallback.idl:
+ * dom/MutationObserver.cpp: Renamed from Source/WebCore/dom/WebKitMutationObserver.cpp.
+ (WebCore):
+ (WebCore::MutationObserver::ObserverLessThan::operator()):
+ (WebCore::MutationObserver::create):
+ (WebCore::MutationObserver::MutationObserver):
+ (WebCore::MutationObserver::~MutationObserver):
+ (WebCore::MutationObserver::validateOptions):
+ (WebCore::MutationObserver::observe):
+ (WebCore::MutationObserver::takeRecords):
+ (WebCore::MutationObserver::disconnect):
+ (WebCore::MutationObserver::observationStarted):
+ (WebCore::MutationObserver::observationEnded):
+ (WebCore::activeMutationObservers):
+ (WebCore::MutationObserver::enqueueMutationRecord):
+ (WebCore::MutationObserver::setHasTransientRegistration):
+ (WebCore::MutationObserver::deliver):
+ (WebCore::MutationObserver::deliverAllMutations):
+ * dom/MutationObserver.h: Renamed from Source/WebCore/dom/WebKitMutationObserver.h.
+ (WebCore):
+ (MutationObserver):
+ * dom/MutationObserver.idl: Renamed from Source/WebCore/dom/WebKitMutationObserver.idl.
+ * dom/MutationObserverInterestGroup.cpp:
+ (WebCore::MutationObserverInterestGroup::createIfNeeded):
+ (WebCore::MutationObserverInterestGroup::MutationObserverInterestGroup):
+ (WebCore::MutationObserverInterestGroup::isOldValueRequested):
+ (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
+ * dom/MutationObserverInterestGroup.h:
+ (WebCore::MutationObserverInterestGroup::createForChildListMutation):
+ (WebCore::MutationObserverInterestGroup::createForCharacterDataMutation):
+ (WebCore::MutationObserverInterestGroup::createForAttributesMutation):
+ (MutationObserverInterestGroup):
+ * dom/MutationObserverRegistration.cpp:
+ (WebCore::MutationObserverRegistration::create):
+ (WebCore::MutationObserverRegistration::MutationObserverRegistration):
+ (WebCore::MutationObserverRegistration::shouldReceiveMutationFrom):
+ * dom/MutationObserverRegistration.h:
+ (MutationObserverRegistration):
+ (WebCore::MutationObserverRegistration::isSubtree):
+ (WebCore::MutationObserverRegistration::observer):
+ (WebCore::MutationObserverRegistration::deliveryOptions):
+ (WebCore::MutationObserverRegistration::mutationTypes):
+ * dom/Node.cpp:
+ (WebCore::Node::collectMatchingObserversForMutation):
+ (WebCore::Node::getRegisteredMutationObserversOfType):
+ (WebCore::Node::registerMutationObserver):
+ * dom/Node.h:
+ (Node):
+ * dom/NodeRareData.h:
+ * page/DOMWindow.idl:
+
+2012-07-09 Filip Pizlo <fpizlo@apple.com>
+
+ Unreviewed, rolling out http://trac.webkit.org/changeset/122116 and http://trac.webkit.org/changeset/122119
+
+ * GNUmakefile.list.am:
+ * PlatformBlackBerry.cmake:
+ * Target.pri:
+ * WebCore.gypi:
+ * WebCore.xcodeproj/project.pbxproj:
+ * platform/graphics/GraphicsContext3D.h:
+ (WebCore):
+ * platform/graphics/OpenGLESShims.h:
+ * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
+ (WebCore):
+ * platform/graphics/clutter/GraphicsContext3DClutter.cpp:
+ (WebCore):
+ * platform/graphics/mac/GraphicsContext3DMac.mm:
+ (WebCore):
+ * platform/graphics/opengl/Extensions3DOpenGL.cpp:
+ (WebCore::Extensions3DOpenGL::Extensions3DOpenGL):
+ (WebCore::Extensions3DOpenGL::supports):
+ (WebCore):
+ (WebCore::Extensions3DOpenGL::ensureEnabled):
+ (WebCore::Extensions3DOpenGL::isEnabled):
+ (WebCore::Extensions3DOpenGL::getGraphicsResetStatusARB):
+ (WebCore::Extensions3DOpenGL::getTranslatedShaderSourceANGLE):
+ (WebCore::Extensions3DOpenGL::copyTextureCHROMIUM):
+ * platform/graphics/opengl/Extensions3DOpenGL.h:
+ (Extensions3DOpenGL):
+ * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
+ * platform/graphics/opengl/Extensions3DOpenGLCommon.h:
+ * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
+ * platform/graphics/opengl/Extensions3DOpenGLES.h:
+ * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
+ (WebCore):
+ * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
+ (WebCore::systemAllowsMultisamplingOnATICards):
+ (WebCore):
+ (WebCore::GraphicsContext3D::validateAttributes):
+ (WebCore::GraphicsContext3D::compileShader):
+ (WebCore::GraphicsContext3D::readPixels):
+ (WebCore::GraphicsContext3D::releaseShaderCompiler):
+ (WebCore::GraphicsContext3D::getExtensions):
+ * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
+ (WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary):
+ (WebCore::GraphicsContext3D::reshapeFBOs):
+ (WebCore):
+ * platform/graphics/qt/GraphicsContext3DQt.cpp:
+ (WebCore):
+
+2012-07-09 Ryosuke Niwa <rniwa@webkit.org>
+
+ Build fix after r122115 and some cleanups.
+
+ * html/HTMLCollection.h:
+ (HTMLCollection):
+ * html/HTMLElement.cpp:
+ (WebCore::HTMLElement::properties):
+ * html/HTMLElement.h:
+ (HTMLElement):
+ * html/HTMLPropertiesCollection.cpp:
+ (WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
+ * html/HTMLPropertiesCollection.h:
+ (HTMLPropertiesCollection):
+
+2012-07-09 Dean Jackson <dino@apple.com>
+
+ Tiled drawing means some elements can disappear behind the page
+ https://bugs.webkit.org/show_bug.cgi?id=88906
+
+ Reviewed by Simon Fraser.
+
+ The compositing layers in the tile cache could become siblings
+ of the compositing layers for page elements. This meant that in
+ some 3d transforms, the elements could disappear behind the
+ page background (which is rendered into the tile cache) or intersect
+ with the tile cache tiles.
+
+ Fix this by inserting a flattening layer between the tile cache
+ and the page, ensuring that the cache will always be rendered
+ first. I was able to reuse the clipping layer for this, because
+ the tile cache is attached to the RenderView, so there should never
+ be a case where we have both a clipping layer and tiles.
+
+ The unfortunate part of this code is the temporary state variable
+ that wraps the call to GraphicsLayer::create. Because that method
+ calls back into the object, we need to make sure we don't create
+ another tile cache.
+
+ Also added some obvious names to the tile cache layers to
+ help with debugging.
+
+ Test: compositing/tile-cache-must-flatten.html
+
+ * platform/graphics/ca/mac/TileCache.mm:
+ (WebCore::TileCache::TileCache): give the tile host layer a name.
+ (WebCore::TileCache::createTileLayer):
+ * platform/graphics/ca/mac/WebTileCacheLayer.mm:
+ (WebCore): give each tile layer a name.
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore):
+ (WebCore::RenderLayerBacking::shouldUseTileCache): check if we're in the middle
+ of creating the primary graphics layer before answering.
+ (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer): wrap our call to
+ createGraphicsLayer with a message to indicate we are making the layer that should
+ get a tile cache.
+ (WebCore::RenderLayerBacking::destroyGraphicsLayers):
+ (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): needs to make
+ sure the flattening layer is in the tree.
+ (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
+ (WebCore::RenderLayerBacking::updateInternalHierarchy):
+ (WebCore::RenderLayerBacking::updateClippingLayers):
+ (WebCore::RenderLayerBacking::backingStoreMemoryEstimate):
+ * rendering/RenderLayerBacking.h: rename m_clippingLayer to m_containmentLayer
+ because it can now either be the clip or the tile cache flattener. Also
+ a new state property used when creating the main graphics layer.
+ (WebCore::RenderLayerBacking::hasClippingLayer):
+ (WebCore::RenderLayerBacking::clippingLayer):
+ (WebCore::RenderLayerBacking::parentForSublayers):
+ (WebCore::RenderLayerBacking::hasTileCacheFlatteningLayer):
+ (WebCore::RenderLayerBacking::tileCacheFlatteningLayer):
+ (RenderLayerBacking):
+
+2012-07-09 Christophe Dumez <christophe.dumez@intel.com>
+
+ [EFL] Log significant Gamepad API-related events
+ https://bugs.webkit.org/show_bug.cgi?id=90595
+
+ Reviewed by Antonio Gomes.
+
+ Log significant Gamepad API-related events in
+ GamepadsEfl.
+
+ No new tests, no behavior change.
+
+ * platform/efl/GamepadsEfl.cpp:
+ (WebCore::GamepadDeviceEfl::deviceFile):
+ (GamepadDeviceEfl):
+ (WebCore::GamepadDeviceEfl::GamepadDeviceEfl):
+ (WebCore::GamepadDeviceEfl::readCallback):
+ (WebCore::GamepadsEfl::registerDevice):
+ (WebCore::GamepadsEfl::unregisterDevice):
+
+2012-07-09 Simon Fraser <simon.fraser@apple.com>
+
+ Reduce the amount of flashing when falling into tiled layers
+ https://bugs.webkit.org/show_bug.cgi?id=90808
+
+ Reviewed by Dean Jackson.
+
+ Implement +prefetchedTiles so that CATiledLayer renders more
+ tiles at a time, reducing the appearance of flashing.
+
+ * platform/graphics/mac/WebTiledLayer.mm:
+ (+[WebTiledLayer prefetchedTiles]):
+
+2012-07-09 Leandro Gracia Gil <leandrogracia@chromium.org>
+
+ SurroundingText should not advance character iterators if they are at end.
+ https://bugs.webkit.org/show_bug.cgi?id=90560
+
+ Reviewed by Ryosuke Niwa.
+
+ CharacterIterator and BackwardsCharacterIterator try to advance their
+ internal TextIterator without checking if they already are at end.
+ This can cause crashes in TextIterator::advance.
+
+ Test: platform/chromium/editing/surrounding-text/surrounding-text.html
+
+ * editing/SurroundingText.cpp:
+ (WebCore::SurroundingText::SurroundingText):
+ (WebCore::SurroundingText::rangeFromContentOffsets):
+
+2012-07-09 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
+
+ [EFL] [WK2] Ecore errors from ecore_evas_screen_geometry_get()
+ https://bugs.webkit.org/show_bug.cgi?id=90609
+
+ Reviewed by Daniel Bates.
+
+ Do not call ecore_evas_screen_geometry_get() if ecoreEvas is null.
+
+ No new tests. This patch doesn't change behavior.
+
+ * platform/efl/PlatformScreenEfl.cpp:
+ (WebCore::screenRect): Early return if Evas is null.
+
+2012-07-09 Alexandru Chiculita <achicu@adobe.com>
+
+ [CSS Filters] Blur filter is not repainted correctly when applied on a parent of a fixed element
+ https://bugs.webkit.org/show_bug.cgi?id=90087
+
+ Reviewed by Simon Fraser.
+
+ Added a new method, RenderLayer::hasAncestorWithFilterOutsets, to check that there's no filter with outsets (ie. blur)
+ applied on top level fixed positioned elements, nor any of its parent layers. In the event of a blur filter we need to
+ disable the fast scrolling optimization, otherwise the outsets of the filter will be carried around the page and
+ repainting will not work correctly.
+
+ Tests: css3/filters/blur-filter-page-scroll-parents.html
+ css3/filters/blur-filter-page-scroll-self.html
+
+ * page/FrameView.cpp:
+ (WebCore::FrameView::scrollContentsFastPath):
+ * rendering/RenderLayer.cpp:
+ (WebCore):
+ (WebCore::RenderLayer::hasAncestorWithFilterOutsets):
+ * rendering/RenderLayer.h:
+ (RenderLayer):
+
+2012-07-09 Joshua Bell <jsbell@chromium.org>
+
+ IndexedDB: Empty arrays shouldn't be valid key paths
+ https://bugs.webkit.org/show_bug.cgi?id=90798
+
+ Reviewed by Tony Chang.
+
+ Other IDB implementations already enforce this although it is not yet in
+ the spec (see https://www.w3.org/Bugs/Public/show_bug.cgi?id=17657). If an
+ empty array is passed as the key path arg to IDBDatabase.createObjectStore()
+ or IDBObjectStore.createIndex(), a SYNTAX_ERR DOMException is now thrown.
+
+ Test: storage/indexeddb/keypath-arrays.html
+ storage/indexeddb/keypath-basics.html
+
+ * Modules/indexeddb/IDBKeyPath.cpp:
+ (WebCore::IDBKeyPath::isValid): Test for empty array.
+
+2012-07-09 Dana Jansens <danakj@chromium.org>
+
+ [chromium] Create render surfaces on main thread only for the current frame
+ https://bugs.webkit.org/show_bug.cgi?id=89793
+
+ Reviewed by Adrienne Walker.
+
+ Previously we would create render surfaces for animating layers
+ in the main thread since these layers might have a surface on impl,
+ in order to assist culling. This makes it very difficult to estimate
+ how much texture memory is needed for RenderSurfaces on the main
+ thread, in order to keep contents+surface memory below our limit.
+
+ Here we stop doing this, and create RenderSurfaces on both threads
+ under the same conditions, so main thread has surfaces only if the
+ layers in its current frame demand them. While this may reduce
+ paint culling within an animating subtree, this seems like an edge
+ case and knowing the amount of surface memory needed for the frame
+ is important.
+
+ Animation tests in CCLayerTreeHostCommonTest used to verify that these
+ layers got surfaces, so now no longer do. Creation of surfaces under
+ other conditions is covered by other CCLayerTreeHostCommonTests.
+
+ * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
+ (WebCore::subtreeShouldRenderToSeparateSurface):
+
+2012-07-09 Ryosuke Niwa <rniwa@webkit.org>
+
+ Mac build fix after r122116.
+
+ * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
+
+2012-07-09 Ryosuke Niwa <rniwa@webkit.org>
+
+ EFL build fix after r122115.
+
+ * html/HTMLPropertiesCollection.cpp:
+ (WebCore::HTMLPropertiesCollection::create):
+
+2012-07-09 Joshua Netterfield <jnetterfield@rim.com>
+ Make GC3D and E3D more maintainable for GLES platforms
+ https://bugs.webkit.org/show_bug.cgi?id=90567
+
+ Reviewed by Rob Buis.
+
+ This patch cleans up code for WebGL on OpenGLES platforms which use
+ GraphicsContext3DOpenGL* and Extensions3DOpenGL*. Although
+ GraphicsContext3DOpenGL was already split into GraphicsContext3DOpenGL,
+ GraphicsContext3DOpenGLCommon, and GraphicsContext3DOpenGLES, this patch
+ is an attempt to refactor this code in a way that will help BlackBerry and
+ other teams support WebGL on mobile platforms with as little use of
+ "#IF USE(OPENGL_ES_2)" in common code as possible. Also included is the
+ separation of Extensions3DOpenGL into Extensions3DOpenGLCommon,
+ Extensions3DOpenGL, and Extensions3DOpenGLES as well as the introduction
+ of OpenGLESShims.
+
+ This patch is created in large part by Jonathan Feldstein.
+
+ No new tests: no new behaviour.
+
+ * PlatformBlackBerry.cmake: Recognize BlackBerry as OPENGL ES, add new files to build
+ * Target.pri: Add new Extensions3DOpenGL* to WebGL builds
+ * platform/graphics/GraphicsContext3D.h: Add validateDepthStencil, make systemAllowsMultisamplingOnATICards a a member function.
+ (WebCore):
+ * platform/graphics/OpenGLESShims.h: Added.
+ * platform/graphics/opengl/Extensions3DOpenGL.cpp: Move code to Extensions3DOpenGLCommon where possible
+ (WebCore::Extensions3DOpenGL::Extensions3DOpenGL): Reflect that it is now inherits Extensions3DCommon
+ (WebCore::Extensions3DOpenGL::supportsExtension): Contains OpenGL specific code from supports
+ (WebCore):
+ (WebCore::Extensions3DOpenGL::getExtensions): Returns a list of extensions
+ * platform/graphics/opengl/Extensions3DOpenGL.h: Remove functions now in Extensions3DOpenGLCommon
+ (WebCore):
+ (Extensions3DOpenGL):
+ * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp: Added.
+ (WebCore):
+ (WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon):
+ (WebCore::Extensions3DOpenGLCommon::~Extensions3DOpenGLCommon):
+ (WebCore::Extensions3DOpenGLCommon::supports):
+ (WebCore::Extensions3DOpenGLCommon::ensureEnabled):
+ (WebCore::Extensions3DOpenGLCommon::isEnabled):
+ (WebCore::Extensions3DOpenGLCommon::getGraphicsResetStatusARB):
+ (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE): Existed before, but did nothing. Now does what is says it does.
+ (WebCore::Extensions3DOpenGLCommon::initializeAvailableExtensions): Moved from Extensions3DOpenGL::supports
+ * platform/graphics/opengl/Extensions3DOpenGLCommon.h: Copied from Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.h.
+ (WebCore):
+ (Extensions3DOpenGLCommon):
+ * platform/graphics/opengl/Extensions3DOpenGLES.cpp: Added.
+ (WebCore):
+ (WebCore::Extensions3DOpenGLES::Extensions3DOpenGLES):
+ (WebCore::Extensions3DOpenGLES::~Extensions3DOpenGLES):
+ (WebCore::Extensions3DOpenGLES::framebufferTexture2DMultisampleIMG):
+ (WebCore::Extensions3DOpenGLES::renderbufferStorageMultisampleIMG):
+ (WebCore::Extensions3DOpenGLES::createVertexArrayOES):
+ (WebCore::Extensions3DOpenGLES::deleteVertexArrayOES):
+ (WebCore::Extensions3DOpenGLES::isVertexArrayOES):
+ (WebCore::Extensions3DOpenGLES::bindVertexArrayOES):
+ (WebCore::Extensions3DOpenGLES::supportsExtension): Contains OpenGLES specific code from supports
+ (WebCore::Extensions3DOpenGLES::getExtensions):
+ * platform/graphics/opengl/Extensions3DOpenGLES.h: Copied from Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.h.
+ (WebCore):
+ (Extensions3DOpenGLES):
+ * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
+ (WebCore::GraphicsContext3D::validateAttributes):
+ (WebCore):
+ (WebCore::GraphicsContext3D::renderbufferStorage):
+ (WebCore::GraphicsContext3D::texImage2D):
+ (WebCore::GraphicsContext3D::systemAllowsMultisamplingOnATICards): Now a member function.
+ (WebCore::GraphicsContext3D::getExtensions):
+ * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
+ (WebCore::GraphicsContext3D::validateDepthStencil):
+ (WebCore::GraphicsContext3D::clear):
+ (WebCore::GraphicsContext3D::isTexture):
+ (WebCore):
+ (WebCore::GraphicsContext3D::lineWidth):
+ (WebCore::GraphicsContext3D::linkProgram):
+ (WebCore::GraphicsContext3D::pixelStorei):
+ (WebCore::GraphicsContext3D::polygonOffset):
+ (WebCore::GraphicsContext3D::readPixels):
+ (WebCore::GraphicsContext3D::deleteBuffer):
+ * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
+ (WebCore::GraphicsContext3D::releaseShaderCompiler):
+ (WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary):
+ (WebCore::GraphicsContext3D::validateAttributes):
+ (WebCore):
+ (WebCore::GraphicsContext3D::getExtensions):
+ (WebCore::GraphicsContext3D::systemAllowsMultisamplingOnATICards): Now a member function.
+ * platform/graphics/qt/GraphicsContext3DQt.cpp:
+ (WebCore):
+ (WebCore::GraphicsContext3D::releaseShaderCompiler):
+
+2012-07-02 Ryosuke Niwa <rniwa@webkit.org>
+
+ Make HTMLCollection RefCounted
+ https://bugs.webkit.org/show_bug.cgi?id=90414
+
+ Reviewed by Sam Weinig.
+
+ Make HTMLCollection ref counted and stop forwarding ref and deref to its owner (m_base)
+ so as to align its life time management to that of DynamicNodeList.
+
+ After this patch, each HTMLCollection is owned by JSC/V8 and m_cachedCollections in ElementRareData
+ and m_collection in Document merely hold raw pointers for the caching purpose. These raw pointers
+ are cleared when each HTMLCollection is destructed via corresponding removeCachedHTMLCollection's.
+
+ In the destructor of HTMLCollection, we use the CollectionType to decide whether base() is an element
+ or an document, and call the appropriate removeCachedHTMLCollection except for WindowNamedItems and
+ DocumentNamedItems. For those two types, we need to know the atomic string name associated with
+ the collection just like many DynamicNodeList to remove the cache, so we let HTMLNameCollection
+ directly call removeWindowNamedItemCache and removeDocumentNamedItemCache. We'll cleanup this mess in
+ a follow up patch using a nice class hierarchy and virtual destructors.
+
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::getDocumentLinks):
+ * bindings/js/JSDOMWindowCustom.cpp:
+ (WebCore::namedItemGetter):
+ * bindings/js/JSHTMLDocumentCustom.cpp:
+ (WebCore::JSHTMLDocument::nameGetter):
+ * bindings/v8/custom/V8DOMWindowCustom.cpp:
+ (WebCore::V8DOMWindow::namedPropertyGetter):
+ * dom/Document.cpp:
+ (WebCore::Document::Document):
+ (WebCore::Document::openSearchDescriptionURL):
+ (WebCore):
+ (WebCore::Document::cachedCollection):
+ (WebCore::Document::removeCachedHTMLCollection):
+ (WebCore::Document::images):
+ (WebCore::Document::applets):
+ (WebCore::Document::embeds):
+ (WebCore::Document::plugins):
+ (WebCore::Document::objects):
+ (WebCore::Document::scripts):
+ (WebCore::Document::links):
+ (WebCore::Document::forms):
+ (WebCore::Document::anchors):
+ (WebCore::Document::all):
+ (WebCore::Document::windowNamedItems):
+ (WebCore::Document::documentNamedItems):
+ (WebCore::Document::removeWindowNamedItemCache):
+ (WebCore::Document::removeDocumentNamedItemCache):
+ * dom/Document.h:
+ (Document):
+ * dom/Element.cpp:
+ (WebCore::Element::ensureCachedHTMLCollection):
+ (WebCore::ElementRareData::ensureCachedHTMLCollection):
+ (WebCore::Element::removeCachedHTMLCollection):
+ (WebCore):
+ * dom/Element.h:
+ (Element):
+ * dom/ElementRareData.h:
+ (ElementRareData):
+ (WebCore::ElementRareData::cachedHTMLCollection):
+ (WebCore::ElementRareData::removeCachedHTMLCollection):
+ * html/CollectionType.h:
+ (WebCore): Since WindowNamedItems is not a part of UnnamedDocumentCachedType, we shouldn't addd 1.
+ (WebCore::isUnnamedDocumentCachedType):
+ (WebCore::isNodeCollectionType):
+ * html/HTMLAllCollection.cpp:
+ (WebCore::HTMLAllCollection::create):
+ * html/HTMLAllCollection.h:
+ (HTMLAllCollection):
+ * html/HTMLCollection.cpp:
+ (WebCore::HTMLCollection::create):
+ (WebCore::HTMLCollection::~HTMLCollection):
+ (WebCore::HTMLCollection::itemAfter):
+ * html/HTMLCollection.h:
+ (WebCore::HTMLCollectionCacheBase::HTMLCollectionCacheBase):
+ (HTMLCollection):
+ (WebCore::HTMLCollection::base):
+ * html/HTMLDataListElement.cpp:
+ (WebCore::HTMLDataListElement::options):
+ * html/HTMLDataListElement.h:
+ (HTMLDataListElement):
+ * html/HTMLElement.cpp:
+ (WebCore::HTMLElement::children):
+ (WebCore::HTMLElement::properties):
+ * html/HTMLElement.h:
+ (HTMLElement):
+ * html/HTMLFieldSetElement.cpp:
+ (WebCore::HTMLFieldSetElement::elements):
+ * html/HTMLFieldSetElement.h:
+ (HTMLFieldSetElement):
+ * html/HTMLFormCollection.cpp:
+ (WebCore::HTMLFormCollection::create):
+ * html/HTMLFormCollection.h:
+ (HTMLFormCollection):
+ * html/HTMLFormElement.cpp:
+ (WebCore::HTMLFormElement::elements):
+ * html/HTMLFormElement.h:
+ (HTMLFormElement):
+ * html/HTMLMapElement.cpp:
+ (WebCore::HTMLMapElement::imageElement):
+ (WebCore::HTMLMapElement::areas):
+ * html/HTMLMapElement.h:
+ (HTMLMapElement):
+ * html/HTMLNameCollection.cpp:
+ (WebCore::HTMLNameCollection::HTMLNameCollection):
+ (WebCore::HTMLNameCollection::~HTMLNameCollection):
+ (WebCore):
+ * html/HTMLNameCollection.h:
+ (WebCore::HTMLNameCollection::create):
+ (HTMLNameCollection):
+ * html/HTMLOptionsCollection.cpp:
+ (WebCore::HTMLOptionsCollection::create):
+ * html/HTMLOptionsCollection.h:
+ (HTMLOptionsCollection):
+ * html/HTMLPropertiesCollection.h:
+ (HTMLPropertiesCollection):
+ * html/HTMLSelectElement.cpp:
+ (WebCore::HTMLSelectElement::selectedOptions):
+ (WebCore::HTMLSelectElement::options):
+ * html/HTMLSelectElement.h:
+ (HTMLSelectElement):
+ * html/HTMLTableElement.cpp:
+ (WebCore::HTMLTableElement::rows):
+ (WebCore::HTMLTableElement::tBodies):
+ * html/HTMLTableElement.h:
+ (HTMLTableElement):
+ * html/HTMLTableRowElement.cpp:
+ (WebCore::HTMLTableRowElement::insertCell):
+ (WebCore::HTMLTableRowElement::deleteCell):
+ (WebCore::HTMLTableRowElement::cells):
+ * html/HTMLTableRowElement.h:
+ (HTMLTableRowElement):
+ * html/HTMLTableRowsCollection.cpp:
+ (WebCore::HTMLTableRowsCollection::create):
+ * html/HTMLTableRowsCollection.h:
+ (HTMLTableRowsCollection):
+ * html/HTMLTableSectionElement.cpp:
+ (WebCore::HTMLTableSectionElement::insertRow):
+ (WebCore::HTMLTableSectionElement::deleteRow):
+ (WebCore::HTMLTableSectionElement::rows):
+ * html/HTMLTableSectionElement.h:
+ (HTMLTableSectionElement):
+
+2012-07-09 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: unindent line ending block upon { hit.
+ https://bugs.webkit.org/show_bug.cgi?id=90795
+
+ Reviewed by Vsevolod Vlasov.
+
+ Added block-start / block-end markup into the highlighter.
+
+ * inspector/front-end/SourceCSSTokenizer.js:
+ (WebInspector.SourceCSSTokenizer.prototype.nextToken):
+ * inspector/front-end/SourceCSSTokenizer.re2js:
+ * inspector/front-end/SourceJavaScriptTokenizer.js:
+ (WebInspector.SourceJavaScriptTokenizer.prototype.nextToken):
+ * inspector/front-end/SourceJavaScriptTokenizer.re2js:
+ * inspector/front-end/TextEditor.js:
+ (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
+ (WebInspector.TextEditorMainPanel.prototype._unindentAfterBlock):
+
+2012-07-09 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r122107.
+ http://trac.webkit.org/changeset/122107
+ https://bugs.webkit.org/show_bug.cgi?id=90794
+
+ Build failure on Mac debug bots (Requested by falken_ on
+ #webkit).
+
+ * CMakeLists.txt:
+ * Configurations/FeatureDefines.xcconfig:
+ * DerivedSources.cpp:
+ * DerivedSources.make:
+ * DerivedSources.pri:
+ * Target.pri:
+ * WebCore.gypi:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/generic/RuntimeEnabledFeatures.cpp:
+ (WebCore):
+ * bindings/generic/RuntimeEnabledFeatures.h:
+ (RuntimeEnabledFeatures):
+ * dom/ContextFeatures.cpp:
+ * dom/ContextFeatures.h:
+ * html/HTMLDialogElement.cpp: Removed.
+ * html/HTMLDialogElement.h: Removed.
+ * html/HTMLDialogElement.idl: Removed.
+ * html/HTMLElementsAllInOne.cpp:
+ * html/HTMLTagNames.in:
+ * page/DOMWindow.idl:
+
+2012-07-09 Andrei Onea <onea@adobe.com>
+
+ [CSSRegions] Rename NamedFlow::getRegionsByContentNode to NamedFlow::getRegionsByContent
+ https://bugs.webkit.org/show_bug.cgi?id=90759
+
+ Reviewed by Andreas Kling.
+
+ Renamed NamedFlow::getRegionsByContentNode to NamedFlow::getRegionsByContent as per CSS Regions spec:
+ http://www.w3.org/TR/css3-regions/#dom-named-flow
+
+ Tests: fast/regions/get-regions-by-content-horiz-bt.html
+ fast/regions/get-regions-by-content-horiz-tb.html
+ fast/regions/get-regions-by-content-vert-lr.html
+ fast/regions/get-regions-by-content-vert-rl.html
+ fast/regions/get-regions-by-content.html
+ fast/regions/get-regions-by-content2.html
+
+ * dom/WebKitNamedFlow.cpp:
+ (WebCore::WebKitNamedFlow::getRegionsByContent):
+ * dom/WebKitNamedFlow.h:
+ (WebKitNamedFlow):
+ * dom/WebKitNamedFlow.idl:
+
+2012-07-09 Matt Falkenhagen <falken@chromium.org>
+
+ Add ENABLE_DIALOG_ELEMENT and skeleton files
+ https://bugs.webkit.org/show_bug.cgi?id=90521
+
+ Reviewed by Kent Tamura.
+
+ This adds the ENABLE_DIALOG_ELEMENT feature flag and dummy implementation files for <dialog>. In addition, a runtime feature flag is added.
+ The feature is diabled by default.
+
+ No new tests, as there is no behavior change.
+
+ * CMakeLists.txt:
+ * Configurations/FeatureDefines.xcconfig:
+ * DerivedSources.cpp:
+ * DerivedSources.make:
+ * DerivedSources.pri:
+ * Target.pri:
+ * WebCore.gypi:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/generic/RuntimeEnabledFeatures.cpp:
+ (WebCore):
+ * bindings/generic/RuntimeEnabledFeatures.h: Added a runtime feature flag for dialog.
+ (RuntimeEnabledFeatures):
+ (WebCore::RuntimeEnabledFeatures::dialogElementEnabled):
+ (WebCore::RuntimeEnabledFeatures::setDialogElementEnabled):
+ * dom/ContextFeatures.cpp:
+ (WebCore::ContextFeatures::dialogElementEnabled):
+ (WebCore):
+ * dom/ContextFeatures.h: Added a per-context flag for dialog so that dialog can be disabled in HTMLTagNames.in and DOMWindow.idl when the dialog runtime feature flag is off.
+ * html/HTMLDialogElement.cpp: Added.
+ (WebCore):
+ (WebCore::HTMLDialogElement::HTMLDialogElement):
+ (WebCore::HTMLDialogElement::create):
+ (WebCore::HTMLDialogElement::close):
+ (WebCore::HTMLDialogElement::show):
+ * html/HTMLDialogElement.h: Added.
+ (WebCore):
+ (HTMLDialogElement):
+ * html/HTMLDialogElement.idl: Added.
+ * html/HTMLElementsAllInOne.cpp:
+ * html/HTMLTagNames.in:
+ * page/DOMWindow.idl:
+
+2012-07-09 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: inspector does not reflect newly created text nodes from contenteditable
+ https://bugs.webkit.org/show_bug.cgi?id=90779
+
+ Reviewed by Vsevolod Vlasov.
+
+ We need to report first text node as inserted, otherwise we fail to report character data modified on it.
+
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::characterDataModified):
+
+2012-07-09 Andrey Kosyakov <caseq@chromium.org>
+
+ REGRESSION(r121980) Layout Test inspector/timeline/timeline-frames.html started to crash.
+ https://bugs.webkit.org/show_bug.cgi?id=90747
+
+ Reviewed by Pavel Feldman.
+
+ - consider didCancelFrame() call normal if there is no pending frame, remove assertion;
+ - always set empty data object for frame records;
+
+ * inspector/InspectorTimelineAgent.cpp:
+ (WebCore::InspectorTimelineAgent::didCancelFrame):
+ (WebCore::InspectorTimelineAgent::commitFrameRecord):
+
+2012-07-09 Taiju Tsuiki <tzik@chromium.org>
+
+ Web Inspector: Add FileContentView for FileSystemView
+ https://bugs.webkit.org/show_bug.cgi?id=90529
+
+ Adding FileContentView to Inspector.
+ This class provides preview of text files in FileSystem.
+
+ Reviewed by Vsevolod Vlasov.
+
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * inspector/compile-front-end.py:
+ * inspector/front-end/FileContentView.js: Added.
+ * inspector/front-end/FileSystemView.js:
+ (WebInspector.FileSystemView.prototype.get visibleView):
+ (WebInspector.FileSystemView.EntryTreeElement.prototype.onselect):
+ (WebInspector.FileSystemView.EntryTreeElement.prototype._directoryContentReceived):
+ (WebInspector.FileSystemView.EntryTreeElement.prototype.refresh):
+ * inspector/front-end/WebKit.qrc:
+ * inspector/front-end/inspector.html:
+
+2012-07-09 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [SOUP] Use soup_cookie_jar_is_persistent() to set whether cookie is a session one or not
+ https://bugs.webkit.org/show_bug.cgi?id=90769
+
+ Reviewed by Gustavo Noronha Silva.
+
+ It's currently set to false, because there were no API to know
+ whether cookies were persistent or not. Now that we bumped libsoup
+ requirements, we can use soup_cookie_jar_is_persistent().
+
+ * platform/network/soup/CookieJarSoup.cpp:
+ (WebCore::getRawCookies):
+
+2012-07-09 Taiju Tsuiki <tzik@chromium.org>
+
+ Web Inspector: Add text file support for FileSystemAgent::requestFileContent
+ https://bugs.webkit.org/show_bug.cgi?id=90439
+
+ Reviewed by Vsevolod Vlasov.
+
+ * inspector/Inspector.json:
+ * inspector/InspectorFileSystemAgent.cpp:
+ (WebCore):
+ (WebCore::InspectorFileSystemAgent::requestFileContent):
+ * inspector/InspectorFileSystemAgent.h:
+ (InspectorFileSystemAgent):
+ * inspector/front-end/FileSystemModel.js:
+ (WebInspector.FileSystemModel.prototype.requestFileContent):
+ (WebInspector.FileSystemModel.File.prototype.requestFileContent):
+ (WebInspector.FileSystemRequestManager.prototype._fileContentReceived):
+ (WebInspector.FileSystemDispatcher.prototype.fileContentReceived):
+
+2012-07-09 MORITA Hajime <morrita@google.com>
+
+ [Chromium] ContextFeaturesClient::isEnabled is slow
+ https://bugs.webkit.org/show_bug.cgi?id=90367
+
+ Reviewed by Kent Tamura.
+
+ * dom/ContextFeatures.h:
+ (WebCore::ContextFeaturesClient::urlDidChange): Added.
+ (WebCore::ContextFeatures::urlDidChange): Added.
+ (WebCore):
+ * dom/Document.cpp:
+ (WebCore::Document::setURL): Added an urlDidChange() call.
+
+2012-07-09 Andrei Onea <onea@adobe.com>
+
+ [CSSRegions] Implement NamedFlow::firstEmptyRegionIndex attribute
+ https://bugs.webkit.org/show_bug.cgi?id=90608
+
+ Reviewed by Andreas Kling.
+
+ Implemented NamedFlow::firstEmptyRegionIndex as per spec: http://www.w3.org/TR/css3-regions/#dom-named-flow
+
+ Test: fast/regions/webkit-named-flow-first-empty-region-index.html
+
+ * dom/WebKitNamedFlow.cpp:
+ (WebCore::WebKitNamedFlow::firstEmptyRegionIndex):
+ (WebCore):
+ * dom/WebKitNamedFlow.h:
+ (WebKitNamedFlow):
+ * dom/WebKitNamedFlow.idl:
+
+2012-07-08 Yoshifumi Inoue <yosin@chromium.org>
+
+ [Platform-Mac] Derive LocaleMac.{cpp,h} and LocalizedDateMac.cpp from LocaleWin
+ https://bugs.webkit.org/show_bug.cgi?id=90752
+
+ Reviewed by Kent Tamura.
+
+ This patch is preparation of introducing LocaleMac class for localize date form.
+ This patch copies LocaleWin and LocalizedDateWin.cpp as below:
+ - LocaleMac.h from LocaleWin.h
+ - LocaleMac.mm from LocaliedDateMac.mm
+ - LocaliedDateMac.cpp from LocalizedDateWin.cpp
+
+ Due by git, diffs are appeared as new thing. I'll do svn copy at landing time.
+
+ No new tests. This patch doesn't change behavior.
+
+ * platform/text/mac/LocaleMac.h: Copied from platform/text/LocaleWin.h
+ * platform/text/mac/LocaleMac.mm: Copied from platform/text/mac/LocalizedDateMac.mm
+ * platform/text/mac/LocalizedDateMac.cpp: Copied from platform/text/LocalizedDateWin.cpp
+
+2012-07-08 Laszlo Gombos <laszlo.1.gombos@nokia.com>
+
+ Introduce a build flag for low quality JPEG images
+ https://bugs.webkit.org/show_bug.cgi?id=90748
+
+ Reviewed by Adam Barth.
+
+ Introduce build options for no JPEG dithering (USE(LOW_QUALITY_IMAGE_NO_JPEG_DITHERING))
+ and no JPEG fancy upsampling (USE(LOW_QUALITY_IMAGE_NO_JPEG_FANCY_UPSAMPLING)).
+
+ No new tests as there is no change in functionality.
+
+ * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
+ (ditherMode):
+ (doFancyUpsampling):
+
+2012-07-08 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r121968.
+ http://trac.webkit.org/changeset/121968
+ https://bugs.webkit.org/show_bug.cgi?id=90749
+
+ Caused a link error on chromium Win dbg. (Requested by hayato
+ on #webkit).
+
+ * inspector/InspectorMemoryAgent.cpp:
+ (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
+ * inspector/front-end/NativeMemorySnapshotView.js:
+ (WebInspector.MemoryBlockViewProperties._initialize):
+ * platform/MemoryUsageSupport.cpp:
+ * platform/MemoryUsageSupport.h:
+ (MemoryUsageSupport):
+ * platform/chromium/MemoryUsageSupportChromium.cpp:
+
+2012-07-08 Mary Wu <mary.wu@torchmobile.com.cn>
+
+ [BlackBerry] Make setForceDownload a setter method.
+ https://bugs.webkit.org/show_bug.cgi?id=90591
+
+ Reviewed by Rob Buis.
+
+ * platform/network/blackberry/ResourceRequest.h:
+ (WebCore::ResourceRequest::setForceDownload):
+
2012-07-05 MORITA Hajime <morrita@google.com>
Heap-use-after-free in WebCore::RenderObject::destroyAndCleanupAnonymousWrappers
« no previous file with comments | « LayoutTests/fast/dom/shadow/insertion-point-video-crash-expected.txt ('k') | Source/WebCore/html/HTMLMediaElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698